From e502b637e9893a197cfa641cc5f03ede77a2860d Mon Sep 17 00:00:00 2001 From: Rykka Date: Thu, 24 Mar 2022 12:45:01 -0600 Subject: [PATCH 01/24] Trait Addition + Adjustments Polaris Combat is ass. Yes, bandaid trait fixes are not necessarily the solution, BUT! All of our negatives have extreme versions, without any sort of positive counterpart, and the positives we DO have are weak. However, a flat 50% reduction on both incoming burn/brute would be too much, therefore: Trait changes as follows. - Added Glass Endurance. You have 25 HP, or 50 total HP, before you die. Don't get hit, and with Baymissn't? You're a masochist. - Brute/Burn Resists no longer exclude High/Very High Endurance. - Major Burn/Brute Resist re-added: These provide a 40% DR (Damage Reduction), at the cost of 3 points. This is opposite to Major Weakness, which is a 50% incoming damage increase. - Very High Endurance re-added: This increases your max HP to 150. - Increased Pain Tolerance: Similar to Increased Pain INtolerance, you have a 40% DR on incoming pain, compared to, for Intolerance, a 50% increase on incoming pain. - Lick Wounds added back as a 1-cost Positive trait. I wondered why I hadn't seen it - it'd been disabled for _two years_ since Jan 2020. Now, this is very likely to be controversial as it's a VERY huge balance change. Please don't bite my head off - this came up in discussion with Serdykov in DMs, and after digging through PRs, I discovered that traits had been disabled/removed for 1-2 years. Pending a rewrite of Polariscode combat, and/or significant tweaks to make it more palatable, this will allow for more tankiness in combat - at the cost of extreme downsides. You can't suddenly become a hulk in combat with just traits, you still have to take some heavy downsides. For instance: Base Points - 1 Total Traits - 8 Very High Endurance - 4 Major Burn Resist - 3 Major Brute Resist - 3 Increased Pain Tolerance - 3 Current Points -12 Current Traits Left - 4 Conductive Major - -3 Extreme Photosensitivity - -2 Haemophilia - -3 Major Loneliness - -5 Current Traits Left - 0 Current Points 1 I'd be interested in looking at making Major Brute/Burn resist 4 points to equal 40% incoming DR, but that feels odd, given the negative is 50% incoming damage total for only 3. I'd also be open to considering making VH Endurance even more expensive to 6, since it can be taken simultaneously now, and making base High Endurance cost 4. --- .../species/station/traits_vr/negative.dm | 4 +- .../species/station/traits_vr/negative_ch.dm | 10 ++++ .../species/station/traits_vr/positive.dm | 16 +++--- .../species/station/traits_vr/positive_ch.dm | 56 +++++++++++++++++-- 4 files changed, 70 insertions(+), 16 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index b6e5612171..886ee36867 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -27,7 +27,7 @@ /datum/trait/negative/endurance_low name = "Low Endurance" - desc = "Reduces your maximum total hitpoints to 75." + desc = "Reduces your maximum total hitpoints to 75. You require only 150 damage in total to die, compared to 200 normally. You will go into crit after losing 75 HP, compared to crit at 100 HP." // CHOMPEdit: Clarity for players' sake. cost = -4 //Chompedit makes you a lot squishier, should not be only 2 points. (based on the brute and burn vulnerability costs) var_changes = list("total_health" = 75) @@ -37,7 +37,7 @@ /datum/trait/negative/endurance_very_low name = "Low Endurance, Major" - desc = "Reduces your maximum total hitpoints to 50." + desc = "Reduces your maximum total hitpoints to 50. You require only 100 damage in total to die, compared to 200 normally. You will go into crit after losing 50 HP, compared to crit at 100 HP." // CHOMPEdit: Clarity for players' sake. cost = -8 //Teshari HP. This makes the person a lot more suseptable to getting stunned, killed, etc. //Chompedit: Has no business being only 3 points, while others that function similarly but are nowhere near as crippling are 3 as well. var_changes = list("total_health" = 50) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm index b524d80f0f..f142c2a715 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm @@ -376,3 +376,13 @@ if(ms != "") to_chat(H, ms) H.next_loneliness_time = world.time+500 + +/datum/trait/negative/endurance_glass // Glass Cannon + name = "Glass Endurance" + desc = "Your body is very fragile. Reduces your maximum hitpoints to 25. Beware sneezes. You require only 50 damage in total to die, compared to 200 normally. You will go into crit after losing 25 HP, compared to crit at 100 HP." + cost = -12 // Similar to Very Low Endurance, this straight up will require you NEVER getting in a fight. This is extremely crippling. I salute the madlad that takes this. + var_changes = list("total_health" = 25) + +/datum/trait/negative/endurance_glass/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.setMaxHealth(S.total_health) \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 5f1fa82e65..06db8cfea4 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -45,7 +45,7 @@ /datum/trait/positive/endurance_high name = "High Endurance" - desc = "Increases your maximum total hitpoints to 125" + desc = "Increases your maximum total hitpoints to 125. You require 250 damage in total to die, compared to 200 normally. You will still go into crit after losing 125 HP, compared to crit at 100 HP." // CHOMPEdit: Clarity for players' sake. cost = 2 var_changes = list("total_health" = 125) @@ -55,13 +55,13 @@ /datum/trait/positive/nonconductive name = "Non-Conductive" - desc = "Decreases your susceptibility to electric shocks by a 25% amount." //CHOMP Edit + desc = "Decreases your susceptibility to electric shocks by 25%." //CHOMP Edit - GRAMMAR PLS. cost = 2 //This effects tasers! var_changes = list("siemens_coefficient" = 0.75) //CHOMP Edit /datum/trait/positive/nonconductive_plus name = "Non-Conductive, Major" - desc = "Decreases your susceptibility to electric shocks by a 50% amount." //CHOMP Edit + desc = "Decreases your susceptibility to electric shocks by 50%." //CHOMP Edit - GRAMMAR PLS. cost = 3 //Let us not forget this effects tasers! var_changes = list("siemens_coefficient" = 0.5) //CHOMP Edit /* //Chompedit, moving to Positive_ch.dm so it wont be messed with from upstream @@ -128,8 +128,8 @@ cost = 2 var_changes = list("chem_strength_heal" = 1.2) -/datum/trait/positive/pain_tolerance_advanced - name = "High Pain Tolerance" +/datum/trait/positive/pain_tolerance // CHOMPEdit: There is no "basic" pain tolerance, so I'm reducing this to regular pain tolerance. + name = "Increased Pain Tolerance" desc = "You are noticeably more resistant to pain than most, and experience 20% less pain from all sources." cost = 2 var_changes = list("pain_mod" = 0.8) @@ -173,9 +173,8 @@ cost = 1 //CHOMP Edit var_changes = list("flags" = NO_MINOR_CUT) //Checked the flag is only used by shard stepping. -//CHOMPStation Removal Start -/* +// CHOMPEdit: This has been removed for two years, since Jan 2020, pending "review". Uncommenting as per tankiness increase PR. /datum/trait/positive/antiseptic_saliva name = "Antiseptic Saliva" desc = "Your saliva has especially strong antiseptic properties that can be used to heal small wounds." @@ -184,8 +183,7 @@ /datum/trait/positive/antiseptic_saliva/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..() H.verbs |= /mob/living/carbon/human/proc/lick_wounds -*/ -//CHOMPStation Removal End + /datum/trait/positive/traceur name = "Traceur" diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm index c005e9a3f8..5097f4f57c 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm @@ -110,19 +110,21 @@ /datum/trait/positive/endurance_high cost = 3 - excludes = list(/datum/trait/positive/brute_resist, /datum/trait/positive/minor_brute_resist, /datum/trait/positive/minor_burn_resist, /datum/trait/positive/burn_resist) + excludes = list(/datum/trait/positive/endurance_very_high) // CHOMPEdit: Increased Endurance. + // excludes = list(/datum/trait/positive/brute_resist, /datum/trait/positive/minor_brute_resist, /datum/trait/positive/minor_burn_resist, /datum/trait/positive/burn_resist) + // Tankiness at the cost of severe downsides should be allowed - we have a large number of negatives that hurt hard, but you can't take many positives. /datum/trait/positive/brute_resist - excludes = list(/datum/trait/positive/minor_brute_resist, /datum/trait/positive/burn_resist, /datum/trait/positive/endurance_high) + excludes = list(/datum/trait/positive/minor_brute_resist, /datum/trait/positive/brute_resist_plus) // Tankiness at the cost of severe downsides should be allowed - we have a large number of negatives that hurt hard, but you can't take many positives. /datum/trait/positive/minor_brute_resist - excludes = list(/datum/trait/positive/brute_resist, /datum/trait/positive/endurance_high) + excludes = list(/datum/trait/positive/brute_resist, /datum/trait/positive/brute_resist_plus) // Tankiness at the cost of severe downsides should be allowed - we have a large number of negatives that hurt hard, but you can't take many positives. /datum/trait/positive/burn_resist - excludes = list(/datum/trait/positive/minor_burn_resist, /datum/trait/positive/brute_resist, /datum/trait/positive/endurance_high) + excludes = list(/datum/trait/positive/minor_burn_resist, /datum/trait/positive/burn_resist_plus) // Tankiness at the cost of severe downsides should be allowed - we have a large number of negatives that hurt hard, but you can't take many positives. /datum/trait/positive/minor_burn_resist - excludes = list(/datum/trait/positive/burn_resist, /datum/trait/positive/endurance_high) + excludes = list(/datum/trait/positive/burn_resist, /datum/trait/positive/burn_resist_plus) // Tankiness at the cost of severe downsides should be allowed - we have a large number of negatives that hurt hard, but you can't take many positives. /datum/trait/positive/absorbent/handle_environment_special(var/mob/living/carbon/human/H) var/turf/T = get_turf(H) @@ -249,3 +251,47 @@ ..(S,H) H.verbs |= /mob/living/proc/insect_sting +// TANKINESS LETS GOOOOOOOOO +/datum/trait/positive/burn_resist_plus // Equivalent to Burn Weakness Major, cannot be taken at the same time. + name = "Major Burn Resist" + desc = "Adds 40% resistance to burn damage sources." + cost = 3 // Exact Opposite of Burn Weakness Major, except Weakness Major is 50% incoming, this is -40% incoming. + var_changes = list("burn_mod" = 0.6) + excludes = list(/datum/trait/positive/burn_resist, /datum/trait/positive/minor_burn_resist) + +/datum/trait/positive/brute_resist_plus // Equivalent to Brute Weakness Major, cannot be taken at the same time. + name = "Major Brute Resist" + desc = "Adds 40% resistance to brute damage sources." + cost = 3 // Exact Opposite of Brute Weakness Major, except Weakness Major is 50% incoming, this is -40% incoming. + var_changes = list("brute_mod" = 0.6) + excludes = list(/datum/trait/positive/brute_resist, /datum/trait/positive/minor_brute_resist) + +/datum/trait/positive/endurance_very_high + name = "Very High Endurance" + desc = "Increases your maximum total hitpoints to 150. You require 300 damage in total to die, compared to 200 normally. You will still go into crit after losing 150 HP, compared to crit at 100 HP." + cost = 4 // This should cost a LOT, because your total health becomes 300 to be fully dead, rather than 200 normally, or 250 for High Endurance. HE costs 2, double it here. (It could safely be bumped up to 6, imo, but start at 4.) + var_changes = list("total_health" = 150) + excludes = list(/datum/trait/positive/endurance_high) + +/datum/trait/positive/endurance_very_high/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.setMaxHealth(S.total_health) + +/* +/datum/trait/positive/endurance_extremely_high + name = "Extremely High Endurance" + desc = "Increases your maximum total hitpoints to 175" + cost = 6 // This should cost a LOT, because your total health becomes 350 to be fully dead, rather than 200 normally, or 250 for High Endurance. HE costs 2, this costs 3x it. + var_changes = list("total_health" = 175) + +/datum/trait/positive/endurance_extremely_high/apply(var/datum/species/S,var/mob/living/carbon/human/H) + ..(S,H) + H.setMaxHealth(S.total_health) +*/ +// Commenting this one out, but leaving in for balance discussion purposes. + +/datum/trait/positive/pain_tolerance_advanced // High Pain Intolerance is 50% incoming pain, but this is 40% reduced incoming pain. + name = "Increased Pain Tolerance" + desc = "You are noticeably more resistant to pain than most, and experience 40% less pain from all sources." + cost = 3 // Equivalent to High Pain Intolerance, but less pain resisted for balance reasons. + var_changes = list("pain_mod" = 0.6) \ No newline at end of file From 404750da46c14ba0683706ee3f8ebe859b6f692b Mon Sep 17 00:00:00 2001 From: Rykka Date: Thu, 24 Mar 2022 14:58:47 -0600 Subject: [PATCH 02/24] Increases High Endurance cost to 3, VHE to 6, and adds EHE for 9 Also adjusts organ break damage across the board. Unathi are TANKY BOIS. 80 damage to break their chest/groin compared to 60 on most, and 70 for head, compared to 50 for most. --- .../human/species/station/traits_vr/positive.dm | 4 ++-- .../human/species/station/traits_vr/positive_ch.dm | 8 +++----- code/modules/organs/organ.dm | 4 ++-- code/modules/organs/organ_external.dm | 2 +- code/modules/organs/subtypes/standard.dm | 14 +++++++------- code/modules/organs/subtypes/unathi.dm | 6 +++--- 6 files changed, 18 insertions(+), 20 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm index 06db8cfea4..17d6c788ae 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive.dm @@ -5,7 +5,7 @@ name = "Haste" desc = "Allows you to move faster on average than baseline." cost = 4 //CHOMPEdit - var_changes = list("slowdown" = -0.5) + var_changes = list("slowdown" = -0.45) excludes = list(/datum/trait/positive/hardy,/datum/trait/positive/hardy_extreme,/datum/trait/positive/hardy_plus,/datum/trait/positive/speed_fast_minor) //ChompEdit @@ -46,7 +46,7 @@ /datum/trait/positive/endurance_high name = "High Endurance" desc = "Increases your maximum total hitpoints to 125. You require 250 damage in total to die, compared to 200 normally. You will still go into crit after losing 125 HP, compared to crit at 100 HP." // CHOMPEdit: Clarity for players' sake. - cost = 2 + cost = 3 // CHOMPEdit var_changes = list("total_health" = 125) /datum/trait/positive/endurance_high/apply(var/datum/species/S,var/mob/living/carbon/human/H) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm index 5097f4f57c..380e641ddd 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/positive_ch.dm @@ -269,7 +269,7 @@ /datum/trait/positive/endurance_very_high name = "Very High Endurance" desc = "Increases your maximum total hitpoints to 150. You require 300 damage in total to die, compared to 200 normally. You will still go into crit after losing 150 HP, compared to crit at 100 HP." - cost = 4 // This should cost a LOT, because your total health becomes 300 to be fully dead, rather than 200 normally, or 250 for High Endurance. HE costs 2, double it here. (It could safely be bumped up to 6, imo, but start at 4.) + cost = 6 // This should cost a LOT, because your total health becomes 300 to be fully dead, rather than 200 normally, or 250 for High Endurance. HE costs 2, double it here. var_changes = list("total_health" = 150) excludes = list(/datum/trait/positive/endurance_high) @@ -277,18 +277,16 @@ ..(S,H) H.setMaxHealth(S.total_health) -/* + /datum/trait/positive/endurance_extremely_high name = "Extremely High Endurance" desc = "Increases your maximum total hitpoints to 175" - cost = 6 // This should cost a LOT, because your total health becomes 350 to be fully dead, rather than 200 normally, or 250 for High Endurance. HE costs 2, this costs 3x it. + cost = 9 // This should cost a LOT, because your total health becomes 350 to be fully dead, rather than 200 normally, or 250 for High Endurance. HE costs 2, this costs 3x it. var_changes = list("total_health" = 175) /datum/trait/positive/endurance_extremely_high/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) H.setMaxHealth(S.total_health) -*/ -// Commenting this one out, but leaving in for balance discussion purposes. /datum/trait/positive/pain_tolerance_advanced // High Pain Intolerance is 50% incoming pain, but this is 40% reduced incoming pain. name = "Increased Pain Tolerance" diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 646787d088..c91fa50481 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -28,7 +28,7 @@ var/list/organ_cache = list() // Damage vars. var/min_bruised_damage = 10 // Damage before considered bruised - var/min_broken_damage = 30 // Damage before becoming broken + var/min_broken_damage = 60 // Damage before becoming broken CHOMPEdit: Flat doubling of all min_broken_damage var/max_damage // Damage cap var/can_reject = 1 // Can this organ reject? var/rejecting // Is this organ already being rejected? @@ -361,7 +361,7 @@ var/list/organ_cache = list() robotize() robotic = ORGAN_ASSISTED min_bruised_damage = 15 - min_broken_damage = 35 + min_broken_damage = 60 // CHOMPEdit: Flat doubling of all min_broken_damage butcherable = FALSE /obj/item/organ/proc/digitize() //Used to make the circuit-brain. On this level in the event more circuit-organs are added/tweaks are wanted. diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 85f76d9aa0..90f32a6dff 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -9,7 +9,7 @@ /obj/item/organ/external name = "external" - min_broken_damage = 30 + min_broken_damage = 60 // CHOMPEdit: Flat doubling of all min_broken_damage max_damage = 0 dir = SOUTH organ_tag = "limb" diff --git a/code/modules/organs/subtypes/standard.dm b/code/modules/organs/subtypes/standard.dm index 7d602712a1..e6ff22e596 100644 --- a/code/modules/organs/subtypes/standard.dm +++ b/code/modules/organs/subtypes/standard.dm @@ -9,7 +9,7 @@ organ_tag = BP_TORSO icon_name = "torso" max_damage = 100 - min_broken_damage = 35 + min_broken_damage = 60 // CHOMPEdit: Increase all min_broken_damage (Ribs should take more force to break) w_class = ITEMSIZE_HUGE body_part = UPPER_TORSO vital = 1 @@ -59,7 +59,7 @@ organ_tag = BP_GROIN icon_name = "groin" max_damage = 100 - min_broken_damage = 35 + min_broken_damage = 50 // CHOMPEdit: Increase all min_broken_damage w_class = ITEMSIZE_LARGE body_part = LOWER_TORSO vital = 1 @@ -89,7 +89,7 @@ name = "left arm" icon_name = "l_arm" max_damage = 80 - min_broken_damage = 30 + min_broken_damage = 40 // CHOMPEdit: Flat doubling of all min_broken_damage w_class = ITEMSIZE_NORMAL body_part = ARM_LEFT parent_organ = BP_TORSO @@ -129,7 +129,7 @@ name = "left leg" icon_name = "l_leg" max_damage = 80 - min_broken_damage = 30 + min_broken_damage = 40 // CHOMPEdit: Increase all min_broken_damage w_class = ITEMSIZE_NORMAL body_part = LEG_LEFT icon_position = LEFT @@ -168,7 +168,7 @@ name = "left foot" icon_name = "l_foot" max_damage = 50 - min_broken_damage = 15 + min_broken_damage = 30 // CHOMPEdit: Increase all min_broken_damage w_class = ITEMSIZE_SMALL body_part = FOOT_LEFT icon_position = LEFT @@ -213,7 +213,7 @@ name = "left hand" icon_name = "l_hand" max_damage = 50 - min_broken_damage = 15 + min_broken_damage = 30 // CHOMPEdit: Increase all min_broken_damage w_class = ITEMSIZE_SMALL body_part = HAND_LEFT parent_organ = BP_L_ARM @@ -262,7 +262,7 @@ name = "head" slot_flags = SLOT_BELT max_damage = 75 - min_broken_damage = 35 + min_broken_damage = 50 // CHOMPEdit: Increase all min_broken_damage w_class = ITEMSIZE_NORMAL body_part = HEAD vital = 1 diff --git a/code/modules/organs/subtypes/unathi.dm b/code/modules/organs/subtypes/unathi.dm index 03ff671b63..03d4c2fd83 100644 --- a/code/modules/organs/subtypes/unathi.dm +++ b/code/modules/organs/subtypes/unathi.dm @@ -1,16 +1,16 @@ /obj/item/organ/external/chest/unathi max_damage = 100 - min_broken_damage = 40 + min_broken_damage = 80 // CHOMPEdit: Flat doubling of all min_broken_damage encased = "upper ribplates" /obj/item/organ/external/groin/unathi max_damage = 100 - min_broken_damage = 40 + min_broken_damage = 80 // CHOMPEdit: Flat doubling of all min_broken_damage encased = "lower ribplates" /obj/item/organ/external/head/unathi max_damage = 75 - min_broken_damage = 35 + min_broken_damage = 70 // CHOMPEdit: Flat doubling of all min_broken_damage eye_icon = "eyes_s" force = 5 throwforce = 10 From da0b9da8e2a7318daf529300761a714d18913bf1 Mon Sep 17 00:00:00 2001 From: Rykka Date: Thu, 24 Mar 2022 16:42:13 -0600 Subject: [PATCH 03/24] Renames Extreme Slowdown to Slowdown, Extreme That's it. --- .../carbon/human/species/station/traits_vr/negative_ch.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm index f142c2a715..45493298e7 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm @@ -35,7 +35,7 @@ var_changes = list("grab_resist_divisor_victims" = 0.5, "grab_resist_divisor_self" = 3, "grab_power_victims" = 1, "grab_power_self" = -1) /datum/trait/negative/extreme_slowdown - name = "Extreme slowdown" + name = "Slowdown, Extreme" desc = "You move EXTREMELY slower than baseline" cost = -8 var_changes = list("slowdown" = 4.0) From 729d918b235a0145d5fdd87a03712341c3430b70 Mon Sep 17 00:00:00 2001 From: Rykka Date: Thu, 24 Mar 2022 17:02:54 -0600 Subject: [PATCH 04/24] Adds heavier negative biocompatability traits --- .../human/species/station/traits_vr/negative.dm | 6 +++--- .../human/species/station/traits_vr/negative_ch.dm | 14 +++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm index 886ee36867..4f72a0a53c 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative.dm @@ -82,9 +82,9 @@ var_changes = list("burn_mod" = 1.5) //YW ADDITIONS START -/datum/trait/negative/reduced_biocompat - name = "Reduced Biocompatibility" - desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records!" +/datum/trait/negative/reduced_biocompat_minor // CHOMPEdit: Changed name of trait + desc. + name = "Reduced Biocompatibility, Minor" + desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 80% as effective on you!" cost = -1 var_changes = list("chem_strength_heal" = 0.8) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm index 45493298e7..5a841c9d63 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm @@ -385,4 +385,16 @@ /datum/trait/negative/endurance_glass/apply(var/datum/species/S,var/mob/living/carbon/human/H) ..(S,H) - H.setMaxHealth(S.total_health) \ No newline at end of file + H.setMaxHealth(S.total_health) + +/datum/trait/negative/reduced_biocompat + name = "Reduced Biocompatibility" + desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 60% as effective on you!" + cost = -4 + var_changes = list("chem_strength_heal" = 0.6) + +/datum/trait/negative/reduced_biocompat_extreme + name = "Reduced Biocompatibility" + desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 30% as effective on you!" + cost = -8 + var_changes = list("chem_strength_heal" = 0.3) \ No newline at end of file From 80a60eb7a3d96b0b5dee2c2bb23292f25521d90a Mon Sep 17 00:00:00 2001 From: Rykka Date: Thu, 24 Mar 2022 17:04:31 -0600 Subject: [PATCH 05/24] Oops, both traits had the same name --- .../carbon/human/species/station/traits_vr/negative_ch.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm index 5a841c9d63..7eb0bfd1e3 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/negative_ch.dm @@ -394,7 +394,7 @@ var_changes = list("chem_strength_heal" = 0.6) /datum/trait/negative/reduced_biocompat_extreme - name = "Reduced Biocompatibility" + name = "Reduced Biocompatibility, Major" desc = "For whatever reason, you're one of the unlucky few who don't get as much benefit from modern-day chemicals. Remember to note this down in your medical records! Chems are only 30% as effective on you!" cost = -8 var_changes = list("chem_strength_heal" = 0.3) \ No newline at end of file From 9609511e877065e77db3b8fda527726432e8ee5a Mon Sep 17 00:00:00 2001 From: Casey Date: Sun, 27 Mar 2022 14:58:25 -0400 Subject: [PATCH 06/24] Makes Xenobio Great Again --- code/_helpers/global_lists_vr.dm | 249 +++ code/game/objects/items/devices/flashlight.dm | 27 - .../ai/ai_holder_subtypes/slime_xenobio_ai.dm | 21 +- .../subtypes/slime/xenobio/subtypes.dm | 3 +- .../subtypes/slime/xenobio/xenobio.dm | 37 +- .../reagents/reactions/instant/instant_vr.dm | 14 +- code/modules/xenobio/items/extracts.dm | 2 + code/modules/xenobio/items/extracts_vr.dm | 1661 +++++++++++++++++ code/modules/xenobio/items/slime_objects.dm | 96 +- code/modules/xenobio/items/slimepotions.dm | 8 +- code/modules/xenobio/items/slimepotions_vr.dm | 189 ++ icons/inventory/back/item.dmi | Bin 26764 -> 27719 bytes icons/inventory/back/mob.dmi | Bin 125953 -> 126716 bytes icons/mob/slimes_vr.dmi | Bin 0 -> 480 bytes vorestation.dme | 3 +- 15 files changed, 2263 insertions(+), 47 deletions(-) create mode 100644 code/modules/xenobio/items/extracts_vr.dm create mode 100644 code/modules/xenobio/items/slimepotions_vr.dm create mode 100644 icons/mob/slimes_vr.dmi diff --git a/code/_helpers/global_lists_vr.dm b/code/_helpers/global_lists_vr.dm index 850ec24c38..8088eaa5e1 100644 --- a/code/_helpers/global_lists_vr.dm +++ b/code/_helpers/global_lists_vr.dm @@ -590,3 +590,252 @@ var/global/list/remainless_species = list(SPECIES_PROMETHEAN, var/global/list/weavable_structures = list() var/global/list/weavable_items = list() + + +var/global/list/xenobio_metal_materials_normal = list( + /obj/item/stack/material/steel = 20, + /obj/item/stack/material/glass = 15, + /obj/item/stack/material/plastic = 12, + /obj/item/stack/material/wood = 12, + /obj/item/stack/material/cardboard = 6, + /obj/item/stack/material/sandstone = 5, + /obj/item/stack/material/log = 5, + /obj/item/stack/material/lead = 5, + /obj/item/stack/material/iron = 5, + /obj/item/stack/material/graphite = 5, + /obj/item/stack/material/copper = 4, + /obj/item/stack/material/tin = 4, + /obj/item/stack/material/bronze = 4, + /obj/item/stack/material/aluminium = 4) + +var/global/list/xenobio_metal_materials_adv = list( + /obj/item/stack/material/glass/reinforced = 15, + /obj/item/stack/material/marble = 10, + /obj/item/stack/material/plasteel = 10, + /obj/item/stack/material/glass/phoronglass = 10, + /obj/item/stack/material/wood/sif = 5, + /obj/item/stack/material/wood/hard = 5, + /obj/item/stack/material/log/sif = 5, + /obj/item/stack/material/log/hard = 5, + /obj/item/stack/material/glass/phoronrglass = 5, + /obj/item/stack/material/glass/titanium = 3, + /obj/item/stack/material/glass/plastitanium = 3, + /obj/item/stack/material/durasteel = 2, + /obj/item/stack/material/painite = 1, + /obj/item/stack/material/void_opal = 1, + /obj/item/stack/material/quartz = 1) + +var/global/list/xenobio_metal_materials_weird = list( + /obj/item/stack/material/cloth = 10, + /obj/item/stack/material/leather = 5, + /obj/item/stack/material/fiber = 5, + /obj/item/stack/material/fur/wool = 7, + /obj/item/stack/material/snow = 3, + /obj/item/stack/material/snowbrick = 3, + /obj/item/stack/material/flint = 3, + /obj/item/stack/material/stick = 3, + /obj/item/stack/material/chitin = 1) + +var/global/list/xenobio_silver_materials_basic = list( + /obj/item/stack/material/silver = 10, + /obj/item/stack/material/uranium = 8, + /obj/item/stack/material/gold = 6, + /obj/item/stack/material/titanium = 4, + /obj/item/stack/material/phoron = 1) + +var/global/list/xenobio_silver_materials_adv = list( + /obj/item/stack/material/deuterium = 5, + /obj/item/stack/material/tritium = 5, + /obj/item/stack/material/osmium = 5, + /obj/item/stack/material/mhydrogen = 3, + /obj/item/stack/material/diamond = 2, + /obj/item/stack/material/verdantium = 1) + +var/global/list/xenobio_silver_materials_special = list( + /obj/item/stack/material/valhollide = 1, + /obj/item/stack/material/morphium = 1, + /obj/item/stack/material/supermatter = 1) + +var/global/list/xenobio_gold_mobs_hostile = list( + /mob/living/simple_mob/vore/alienanimals/space_jellyfish, + /mob/living/simple_mob/vore/alienanimals/skeleton, + /mob/living/simple_mob/vore/alienanimals/space_ghost, + /mob/living/simple_mob/vore/alienanimals/startreader, + /mob/living/simple_mob/animal/passive/mouse/operative, + /mob/living/simple_mob/animal/giant_spider, + /mob/living/simple_mob/animal/giant_spider/frost, + /mob/living/simple_mob/animal/giant_spider/electric, + /mob/living/simple_mob/animal/giant_spider/hunter, + /mob/living/simple_mob/animal/giant_spider/lurker, + /mob/living/simple_mob/animal/giant_spider/pepper, + /mob/living/simple_mob/animal/giant_spider/thermic, + /mob/living/simple_mob/animal/giant_spider/tunneler, + /mob/living/simple_mob/animal/giant_spider/webslinger, + /mob/living/simple_mob/animal/giant_spider/phorogenic, + /mob/living/simple_mob/animal/giant_spider/carrier, + /mob/living/simple_mob/animal/giant_spider/nurse, + /mob/living/simple_mob/animal/giant_spider/ion, + /mob/living/simple_mob/animal/giant_spider/nurse/queen, + /mob/living/simple_mob/animal/sif/diyaab, + /mob/living/simple_mob/animal/sif/duck, + /mob/living/simple_mob/animal/sif/frostfly, + /mob/living/simple_mob/animal/sif/glitterfly, + /mob/living/simple_mob/animal/sif/hooligan_crab, + /mob/living/simple_mob/animal/sif/kururak, + /mob/living/simple_mob/animal/sif/leech, + /mob/living/simple_mob/animal/sif/tymisian, + /mob/living/simple_mob/animal/sif/sakimm, + /mob/living/simple_mob/animal/sif/savik, + /mob/living/simple_mob/animal/sif/shantak, + /mob/living/simple_mob/animal/sif/siffet, + /mob/living/simple_mob/animal/space/alien, + /mob/living/simple_mob/animal/space/alien/drone, + /mob/living/simple_mob/animal/space/alien/sentinel, + /mob/living/simple_mob/animal/space/alien/sentinel/praetorian, + /mob/living/simple_mob/animal/space/alien/queen, + /mob/living/simple_mob/animal/space/alien/queen/empress, + /mob/living/simple_mob/animal/space/alien/queen/empress/mother, + /mob/living/simple_mob/animal/space/bats, + /mob/living/simple_mob/animal/space/bear, + /mob/living/simple_mob/animal/space/carp, + /mob/living/simple_mob/animal/space/carp/large, + /mob/living/simple_mob/animal/space/carp/large/huge, + /mob/living/simple_mob/animal/space/goose, + /mob/living/simple_mob/creature, + /mob/living/simple_mob/faithless, + /mob/living/simple_mob/tomato, + /mob/living/simple_mob/animal/space/tree, + /mob/living/simple_mob/vore/aggressive/corrupthound, + /mob/living/simple_mob/vore/aggressive/corrupthound/prettyboi, + /mob/living/simple_mob/vore/aggressive/deathclaw, + /mob/living/simple_mob/vore/aggressive/dino, + /mob/living/simple_mob/vore/aggressive/dragon, + /mob/living/simple_mob/vore/aggressive/frog, + /mob/living/simple_mob/otie, + /mob/living/simple_mob/otie/red, + /mob/living/simple_mob/vore/aggressive/panther, + /mob/living/simple_mob/vore/aggressive/rat, + /mob/living/simple_mob/vore/aggressive/giant_snake, + /mob/living/simple_mob/vore/sect_drone, + /mob/living/simple_mob/vore/sect_queen, + /mob/living/simple_mob/vore/weretiger, + /mob/living/simple_mob/animal/wolf, + /mob/living/simple_mob/vore/xeno_defanged) + +var/global/list/xenobio_gold_mobs_bosses = list( + /mob/living/simple_mob/animal/giant_spider/broodmother, + /mob/living/simple_mob/vore/leopardmander, + /mob/living/simple_mob/vore/leopardmander/blue, + /mob/living/simple_mob/vore/leopardmander/exotic, + /mob/living/simple_mob/vore/greatwolf, + /mob/living/simple_mob/vore/greatwolf/black, + /mob/living/simple_mob/vore/greatwolf/grey, + /mob/living/simple_mob/vore/bigdragon) + +var/global/list/xenobio_gold_mobs_safe = list( + /mob/living/simple_mob/vore/alienanimals/dustjumper, + /mob/living/simple_mob/vore/alienanimals/teppi, + /mob/living/simple_mob/animal/passive/chicken, + /mob/living/simple_mob/animal/passive/cow, + /mob/living/simple_mob/animal/goat, + /mob/living/simple_mob/animal/passive/crab, + /mob/living/simple_mob/animal/passive/mouse/jerboa, + /mob/living/simple_mob/animal/passive/lizard, + /mob/living/simple_mob/animal/passive/lizard/large, + /mob/living/simple_mob/animal/passive/yithian, + /mob/living/simple_mob/animal/passive/tindalos, + /mob/living/simple_mob/animal/passive/mouse, + /mob/living/simple_mob/animal/passive/penguin, + /mob/living/simple_mob/animal/passive/opossum, + /mob/living/simple_mob/animal/passive/cat, + /mob/living/simple_mob/animal/passive/dog/corgi, + /mob/living/simple_mob/animal/passive/dog/void_puppy, + /mob/living/simple_mob/animal/passive/dog/bullterrier, + /mob/living/simple_mob/animal/passive/dog/tamaskan, + /mob/living/simple_mob/animal/passive/dog/brittany, + /mob/living/simple_mob/animal/passive/fox, + /mob/living/simple_mob/animal/passive/fox/syndicate, + /mob/living/simple_mob/animal/passive/hare, + /mob/living/simple_mob/animal/passive/pillbug, + /mob/living/simple_mob/animal/passive/gaslamp, + /mob/living/simple_mob/animal/passive/snake, + /mob/living/simple_mob/animal/passive/snake/red, + /mob/living/simple_mob/animal/passive/snake/python, + /mob/living/simple_mob/vore/bee, + /mob/living/simple_mob/vore/fennec, + /mob/living/simple_mob/vore/fennix, + /mob/living/simple_mob/vore/hippo, + /mob/living/simple_mob/vore/horse, + /mob/living/simple_mob/animal/space/jelly, + /mob/living/simple_mob/vore/oregrub, + /mob/living/simple_mob/vore/oregrub/lava, + /mob/living/simple_mob/vore/rabbit, + /mob/living/simple_mob/vore/redpanda, + /mob/living/simple_mob/vore/sheep, + /mob/living/simple_mob/vore/solargrub) + +var/global/list/xenobio_gold_mobs_birds = list(/mob/living/simple_mob/animal/passive/bird/black_bird, + /mob/living/simple_mob/animal/passive/bird/azure_tit, + /mob/living/simple_mob/animal/passive/bird/european_robin, + /mob/living/simple_mob/animal/passive/bird/goldcrest, + /mob/living/simple_mob/animal/passive/bird/ringneck_dove, + /mob/living/simple_mob/animal/passive/bird/parrot, + /mob/living/simple_mob/animal/passive/bird/parrot/kea, + /mob/living/simple_mob/animal/passive/bird/parrot/eclectus, + /mob/living/simple_mob/animal/passive/bird/parrot/grey_parrot, + /mob/living/simple_mob/animal/passive/bird/parrot/black_headed_caique, + /mob/living/simple_mob/animal/passive/bird/parrot/white_caique, + /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar, + /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/blue, + /mob/living/simple_mob/animal/passive/bird/parrot/budgerigar/bluegreen, + /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel, + /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/white, + /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/yellowish, + /mob/living/simple_mob/animal/passive/bird/parrot/cockatiel/grey, + /mob/living/simple_mob/animal/passive/bird/parrot/sulphur_cockatoo, + /mob/living/simple_mob/animal/passive/bird/parrot/white_cockatoo, + /mob/living/simple_mob/animal/passive/bird/parrot/pink_cockatoo) //There's too dang many + +var/global/list/xenobio_cerulean_potions = list( + /obj/item/slimepotion/enhancer, + /obj/item/slimepotion/stabilizer, + /obj/item/slimepotion/mutator, + /obj/item/slimepotion/docility, + /obj/item/slimepotion/steroid, + /obj/item/slimepotion/unity, + /obj/item/slimepotion/loyalty, + /obj/item/slimepotion/friendship, + /obj/item/slimepotion/feeding, + /obj/item/slimepotion/infertility, + /obj/item/slimepotion/fertility, + /obj/item/slimepotion/shrink, + /obj/item/slimepotion/death, + /obj/item/slimepotion/ferality, + /obj/item/slimepotion/reinvigoration, + /obj/item/slimepotion/mimic, + /obj/item/slimepotion/sapience, + /obj/item/slimepotion/obedience) + +var/global/list/xenobio_rainbow_extracts = list( + /obj/item/slime_extract/grey = 2, + /obj/item/slime_extract/metal = 3, + /obj/item/slime_extract/blue = 3, + /obj/item/slime_extract/purple = 1, + /obj/item/slime_extract/orange = 3, + /obj/item/slime_extract/yellow = 3, + /obj/item/slime_extract/gold = 3, + /obj/item/slime_extract/silver = 3, + /obj/item/slime_extract/dark_purple = 2, + /obj/item/slime_extract/dark_blue = 3, + /obj/item/slime_extract/red = 3, + /obj/item/slime_extract/green = 3, + /obj/item/slime_extract/pink = 3, + /obj/item/slime_extract/oil = 3, + /obj/item/slime_extract/bluespace = 3, + /obj/item/slime_extract/cerulean = 1, + /obj/item/slime_extract/amber = 3, + /obj/item/slime_extract/sapphire = 3, + /obj/item/slime_extract/ruby = 3, + /obj/item/slime_extract/emerald = 3, + /obj/item/slime_extract/light_pink = 1, + /obj/item/slime_extract/rainbow = 1) \ No newline at end of file diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 3b20ccbb5c..f0ff01c05a 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -486,30 +486,3 @@ light_range = 8 light_power = 0.1 light_color = "#49F37C" - -/* - * Slime Extract - */ - -/obj/item/device/flashlight/slime - gender = PLURAL - name = "glowing slime extract" - desc = "A slimy ball that appears to be glowing from bioluminesence." - icon = 'icons/obj/lighting.dmi' - icon_state = "floor1" //not a slime extract sprite but... something close enough! - item_state = "slime" - light_color = "#FFF423" - w_class = ITEMSIZE_TINY - light_range = 6 - on = 1 //Bio-luminesence has one setting, on. - power_use = 0 - -/obj/item/device/flashlight/slime/New() - ..() - set_light(light_range, light_power, light_color) - -/obj/item/device/flashlight/slime/update_brightness() - return - -/obj/item/device/flashlight/slime/attack_self(mob/user) - return //Bio-luminescence does not toggle. diff --git a/code/modules/ai/ai_holder_subtypes/slime_xenobio_ai.dm b/code/modules/ai/ai_holder_subtypes/slime_xenobio_ai.dm index fb3537c69d..ee97da4233 100644 --- a/code/modules/ai/ai_holder_subtypes/slime_xenobio_ai.dm +++ b/code/modules/ai/ai_holder_subtypes/slime_xenobio_ai.dm @@ -76,6 +76,10 @@ if(amount > 0) if(rabid) return + if(my_slime.untamable) + holder.say("Grrr...") + holder.add_modifier(/datum/modifier/berserk, 30 SECONDS) + enrage() var/justified = my_slime.is_justified_to_discipline() // This will also consider the AI-side of that proc. remove_target() // Stop attacking. @@ -95,13 +99,6 @@ discipline = between(0, discipline + amount, 10) my_slime.update_mood() -// This slime always enrages if disciplined. -/datum/ai_holder/simple_mob/xenobio_slime/red/adjust_discipline(amount, silent) - if(amount > 0 && !rabid) - holder.say("Grrr...") - holder.add_modifier(/datum/modifier/berserk, 30 SECONDS) - enrage() - /datum/ai_holder/simple_mob/xenobio_slime/handle_special_strategical() discipline_decay() @@ -145,6 +142,16 @@ my_slime.update_mood() my_slime.visible_message(span("danger", "\The [my_slime] enrages!")) +// Called to relax from being rabid (when blue slime core was used). +/datum/ai_holder/simple_mob/xenobio_slime/proc/relax() + var/mob/living/simple_mob/slime/xenobio/my_slime = holder + if(my_slime.harmless) + return + if(rabid) + rabid = FALSE + my_slime.update_mood() + my_slime.visible_message(span("danger", "\The [my_slime] calms down.")) + // Called when using a pacification agent (or it's Kendrick being initalized). /datum/ai_holder/simple_mob/xenobio_slime/proc/pacify() remove_target() // So it stops trying to kill them. diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm index 4849db6105..9b9b79922d 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/subtypes.dm @@ -491,6 +491,7 @@ slime_color = "red" coretype = /obj/item/slime_extract/red movement_cooldown = 0 // See above. + untamable = TRUE // Will enrage if disciplined. description_info = "This slime is faster than the others. Attempting to discipline this slime will always cause it to go rabid and berserk." @@ -501,7 +502,7 @@ /mob/living/simple_mob/slime/xenobio/orange ) - ai_holder_type = /datum/ai_holder/simple_mob/xenobio_slime/red // Will enrage if disciplined. + ai_holder_type = /datum/ai_holder/simple_mob/xenobio_slime /mob/living/simple_mob/slime/xenobio/green diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm index ae2cfe25ee..8b26c95940 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm @@ -10,7 +10,14 @@ var/power_charge = 0 // Disarm attacks can shock someone if high/lucky enough. var/mob/living/victim = null // the person the slime is currently feeding on var/rainbow_core_candidate = TRUE // If false, rainbow cores cannot make this type randomly. +<<<<<<< HEAD var/mutation_chance = 30 // CHOMPedit Odds of spawning as a new color when reproducing. Can be modified by certain xenobio products. Carried across generations of slimes. +======= + var/mutation_chance = 25 // Odds of spawning as a new color when reproducing. Can be modified by certain xenobio products. Carried across generations of slimes. + var/split_amount = 4 // Amount of children we will normally have. Half of that for dead adult slimes. Is NOT carried across generations. + var/untamable = FALSE //Makes slime untamable via discipline. + var/untamable_inheirit = FALSE //Makes slime inheirit its untamability. +>>>>>>> ed28fbac1a... Merge pull request #12552 from Heroman3003/xenobio-rework var/list/slime_mutation = list( /mob/living/simple_mob/slime/xenobio/orange, /mob/living/simple_mob/slime/xenobio/metal, @@ -54,7 +61,6 @@ AI.resentment = max(previous_AI.resentment - 1, 0) AI.rabid = previous_AI.rabid - /mob/living/simple_mob/slime/xenobio/update_icon() icon_living = "[icon_state_override ? "[icon_state_override] slime" : "slime"] [is_adult ? "adult" : "baby"][victim ? " eating" : ""]" icon_dead = "[icon_state_override ? "[icon_state_override] slime" : "slime"] [is_adult ? "adult" : "baby"] dead" @@ -107,6 +113,21 @@ update_icon() update_name() +/mob/living/simple_mob/slime/xenobio/proc/make_baby() + if(!is_adult) + return + + is_adult = FALSE + melee_damage_lower = round(melee_damage_lower / 2) // 20 + melee_damage_upper = round(melee_damage_upper / 2) // 30 + maxHealth = initial(maxHealth) + health = clamp(health, 0, maxHealth) + max_nutrition = initial(max_nutrition) + nutrition = 400 + amount_grown = 0 + update_icon() + update_name() + /mob/living/simple_mob/slime/xenobio/proc/update_name() if(harmless) // Docile slimes are generally named, so we shouldn't mess with it. return @@ -142,6 +163,13 @@ var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder AI.enrage() +/mob/living/simple_mob/slime/xenobio/proc/relax() + if(harmless) + return + if(has_AI()) + var/datum/ai_holder/simple_mob/xenobio_slime/AI = ai_holder + AI.relax() + /mob/living/simple_mob/slime/xenobio/proc/pacify() harmless = TRUE if(has_AI()) @@ -208,12 +236,12 @@ if(free) free_tiles++ - if(free_tiles < 3) // Three free tiles are needed, as four slimes are made and the 4th tile is from the center tile that the current slime occupies. + if(free_tiles < split_amount-1) // Three free tiles are needed, as four slimes are made and the 4th tile is from the center tile that the current slime occupies. to_chat(src, span("warning", "It is too cramped here to reproduce...")) return var/list/babies = list() - for(var/i = 1 to 4) + for(var/i = 1 to split_amount) babies.Add(make_new_slime()) var/mob/living/simple_mob/slime/new_slime = pick(babies) @@ -245,6 +273,9 @@ if(!istype(baby, /mob/living/simple_mob/slime/xenobio/rainbow)) baby.unity = unity + if(untamable_inheirit) + baby.untamable = untamable + baby.untamable_inheirit = untamable_inheirit baby.faction = faction baby.friends = friends.Copy() diff --git a/code/modules/reagents/reactions/instant/instant_vr.dm b/code/modules/reagents/reactions/instant/instant_vr.dm index 6c42a76a2a..010110fa6e 100644 --- a/code/modules/reagents/reactions/instant/instant_vr.dm +++ b/code/modules/reagents/reactions/instant/instant_vr.dm @@ -204,9 +204,15 @@ required_reagents = list("plantcolony" = 5, "virusfood" = 5) result_amount = 60 +/////////////////////////////////////////////////////////////////////////////////// +/// Upstream Adjustments +/decl/chemical_reaction/instant/biomass + result_amount = 6 // Roughly 120u per phoron sheet + /////////////////////////////// -//SLIME CORES BELOW HERE/////// +//SLIME-RELATED BELOW HERE/////// /////////////////////////////// +<<<<<<< HEAD /decl/chemical_reaction/instant/slime_food name = "Slime Bork" id = "m_tele2" @@ -343,11 +349,14 @@ target_tile.assume_gas("phoron", 25, 1400) spawn (0) target_tile.hotspot_expose(700, 400) +======= +>>>>>>> ed28fbac1a... Merge pull request #12552 from Heroman3003/xenobio-rework /decl/chemical_reaction/instant/slimeify name = "Advanced Mutation Toxin" id = "advmutationtoxin2" result = "advmutationtoxin" required_reagents = list("phoron" = 15, "slimejelly" = 15, "mutationtoxin" = 15) //In case a xenobiologist wants to become a fully fledged slime person. +<<<<<<< HEAD result_amount = 1 /decl/chemical_reaction/instant/slimeheal //A slime healing mixture. Why not. @@ -443,3 +452,6 @@ /decl/chemical_reaction/instant/biomass result_amount = 6 // Roughly 120u per phoron sheet +======= + result_amount = 1 +>>>>>>> ed28fbac1a... Merge pull request #12552 from Heroman3003/xenobio-rework diff --git a/code/modules/xenobio/items/extracts.dm b/code/modules/xenobio/items/extracts.dm index 3c86a278f6..3a79e3b0ff 100644 --- a/code/modules/xenobio/items/extracts.dm +++ b/code/modules/xenobio/items/extracts.dm @@ -1,3 +1,5 @@ +//VOREStation Note - we use different xenobio balance in extracts_vr, keep this unticked. + // Base /obj/item/slime_extract name = "slime extract" diff --git a/code/modules/xenobio/items/extracts_vr.dm b/code/modules/xenobio/items/extracts_vr.dm new file mode 100644 index 0000000000..00abebfcb1 --- /dev/null +++ b/code/modules/xenobio/items/extracts_vr.dm @@ -0,0 +1,1661 @@ +// Base +/obj/item/slime_extract + name = "slime extract" + desc = "Goo extracted from a slime, which can do different things depending on its color and what it is injected with." + icon = 'icons/mob/slimes.dmi' + icon_state = "grey slime extract" + force = 1 + w_class = ITEMSIZE_TINY + throwforce = 0 + throw_speed = 3 + throw_range = 6 + origin_tech = list(TECH_BIO = 4) + var/uses = 1 // uses before it goes inert + var/enhanced = FALSE + var/slime_type + flags = OPENCONTAINER + + +/obj/item/slime_extract/New() + ..() + create_reagents(60) + +/obj/item/slime_extract/attackby(obj/item/O, mob/user) + if(istype(O, /obj/item/slimepotion/enhancer)) + if(enhanced) + to_chat(user, "You cannot enhance this extract further!") + return ..() + to_chat(user, "You apply the enhancer to the slime extract. It may now be reused one more time.") + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + uses += 2 + enhanced = TRUE + name = initial(name) // To remove the 'inert' part of the name. + qdel(O) + else if(istype(O, /obj/item/slimepotion/reinvigoration)) + to_chat(user, "You apply the reinvigorator to the slime extract. It rapidly expands, creating a brand new slime!") + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + new slime_type(get_turf(src)) + qdel(O) + qdel(src) + ..() + +/obj/item/slime_extract/examine(mob/user) + . = ..() + if(uses) + . += "This extract has [uses] more use\s." + else + . += "This extract is inert." + +/decl/chemical_reaction/instant/slime + var/required = null + +/decl/chemical_reaction/instant/slime/can_happen(var/datum/reagents/holder) + if(holder.my_atom && istype(holder.my_atom, required)) + var/obj/item/slime_extract/T = holder.my_atom + if(T.uses > 0) + return ..() + return FALSE + +/decl/chemical_reaction/instant/slime/on_reaction(var/datum/reagents/holder) + var/obj/item/slime_extract/T = holder.my_atom + T.uses-- + if(T.uses <= 0) + T.visible_message("[bicon(T)]\The [T] goes inert.") + T.name = "inert [initial(T.name)]" + + +// *************** +// * Grey slimes * +// *************** + +/obj/item/slime_extract/grey + name = "grey slime extract" + icon_state = "grey slime extract" + description_info = "When injected with phoron, this extract creates a grey slime. When injected with blood, this extract creates some monkey cubes. \ + When injected with water, this extract creates some slime jelly." + slime_type = /mob/living/simple_mob/slime/xenobio + + +/decl/chemical_reaction/instant/slime/grey_new_slime + name = "Slime Spawn" + id = "m_grey_spawn" + result = null + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/grey + +/decl/chemical_reaction/instant/slime/grey_new_slime/on_reaction(var/datum/reagents/holder) + holder.my_atom.visible_message("Infused with phoron, the core begins to quiver and grow, and soon a new baby slime emerges from it!") + new /mob/living/simple_mob/slime/xenobio(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/grey_monkey + name = "Slime Monkey" + id = "m_grey_monkey" + result = null + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/grey + +/decl/chemical_reaction/instant/slime/grey_monkey/on_reaction(var/datum/reagents/holder) + for(var/i = 1 to 4) + new /obj/item/weapon/reagent_containers/food/snacks/monkeycube(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/grey_slimejelly + name = "Slime Jelly" + id = "m_grey_jelly" + result = "slimejelly" + required_reagents = list("water" = 5) + result_amount = 30 + required = /obj/item/slime_extract/grey + +// **************** +// * Metal slimes * +// **************** + +/obj/item/slime_extract/metal + name = "metal slime extract" + icon_state = "metal slime extract" + description_info = "When injected with phoron, this extract creates some basic construction materials. When injected with blood, this extract creates some advanced construction materials. \ + When injected with water, this extract creates some unorthodox materials. When injected with slime jelly, this extract creates some steel." + slime_type = /mob/living/simple_mob/slime/xenobio/metal + + +/decl/chemical_reaction/instant/slime/metal_materials_basic + name = "Slime Basic Construction Materials" + id = "m_metal_basic" + result = null + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/metal + +/decl/chemical_reaction/instant/slime/metal_materials_basic/on_reaction(var/datum/reagents/holder) + for(var/i = 1 to 3) + var/type_to_spawn = pickweight(xenobio_metal_materials_normal) + new type_to_spawn(get_turf(holder.my_atom), 10) + ..() + + +/decl/chemical_reaction/instant/slime/metal_materials_adv + name = "Slime Advanced Construction Materials" + id = "m_metal_adv" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/metal + +/decl/chemical_reaction/instant/slime/metal_materials_adv/on_reaction(var/datum/reagents/holder) + for(var/i = 1 to 2) + var/type_to_spawn = pickweight(xenobio_metal_materials_adv) + new type_to_spawn(get_turf(holder.my_atom), 10) + ..() + + +/decl/chemical_reaction/instant/slime/metal_materials_weird + name = "Slime Weird Construction Materials" + id = "m_metal_weird" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/metal + +/decl/chemical_reaction/instant/slime/metal_materials_weird/on_reaction(var/datum/reagents/holder) + for(var/i = 1 to 3) + var/type_to_spawn = pickweight(xenobio_metal_materials_weird) + new type_to_spawn(get_turf(holder.my_atom), 5) + ..() + + +/decl/chemical_reaction/instant/slime/metal_materials_steel + name = "Slime Weird Construction Materials" + id = "m_metal_steel" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/metal + +/decl/chemical_reaction/instant/slime/metal_materials_steel/on_reaction(var/datum/reagents/holder) + new /obj/item/stack/material/steel(get_turf(holder.my_atom), 25) + ..() + +// *************** +// * Blue slimes * +// *************** + +/obj/item/slime_extract/blue + name = "blue slime extract" + icon_state = "blue slime extract" + description_info = "When injected with phoron, this extract creates some frost oil. When injected with blood, this extract creates stability agent that can reduce slime's mutation chance. \ + When injected with water, this extract creates a clamness wave that calms enraged slimes. When injected with slime jelly, this extract creates some cryotoxin." + slime_type = /mob/living/simple_mob/slime/xenobio/blue + + +/decl/chemical_reaction/instant/slime/blue_frostoil + name = "Slime Frost Oil" + id = "m_blue_frostoil" + result = "frostoil" + required_reagents = list("phoron" = 5) + result_amount = 30 + required = /obj/item/slime_extract/blue + + +/decl/chemical_reaction/instant/slime/blue_stability + name = "Slime Stability" + id = "m_blue_stability" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/blue + +/decl/chemical_reaction/instant/slime/blue_stability/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/stabilizer(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/blue_calm + name = "Slime Calm" + id = "m_blue_calm" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/blue + +/decl/chemical_reaction/instant/slime/blue_calm/on_reaction(var/datum/reagents/holder) + for(var/mob/living/simple_mob/slime/S in view(get_turf(holder.my_atom))) + if(S.stat) + continue + + if(istype(S, /mob/living/simple_mob/slime/xenobio)) + var/mob/living/simple_mob/slime/xenobio/X = S + if(X.harmless) + continue + if(!X.client) + X.relax() + + S.remove_modifiers_of_type(/datum/modifier/berserk) + + if(S.client) // Player slimes always have free will. + to_chat(S, "An intense wave of relaxing calm is felt from inside, but you remain in control of yourself.") + + for(var/mob/living/carbon/human/H in view(get_turf(holder.my_atom))) + if(H.species.name == SPECIES_PROMETHEAN) + H.remove_modifiers_of_type(/datum/modifier/berserk) + to_chat(H, "An intense wave of relaxing calm is felt from inside, but you remain in control of yourself.") + + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + ..() + + +/decl/chemical_reaction/instant/slime/blue_cryotoxin + name = "Slime Cryotoxin" + id = "m_blue_cryotoxin" + result = "cryotoxin" + required_reagents = list("slimejelly" = 5) + result_amount = 30 + required = /obj/item/slime_extract/blue + +// ***************** +// * Purple slimes * +// ***************** + +/obj/item/slime_extract/purple + name = "purple slime extract" + icon_state = "purple slime extract" + description_info = "When injected with phoron, this extract creates steroid agent, which can be used to increase amount of extracts in a slime. When injected with blood, this extract creates \ + infertility agent, which can be used to decrease amount of slime's offspring. When injected with water, this extract creates shrink agent, which can be used to turn an adult slime into a baby. \ + When injected with slime jelly, this extract creates a fertility agent, which can be used to increase amount of slime's offspring." + slime_type = /mob/living/simple_mob/slime/xenobio/purple + + +/decl/chemical_reaction/instant/slime/purple_steroid + name = "Slime Steroid" + id = "m_purple_steroid" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/purple + +/decl/chemical_reaction/instant/slime/purple_steroid/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/steroid(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/purple_infertility + name = "Slime Infetility" + id = "m_purple_infertility" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/purple + +/decl/chemical_reaction/instant/slime/purple_infertility/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/infertility(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/purple_shrink + name = "Slime Shrink" + id = "m_purple_shrink" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/purple + +/decl/chemical_reaction/instant/slime/purple_shrink/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/shrink(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/purple_fertility + name = "Slime Fetility" + id = "m_purple_fertility" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/purple + +/decl/chemical_reaction/instant/slime/purple_fertility/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/fertility(get_turf(holder.my_atom)) + ..() + +// ***************** +// * Orange slimes * +// ***************** + +/obj/item/slime_extract/orange + name = "orange slime extract" + icon_state = "orange slime extract" + description_info = "When injected with phoron, this extract creates a phoron fire. When injected with blood, this extract creates a heat wave. When injected with water, this extract creates \ + some smoke. When injected with slime jelly, this extract creates some pyrotoxin." + slime_type = /mob/living/simple_mob/slime/xenobio/orange + + +/decl/chemical_reaction/instant/slime/orange_fire + name = "Slime Fire" + id = "m_orange_fire" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/orange + +/decl/chemical_reaction/instant/slime/orange_fire/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Orange extract reaction (fire) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + holder.my_atom.visible_message("\The [src] begins to vibrate violently!") + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + spawn(5 SECONDS) + if(holder && holder.my_atom) + var/turf/simulated/T = get_turf(holder.my_atom) + if(!istype(T)) + return + + for(var/turf/simulated/target_turf in view(2, T)) + target_turf.assume_gas("volatile_fuel", 33, 1500+T0C) + target_turf.assume_gas("oxygen", 66, 1500+T0C) + spawn(0) + target_turf.hotspot_expose(1500+T0C, 400) + + playsound(T, 'sound/effects/phasein.ogg', 75, 1) + ..() + + +/decl/chemical_reaction/instant/slime/orange_heatwave + name = "Slime Heat Wave" + id = "m_orange_heatwave" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/orange + +/decl/chemical_reaction/instant/slime/orange_heatwave/on_reaction(var/datum/reagents/holder) + var/turf/simulated/T = get_turf(holder.my_atom) + if(!T) // Nullspace lacks zones. + return + + if(!istype(T)) + return + + var/zone/Z = T.zone + if(!Z) // Paranoid. + return + + log_and_message_admins("Orange extract reaction (heat wave) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + + var/list/nearby_things = view(T) + + // Hurt mobs. + for(var/mob/living/L in nearby_things) + var/turf/simulated/their_turf = get_turf(L) + if(!istype(their_turf)) // Not simulated. + continue + + if(!(their_turf in Z.contents)) // Not in the same zone. + continue + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + var/protection = H.get_heat_protection() + + if(protection < 1) + var/cold_factor = abs(protection - 1) + H.bodytemperature = between(50, (H.bodytemperature - ((H.bodytemperature + 50) * cold_factor) ), H.bodytemperature) + + if(protection < 0.7) + to_chat(L, "A scalding wave of heat overwhelms you!") + else + to_chat(L, "A scalding wave of heat passes by you, as your armor protects you from it.") + continue + + // Now make it very cold. + var/datum/gas_mixture/env = T.return_air() + if(env) + // This is most likely physically impossible but when has that stopped slimes before? + env.add_thermal_energy(15 * 1000 * 1000) + + playsound(T, 'sound/effects/phasein.ogg', 75, 1) + ..() + + +/decl/chemical_reaction/instant/slime/orange_smoke + name = "Slime Smoke" + id = "m_orange_smoke" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/orange + +/decl/chemical_reaction/instant/slime/orange_smoke/on_reaction(var/datum/reagents/holder) + var/location = get_turf(holder.my_atom) + var/datum/effect/effect/system/smoke_spread/chem/S = new /datum/effect/effect/system/smoke_spread/chem + S.attach(location) + S.set_up(holder, 120, 0, location) + playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) + spawn(0) + S.start() + ..() + + +/decl/chemical_reaction/instant/slime/orange_pyrotoxin + name = "Slime Pyrotoxin" + id = "m_orange_pyrotoxin" + result = "thermite_v" + required_reagents = list("slimejelly" = 5) + result_amount = 30 + required = /obj/item/slime_extract/orange + +// ***************** +// * Yellow slimes * +// ***************** + +/obj/item/slime_extract/yellow + name = "yellow slime extract" + icon_state = "yellow slime extract" + description_info = "When injected with phoron, this extract creates a lightning strike. When injected with blood, this extract creates a slime flashlight. When injected with water \ + this extract creates an EMP puls. When injected with slime jelly, this extract creates a self-charging slime battery." + slime_type = /mob/living/simple_mob/slime/xenobio/yellow + + +/decl/chemical_reaction/instant/slime/yellow_lightning + name = "Slime Lightning" + id = "m_yellow_lightning" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/yellow + +/decl/chemical_reaction/instant/slime/yellow_lightning/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Yellow extract reaction (lightning) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + holder.my_atom.visible_message("\The [src] begins to vibrate violently!") + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + spawn(5 SECONDS) + if(holder && holder.my_atom) + lightning_strike(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/yellow_flashlight + name = "Slime Flashlight" + id = "m_yellow_flashlight" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/yellow + +/decl/chemical_reaction/instant/slime/yellow_flashlight/on_reaction(var/datum/reagents/holder) + new /obj/item/device/flashlight/slime(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/yellow_emp + name = "Slime EMP" + id = "m_yellow_emp" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/yellow + +/decl/chemical_reaction/instant/slime/yellow_emp/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Yellow extract reaction (emp) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + holder.my_atom.visible_message("\The [src] begins to vibrate violently!") + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + spawn(5 SECONDS) + if(holder && holder.my_atom) + empulse(get_turf(holder.my_atom), 2, 4, 7, 10) // As strong as a normal EMP grenade. + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + ..() + + +/decl/chemical_reaction/instant/slime/yellow_battery + name = "Slime Cell" + id = "m_yellow_cell" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/yellow + +/decl/chemical_reaction/instant/slime/yellow_battery/on_reaction(var/datum/reagents/holder) + new /obj/item/weapon/cell/slime(get_turf(holder.my_atom)) + ..() + +// *************** +// * Gold slimes * +// *************** + +/obj/item/slime_extract/gold + name = "gold slime extract" + icon_state = "gold slime extract" + description_info = "When injected with phoron, this extract creates a few random creatures. When injected with blood, this extract a random hostile creature. \ + When injected with water, this extract creates a random passive creature. When injected with slime jelly, this extract creates some gold." + slime_type = /mob/living/simple_mob/slime/xenobio/gold + + +/decl/chemical_reaction/instant/slime/gold_random_mobs + name = "Slime Random Mobs" + id = "m_gold_random_mobs" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/gold + +/decl/chemical_reaction/instant/slime/gold_random_mobs/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Gold extract reaction (random mobs) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + var/type_to_spawn + var/list/all_spawnable_types = list() + all_spawnable_types += xenobio_gold_mobs_safe + all_spawnable_types += xenobio_gold_mobs_hostile + all_spawnable_types += xenobio_gold_mobs_birds + for(var/j = 1, j <= 3, j++) + if(prob(1)) + type_to_spawn = pickweight(xenobio_gold_mobs_bosses) + else + type_to_spawn = pickweight(all_spawnable_types) + + var/mob/living/C = new type_to_spawn(get_turf(holder.my_atom)) + for(var/l = 1, l <= rand(1, 3), l++) + step(C, pick(NORTH,SOUTH,EAST,WEST)) + ..() + + +/decl/chemical_reaction/instant/slime/gold_hostile_mob + name = "Slime Hostile Mob" + id = "m_gold_hostile_mob" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/gold + +/decl/chemical_reaction/instant/slime/gold_hostile_mob/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Gold extract reaction (dangerous mob) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + var/type_to_spawn = pickweight(xenobio_gold_mobs_hostile) + var/mob/living/C = new type_to_spawn(get_turf(holder.my_atom)) + for(var/l = 1, l <= rand(1, 3), l++) + step(C, pick(NORTH,SOUTH,EAST,WEST)) + ..() + + +/decl/chemical_reaction/instant/slime/gold_safe_mob + name = "Slime Safe Mob" + id = "m_gold_safe_mob" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/gold + +/decl/chemical_reaction/instant/slime/gold_safe_mob/on_reaction(var/datum/reagents/holder) + var/type_to_spawn + if(prob(100/(xenobio_gold_mobs_safe.len + 1))) + type_to_spawn = pickweight(xenobio_gold_mobs_birds) + else + type_to_spawn = pickweight(xenobio_gold_mobs_safe) + var/mob/living/C = new type_to_spawn(get_turf(holder.my_atom)) + for(var/l = 1, l <= rand(1, 3), l++) + step(C, pick(NORTH,SOUTH,EAST,WEST)) + ..() + + +/decl/chemical_reaction/instant/slime/gold_materials_gold + name = "Slime Gold" + id = "m_gold_gold" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/gold + +/decl/chemical_reaction/instant/slime/gold_materials_gold/on_reaction(var/datum/reagents/holder) + new /obj/item/stack/material/gold(get_turf(holder.my_atom), 10) + ..() + +// ***************** +// * Silver slimes * +// ***************** + +/obj/item/slime_extract/silver + name = "silver slime extract" + icon_state = "silver slime extract" + description_info = "When injected with phoron, this extract creates some basic science materials. When injected with blood, this extract creates some advanced science materials. When injected \ + with water, this extract creates some completely random materials. When injected with slime jelly, this extract creates some silver." + slime_type = /mob/living/simple_mob/slime/xenobio/silver + + +/decl/chemical_reaction/instant/slime/silver_materials_basic + name = "Slime Basic Science Materials" + id = "m_silver_basic" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/silver + +/decl/chemical_reaction/instant/slime/silver_materials_basic/on_reaction(var/datum/reagents/holder) + for(var/i = 1 to 2) + var/type_to_spawn = pickweight(xenobio_silver_materials_basic) + new type_to_spawn(get_turf(holder.my_atom), 5) + ..() + + +/decl/chemical_reaction/instant/slime/silver_materials_adv + name = "Slime Advanced Science Materials" + id = "m_silver_adv" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/silver + +/decl/chemical_reaction/instant/slime/silver_materials_adv/on_reaction(var/datum/reagents/holder) + var/type_to_spawn = pickweight(xenobio_silver_materials_adv) + new type_to_spawn(get_turf(holder.my_atom), 3) + ..() + + +/decl/chemical_reaction/instant/slime/silver_materials_random + name = "Slime Random Materials" + id = "m_silver_random" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/silver + +/decl/chemical_reaction/instant/slime/silver_materials_random/on_reaction(var/datum/reagents/holder) + var/type_to_spawn + var/amount = 5 + var/all_spawnable_types = list() + all_spawnable_types += xenobio_metal_materials_normal + all_spawnable_types += xenobio_metal_materials_adv + all_spawnable_types += xenobio_metal_materials_weird + all_spawnable_types += xenobio_silver_materials_basic + all_spawnable_types += xenobio_silver_materials_adv + all_spawnable_types += xenobio_silver_materials_special + for(var/i = 1 to 3) + type_to_spawn = pickweight(all_spawnable_types) + if(type_to_spawn in xenobio_silver_materials_special) + amount = 1 + new type_to_spawn(get_turf(holder.my_atom), amount) + ..() + + +/decl/chemical_reaction/instant/slime/silver_materials_silver + name = "Slime Silver" + id = "m_silver_silver" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/silver + +/decl/chemical_reaction/instant/slime/silver_materials_silver/on_reaction(var/datum/reagents/holder) + new /obj/item/stack/material/silver(get_turf(holder.my_atom), 10) + ..() + +// ********************** +// * Dark Purple slimes * +// ********************** + +/obj/item/slime_extract/dark_purple + name = "dark purple slime extract" + icon_state = "dark purple slime extract" + description_info = "When injected with water, this extract creates some phoron. When injected with slime jelly, this extract creates some blood." + slime_type = /mob/living/simple_mob/slime/xenobio/dark_purple + + +/decl/chemical_reaction/instant/slime/dark_purple_phoron + name = "Slime Phoron" + id = "m_darkpurple_phoron" + result = "phoron" + required_reagents = list("water" = 5) + result_amount = 30 + required = /obj/item/slime_extract/dark_purple + + +/decl/chemical_reaction/instant/slime/dark_purple_blood + name = "Slime Blood" + id = "m_darkpurple_blood" + result = "blood" + required_reagents = list("slimejelly" = 5) + result_amount = 30 + required = /obj/item/slime_extract/dark_purple + +// ******************** +// * Dark Blue slimes * +// ******************** + +/obj/item/slime_extract/dark_blue + name = "dark blue slime extract" + icon_state = "dark blue slime extract" + description_info = "When injected with phoron, this extract creates a cold wave. When injected with blood, this extract grants ability to resist temperature for a while. \ + When injected with water, the water freezes. When injected with slime jelly, this extract creates a death agent, which can be used to instantly kill a slime." + slime_type = /mob/living/simple_mob/slime/xenobio/dark_blue + + +/decl/chemical_reaction/instant/slime/dark_blue_cold_snap + name = "Slime Cold Snap" + id = "m_darkblue_coldsnap" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/dark_blue + +// This iterates over a ZAS zone's contents, so that things seperated in other zones aren't subjected to the temperature drop. +/decl/chemical_reaction/instant/slime/dark_blue_cold_snap/on_reaction(var/datum/reagents/holder) + var/turf/simulated/T = get_turf(holder.my_atom) + if(!T) // Nullspace lacks zones. + return + + if(!istype(T)) + return + + var/zone/Z = T.zone + if(!Z) // Paranoid. + return + + log_and_message_admins("Dark Blue extract reaction (cold snap) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + + var/list/nearby_things = view(T) + + // Hurt mobs. + for(var/mob/living/L in nearby_things) + var/turf/simulated/their_turf = get_turf(L) + if(!istype(their_turf)) // Not simulated. + continue + + if(!(their_turf in Z.contents)) // Not in the same zone. + continue + + if(istype(L, /mob/living/simple_mob/slime)) + var/mob/living/simple_mob/slime/S = L + if(S.cold_resist >= 1) // Immune to cold. + to_chat(S, "A chill is felt around you, however it cannot harm you.") + continue + if(S.client) // Don't instantly kill player slimes. + to_chat(S, "You feel your body crystalize as an intense chill overwhelms you!") + S.inflict_cold_damage(100) + else + S.inflict_cold_damage(200) // Metal slimes can survive this 'slime nuke'. + continue + + if(ishuman(L)) + var/mob/living/carbon/human/H = L + var/protection = H.get_cold_protection() + + if(protection < 1) + var/cold_factor = abs(protection - 1) + H.bodytemperature = between(50, (H.bodytemperature - ((H.bodytemperature - 50) * cold_factor) ), H.bodytemperature) + + if(protection < 0.7) + to_chat(L, "A chilling wave of cold overwhelms you!") + else + to_chat(L, "A chilling wave of cold passes by you, as your armor protects you from it.") + continue + + // Now make it very cold. + var/datum/gas_mixture/env = T.return_air() + if(env) + // This is most likely physically impossible but when has that stopped slimes before? + env.add_thermal_energy(-10 * 1000 * 1000) // For a moderately sized room this doesn't actually lower it that much. + + playsound(T, 'sound/effects/phasein.ogg', 75, 1) + + ..() + + +/decl/chemical_reaction/instant/slime/dark_blue_temp_resist + name = "Slime Temperature Resistance" + id = "m_darkblue_temperature_resist" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/dark_blue + +/decl/chemical_reaction/instant/slime/dark_blue_temp_resist/on_reaction(var/datum/reagents/holder) + for(var/mob/living/L in range(1, holder.my_atom)) + L.add_modifier(/datum/modifier/slime_temp_resist, 5 MINUTES, src) + ..() + +/datum/modifier/slime_temp_resist + name = "slime temperature resistance" + desc = "You feel immune to heat and cold." + mob_overlay_state = "corona" + + on_created_text = "A shield of goo surround you. It makes you feel protected against temperature." + on_expired_text = "The shield of goo has faded, and you feel vulnerable to temperature again." + stacks = MODIFIER_STACK_EXTEND + + incoming_fire_damage_percent = 0.5 + heat_protection = 1 + cold_protection = 1 + + +/decl/chemical_reaction/instant/slime/dark_blue_ice + name = "Slime Ice" + id = "m_darkblue_ice" + result = "ice" + required_reagents = list("water" = 5) + result_amount = 5 + required = /obj/item/slime_extract/dark_blue + + +/decl/chemical_reaction/instant/slime/dark_blue_death + name = "Slime Death" + id = "m_darkblue_death" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/dark_blue + +/decl/chemical_reaction/instant/slime/dark_blue_death/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/death(get_turf(holder.my_atom)) + ..() + +// ************** +// * Red slimes * +// ************** + +/obj/item/slime_extract/red + name = "red slime extract" + icon_state = "red slime extract" + description_info = "When injected with phoron, this extract creates a mutation agent, that can be used to increase a slime's mutation chance. When injected with blood, this extract causes \ + nearby slimes to fall into rage. When injected with water, this extract creates some hot sauce. When injected with slime jelly, this extract creates a ferality agent, which makes slimes \ + unreceptive to discipline." + slime_type = /mob/living/simple_mob/slime/xenobio/red + + +/decl/chemical_reaction/instant/slime/red_mutation + name = "Slime Mutation" + id = "m_red_mutation" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/red + +/decl/chemical_reaction/instant/slime/red_mutation/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/mutator(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/red_enrage + name = "Slime Enrage" + id = "m_red_enrage" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/red + +/decl/chemical_reaction/instant/slime/red_enrage/on_reaction(var/datum/reagents/holder) + for(var/mob/living/simple_mob/slime/S in view(get_turf(holder.my_atom))) + if(S.stat) + continue + + if(istype(S, /mob/living/simple_mob/slime/xenobio)) + var/mob/living/simple_mob/slime/xenobio/X = S + if(X.harmless) + continue + if(!X.client) + X.enrage() + + S.add_modifier(/datum/modifier/berserk, 30 SECONDS) + + if(S.client) // Player slimes always have free will. + to_chat(S, "An intense wave of rage is felt from inside, but you remain in control of yourself.") + + for(var/mob/living/carbon/human/H in view(get_turf(holder.my_atom))) + if(H.species.name == SPECIES_PROMETHEAN) + H.add_modifier(/datum/modifier/berserk, 30 SECONDS) + to_chat(H, "An intense wave of rage is felt from inside, but you remain in control of yourself.") + + log_and_message_admins("Red extract reaction (enrage) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + ..() + + +/decl/chemical_reaction/instant/slime/red_hotsauce + name = "Slime Hot Sauce" + id = "m_red_hotsauce" + result = "capsaicin" + required_reagents = list("water" = 5) + result_amount = 30 + required = /obj/item/slime_extract/red + + +/decl/chemical_reaction/instant/slime/red_ferality + name = "Slime Ferality" + id = "m_red_ferality" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/red + +/decl/chemical_reaction/instant/slime/red_ferality/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/ferality(get_turf(holder.my_atom)) + ..() + +// *************** +// * Green slime * +// *************** + +/obj/item/slime_extract/green + name = "green slime extract" + icon_state = "green slime extract" + description_info = "When injected with phoron, this extract creates a single radioactive pulse. When injected with blood, this extract creates a radioactive glob. When injected with water \ + this extract creates some radium. When injected with slime jelly, this extract creates some uranium." + slime_type = /mob/living/simple_mob/slime/xenobio/green + + +/decl/chemical_reaction/instant/slime/green_radpulse + name = "Slime Radiation Pulse" + id = "m_green_radpulse" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/green + +/decl/chemical_reaction/instant/slime/green_radpulse/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Green extract reaction (radiation pulse) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + holder.my_atom.visible_message("\The [holder.my_atom] begins to vibrate violently!") + spawn(5 SECONDS) + SSradiation.flat_radiate(src, 30, 7, TRUE) + ..() + + +/decl/chemical_reaction/instant/slime/green_emitter + name = "Slime Radiation Emitter" + id = "m_green_emitter" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/green + +/decl/chemical_reaction/instant/slime/green_emitter/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Green extract reaction (radiation emitter) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + new /obj/item/slime_irradiator(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/green_radium + name = "Slime Radium" + id = "m_green_radium" + result = "radium" + required_reagents = list("water" = 5) + result_amount = 30 + required = /obj/item/slime_extract/green + + +/decl/chemical_reaction/instant/slime/green_uranium + name = "Slime Uranium" + id = "m_green_uranium" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/green + +/decl/chemical_reaction/instant/slime/green_uranium/on_reaction(var/datum/reagents/holder) + new /obj/item/stack/material/uranium(get_turf(holder.my_atom), 10) + ..() + +// *************** +// * Pink slimes * +// *************** + +/obj/item/slime_extract/pink + name = "pink slime extract" + icon_state = "pink slime extract" + description_info = "When injected with phoron, this extract creates some bone fixing agent. When injected with blood, this extract creates some clotting agent. When injected with water, this \ + extract creates some organ healing agent. When injected with slime jelly, this extract creates a powerful regenerative wave." + slime_type = /mob/living/simple_mob/slime/xenobio/pink + + +/decl/chemical_reaction/instant/slime/pink_bone_fix + name = "Slime Bone Med" + id = "m_pink_bone_fixer" + result = "slime_bone_fixer" + required_reagents = list("phoron" = 5) + result_amount = 30 + required = /obj/item/slime_extract/pink + + +/decl/chemical_reaction/instant/slime/pink_clotting + name = "Slime Clotting Med" + id = "m_pink_clotting" + result = "slime_bleed_fixer" + required_reagents = list("blood" = 5) + result_amount = 30 + required = /obj/item/slime_extract/pink + + +/decl/chemical_reaction/instant/slime/pink_organ_fix + name = "Slime Organ Med" + id = "m_pink_organ_fixer" + result = "slime_organ_fixer" + required_reagents = list("water" = 5) + result_amount = 30 + required = /obj/item/slime_extract/pink + + +/decl/chemical_reaction/instant/slime/pink_heal_pulse + name = "Slime Heal Pulse" + id = "m_pink_heal_pulse" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/pink + +/decl/chemical_reaction/instant/slime/pink_heal_pulse/on_reaction(var/datum/reagents/holder) + for(var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null)) + to_chat(C, "A wave of energy suddenly invigorates you.") + C.adjustBruteLoss(-25) + C.adjustFireLoss(-25) + C.adjustToxLoss(-25) + C.adjustOxyLoss(-25) + C.adjustBrainLoss(-25) + C.adjustCloneLoss(-25) + C.updatehealth() + ..() + +// ************** +// * Oil slimes * +// ************** + +/obj/item/slime_extract/oil + name = "oil slime extract" + icon_state = "oil slime extract" + description_info = "When injected with phoron, this extract creates some fuel. When injected with blood, this extract creates some cooking oil. When injected with water, this extract \ + creates a fake explosion sound. When injected with slime jelly, this extract explodes." + slime_type = /mob/living/simple_mob/slime/xenobio/oil + + +/decl/chemical_reaction/instant/slime/oil_fuel + name = "Slime Fuel" + id = "m_oil_fuel" + result = "fuel" + required_reagents = list("phoron" = 5) + result_amount = 30 + required = /obj/item/slime_extract/oil + + +/decl/chemical_reaction/instant/slime/oil_oil + name = "Slime Oil" + id = "m_oil_oil" + result = "cookingoil" + required_reagents = list("blood" = 5) + result_amount = 30 + required = /obj/item/slime_extract/oil + + +/decl/chemical_reaction/instant/slime/oil_fakesplosion + name = "Slime Fake Explosion" + id = "m_oil_fakeboom" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/oil + +/decl/chemical_reaction/instant/slime/oil_fakesplosion/on_reaction(var/datum/reagents/holder) + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + explosion(get_turf(holder.my_atom), 0, 0, 0) + ..() + + +/decl/chemical_reaction/instant/slime/oil_explosion + name = "Slime Explosion" + id = "m_oil_boom" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/oil + +/decl/chemical_reaction/instant/slime/oil_explosion/on_reaction(var/datum/reagents/holder) + ..() + var/obj/item/slime_extract/E = holder.my_atom + var/power = 1 + if(E.enhanced) + power++ + E.uses = 0 + + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 75, 1) + holder.my_atom.visible_message("\The [holder.my_atom] begins to vibrate violently!") + log_and_message_admins("Oil extract reaction (explosion) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + + spawn(5 SECONDS) + if(holder && holder.my_atom) + explosion(get_turf(holder.my_atom), 1 * power, 3 * power, 6 * power) + + if(holder && holder.my_atom) // Explosion may or may not have deleted the extract. + qdel(holder.my_atom) + +// ******************** +// * Bluespace slimes * +// ******************** + +/obj/item/slime_extract/bluespace + name = "bluespace slime extract" + icon_state = "bluespace slime extract" + description_info = "When injected with phoron, this extract creates some bluespace crystals. When injected with blood, this extract creates a bluespace bag. When injected with water, this \ + extract causes random teleportation. When injected with slime jelly, this extract creates a disposable precise teleportation tool." + slime_type = /mob/living/simple_mob/slime/xenobio/bluespace + + +/decl/chemical_reaction/instant/slime/bluespace_crystals + name = "Slime Bluespace Crystals" + id = "m_bs_crystals" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/bluespace + +/decl/chemical_reaction/instant/slime/bluespace_crystals/on_reaction(var/datum/reagents/holder) + for(var/i = 1 to 5) + new /obj/item/slime_crystal(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/bluespace_pouch + name = "Slime Bluespace Pouch" + id = "m_bs_pouch" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/bluespace + +/decl/chemical_reaction/instant/slime/bluespace_pouch/on_reaction(var/datum/reagents/holder) + new /obj/item/weapon/storage/backpack/holding/slime(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/bluespace_chaotic_tele + name = "Slime Bluespace Chaos" + id = "m_bs_chaos" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/bluespace + +/decl/chemical_reaction/instant/slime/bluespace_chaotic_tele/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Bluespace extract reaction (chaos teleport) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + for(var/mob/living/M in range(2,get_turf(holder.my_atom))) + if(M.buckled) + M.buckled.unbuckle_mob() + + var/datum/effect/effect/system/spark_spread/sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, get_turf(M)) + sparks.start() + + M.forceMove(pick(trange(50, get_turf(holder.my_atom)))) + + sparks = new /datum/effect/effect/system/spark_spread() + sparks.set_up(3, 0, M.loc) + sparks.start() + ..() + + +/decl/chemical_reaction/instant/slime/bluespace_teleporter + name = "Slime Bluespace Teleporter" + id = "m_bs_teleporter" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/bluespace + +/decl/chemical_reaction/instant/slime/bluespace_teleporter/on_reaction(var/datum/reagents/holder) + new /obj/item/weapon/disposable_teleporter/slime(get_turf(holder.my_atom)) + ..() + +// ******************* +// * Cerulean slimes * +// ******************* + +/obj/item/slime_extract/cerulean + name = "cerulean slime extract" + icon_state = "cerulean slime extract" + description_info = "When injected with phoron, this extract creates an enhancer agent, which can be used to increase amount of uses any extract has once. When injected with blood, this extact \ + creates an invigoration agent, which can be used to create a slime out of an extract. When injected with water, this extract creates a mimic agent, which can copy properties of other agents. \ + When injected with slime jelly, this extract creates a random agent." + slime_type = /mob/living/simple_mob/slime/xenobio/cerulean + + +/decl/chemical_reaction/instant/slime/cerulean_enhancer + name = "Slime Enhancer" + id = "m_cerulean_enhancer" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/cerulean + +/decl/chemical_reaction/instant/slime/cerulean_enhancer/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/enhancer(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/cerulean_reinvigoration + name = "Slime Reinvigoration" + id = "m_cerulean_reinvigoration" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/cerulean + +/decl/chemical_reaction/instant/slime/cerulean_reinvigoration/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/reinvigoration(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/cerulean_potion_mimic + name = "Slime Potion Mimic" + id = "m_cerulean_potion_mimic" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/cerulean + +/decl/chemical_reaction/instant/slime/cerulean_potion_mimic/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/mimic(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/cerulean_random_potion + name = "Slime Random Potion" + id = "m_cerulean_random_potion" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/cerulean + +/decl/chemical_reaction/instant/slime/cerulean_random_potion/on_reaction(var/datum/reagents/holder) + var/spawn_type = pickweight(xenobio_cerulean_potions) + new spawn_type(get_turf(holder.my_atom)) + ..() + +// **************** +// * Amber slimes * +// **************** + +/obj/item/slime_extract/amber + name = "amber slime extract" + icon_state = "amber slime extract" + description_info = "When injected with phoron, this extract creates a feeding agent, which can be used to instantly split a slime. When injected with blood, this extract creates some food. \ + When injected with water, this extract creates some edible slime globs. When injected with slime jelly, this extract creates some super-nutritious slime goop." + slime_type = /mob/living/simple_mob/slime/xenobio/amber + + +/decl/chemical_reaction/instant/slime/amber_slimefood + name = "Slime Feeding" + id = "m_amber_slime_food" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/amber + +/decl/chemical_reaction/instant/slime/amber_slimefood/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/feeding(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/amber_random_food + name = "Slime Random Food" + id = "m_amber_random_food" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/amber + +/decl/chemical_reaction/instant/slime/amber_random_food/on_reaction(var/datum/reagents/holder) + var/list/edibles = subtypesof(/obj/item/weapon/reagent_containers/food/snacks) + + playsound(holder.my_atom, 'sound/effects/phasein.ogg', 100, 1) + + for(var/i = 1 to rand(2, 4)) + var/chosen = pick(edibles) + var/obj/B = new chosen + if(B) + B.loc = get_turf(holder.my_atom) + if(prob(50)) + for(var/j = 1, j <= rand(1, 3), j++) + step(B, pick(NORTH,SOUTH,EAST,WEST)) + ..() + + +/decl/chemical_reaction/instant/slime/amber_snack + name = "Slime Snack" + id = "m_amber_snack" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/amber + +/decl/chemical_reaction/instant/slime/amber_snack/on_reaction(var/datum/reagents/holder) + for(var/i = 1 to rand(3, 5)) + new /obj/item/weapon/reagent_containers/food/snacks/slime(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/amber_goop + name = "Slime Goop" + id = "m_amber_goop" + result = "slime_goop" + required_reagents = list("slimejelly" = 5) + result_amount = 30 + required = /obj/item/slime_extract/amber + +// ******************* +// * Sapphire slimes * +// ******************* + +/obj/item/slime_extract/sapphire + name = "sapphire slime extract" + icon_state = "sapphire slime extract" + description_info = "When injected with phoron, this extract creates a promethean cube, which can be used to create a new promethean. When injected with blood, this extract creates some mutation \ + toxin. When injected with water, this extract creates some plushies. When injected with slime jelly, this extract creates a sapience agent, which can be used to develop sentience in \ + various creatures." + slime_type = /mob/living/simple_mob/slime/xenobio/sapphire + + +/decl/chemical_reaction/instant/slime/sapphire_promethean + name = "Slime Promethean" + id = "m_sapphire_promethean" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/sapphire + +/decl/chemical_reaction/instant/slime/sapphire_promethean/on_reaction(var/datum/reagents/holder) + new /obj/item/slime_cube(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/sapphire_mutation + name = "Slime Mutation Toxins" + id = "m_sapphire_mutation_tox" + result = "mutationtoxin" + required_reagents = list("blood" = 5) + result_amount = 30 + required = /obj/item/slime_extract/sapphire + + +/decl/chemical_reaction/instant/slime/sapphire_plushies + name = "Slime Plushies" + id = "m_sapphire_plushies" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/sapphire + +/decl/chemical_reaction/instant/slime/sapphire_plushies/on_reaction(var/datum/reagents/holder) + var/spawn_type + var/list/possible_types = subtypesof(/obj/item/toy/plushie) + possible_types -= subtypesof(/obj/item/toy/plushie/fluff) + possible_types -= subtypesof(/obj/item/toy/plushie/therapy) + for(var/i = 1 to rand(3, 5)) + spawn_type = pickweight(possible_types) + new spawn_type(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/sapphire_sapience + name = "Slime Sapience" + id = "m_sapphire_sapience" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/sapphire + +/decl/chemical_reaction/instant/slime/sapphire_sapience/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/sapience(get_turf(holder.my_atom)) + ..() + +// *************** +// * Ruby slimes * +// *************** + +/obj/item/slime_extract/ruby + name = "ruby slime extract" + icon_state = "ruby slime extract" + description_info = "When injected with phoron, this extract grants extra strength for a time. When injected with blood, this extract causes a wave of pulling force. When injected with water, \ + this extract creates some brute juice. When injected with slime jelly, this extract creates a pushing force." + slime_type = /mob/living/simple_mob/slime/xenobio/ruby + +/decl/chemical_reaction/instant/slime/ruby_swole + name = "Slime Strength" + id = "m_ruby_strength" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/ruby + +/decl/chemical_reaction/instant/slime/ruby_swole/on_reaction(var/datum/reagents/holder) + for(var/mob/living/L in range(1, holder.my_atom)) + L.add_modifier(/datum/modifier/slime_strength, 10 MINUTES, src) + ..() + +/datum/modifier/slime_strength + name = "slime strength" + desc = "You feel much stronger than usual." + mob_overlay_state = "pink_sparkles" + + on_created_text = "Twinkling spores of goo surround you. It makes you feel stronger and more robust." + on_expired_text = "The spores of goo have faded, and you feel your strength returning to what it was before." + stacks = MODIFIER_STACK_EXTEND + + max_health_flat = 50 + outgoing_melee_damage_percent = 2 + disable_duration_percent = 0.5 + incoming_damage_percent = 0.75 + + +/decl/chemical_reaction/instant/slime/ruby_pull + name = "Slime Pull" + id = "m_ruby_pull" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/ruby + +/decl/chemical_reaction/instant/slime/ruby_pull/on_reaction(var/datum/reagents/holder) + var/location = get_turf(holder.my_atom) + playsound(location, 'sound/weapons/gauss_shoot.ogg', 50, 1) + var/datum/effect/effect/system/grav_pull/s = new /datum/effect/effect/system/grav_pull + s.set_up(3, 3, location) + s.start() + ..() + + +/decl/chemical_reaction/instant/slime/ruby_brute_juice + name = "Slime Brute Juice" + id = "m_ruby_brute_juice" + result = "berserkmed" + required_reagents = list("water" = 5) + result_amount = 30 + required = /obj/item/slime_extract/ruby + + +/decl/chemical_reaction/instant/slime/ruby_push + name = "Slime Push" + id = "m_ruby_push" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/ruby + +/decl/chemical_reaction/instant/slime/ruby_push/on_reaction(var/datum/reagents/holder) + var/location = get_turf(holder.my_atom) + for(var/X in orange(3, location)) + var/atom/movable/AM = X + if(!ismovable(X) || istype(X, /obj/effect/overlay)) + continue + + if(isobj(X)) + var/obj/O = X + if(O.anchored) + continue + + var/throwdir = get_dir(location, AM) + AM.throw_at(get_edge_target_turf(AM, throwdir), 3, 1, src) + + playsound(location, 'sound/weapons/gauss_shoot.ogg', 50, 1) + ..() + +// ***************** +// * Emerald slime * +// ***************** + +/obj/item/slime_extract/emerald + name = "emerald slime extract" + icon_state = "emerald slime extract" + description_info = "When injected with phoron, this extract grants extra agility, making you more evasive and fast-acting for a while. When injected with blood, this extract grants extra speed \ + for a short time. When injected with water, this extract creates some hyperzine. When injected with slime jelly, this extract causes area around to become slippery for a time." + slime_type = /mob/living/simple_mob/slime/xenobio/emerald + + +/decl/chemical_reaction/instant/slime/emerald_agility + name = "Slime Agility" + id = "m_emerald_agility" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/emerald + +/decl/chemical_reaction/instant/slime/emerald_agility/on_reaction(var/datum/reagents/holder) + for(var/mob/living/L in range(1, holder.my_atom)) + L.add_modifier(/datum/modifier/slime_agility, 10 MINUTES, src) + ..() + +/datum/modifier/slime_agility + name = "slime agility" + desc = "You feel much more agile than usual." + mob_overlay_state = "green_sparkles" + + on_created_text = "Twinkling spores of goo surround you. It makes you feel more agile." + on_expired_text = "The spores of goo have faded, and you feel your agility returning to what it was before." + stacks = MODIFIER_STACK_EXTEND + + evasion = 45 + attack_speed_percent = 0.5 + disable_duration_percent = 0.5 + + +/decl/chemical_reaction/instant/slime/emerald_speed + name = "Slime Speed" + id = "m_emerald_speed" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/emerald + +/decl/chemical_reaction/instant/slime/emerald_speed/on_reaction(var/datum/reagents/holder) + for(var/mob/living/L in range(1, holder.my_atom)) + L.add_modifier(/datum/modifier/slime_speed, 1 MINUTE, src) + ..() + +/datum/modifier/slime_speed + name = "slime speed" + desc = "You feel much faster than usual." + mob_overlay_state = "haste" + + on_created_text = "Twinkling spores of goo surround you. It makes you feel very fast." + on_expired_text = "The spores of goo have faded, and you feel your speed returning to what it was before." + stacks = MODIFIER_STACK_EXTEND + + slowdown = -3 + + +/decl/chemical_reaction/instant/slime/emerald_hyperzine + name = "Slime Hyperzine" + id = "m_emerald_hyperzine" + result = "hyperzine" + required_reagents = list("water" = 5) + result_amount = 30 + required = /obj/item/slime_extract/emerald + + +/decl/chemical_reaction/instant/slime/emerald_hell + name = "Slime Hell" + id = "m_emerald_hell" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/emerald + +/decl/chemical_reaction/instant/slime/emerald_hell/on_reaction(var/datum/reagents/holder) + log_and_message_admins("Emerald extract reaction (slip hell) has been activated in [get_area(holder.my_atom)]. Last fingerprints: [holder.my_atom.fingerprintslast]") + for(var/turf/simulated/T in trange(5, get_turf(holder.my_atom))) + if(!istype(T)) + continue + T.wet = 1 + T.freeze_floor() + ..() + +// ********************* +// * Light Pink slimes * +// ********************* + +/obj/item/slime_extract/light_pink + name = "light pink slime extract" + icon_state = "light pink slime extract" + description_info = "When injected with phoron, this extract creates a friendship agent, which can be used to make a slime or a creature consider you a friend. When injected with blood, \ + this extract creates a loyalty agent, which can be used to make a slime or a creature think of those like you as their own. When injected with water, this extract creates a docility agent, \ + which can be used to pacify a slime or a creature permanently. When injected with slime jelly, this extract creates an obedience agent, which can be used to instantly fully discipline a slime." + slime_type = /mob/living/simple_mob/slime/xenobio/light_pink + + +/decl/chemical_reaction/instant/slime/light_pink_friendship + name = "Slime Friendship" + id = "m_lightpink_friendship" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/light_pink + +/decl/chemical_reaction/instant/slime/light_pink_friendship/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/friendship(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/light_pink_loyalty + name = "Slime Loyalty" + id = "m_lightpink_loyalty" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/light_pink + +/decl/chemical_reaction/instant/slime/light_pink_loyalty/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/loyalty(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/light_pink_docility + name = "Slime Docility" + id = "m_lightpink_docility" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/light_pink + +/decl/chemical_reaction/instant/slime/light_pink_docility/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/docility(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/light_pink_obedience + name = "Slime Obedience" + id = "m_lightpink_obedience" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/light_pink + +/decl/chemical_reaction/instant/slime/light_pink_obedience/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/obedience(get_turf(holder.my_atom)) + ..() + +// ****************** +// * Rainbow slimes * +// ****************** + + +/obj/item/slime_extract/rainbow + name = "rainbow slime extract" + icon_state = "rainbow slime extract" + description_info = "When injected with phoron, this extract will create a random slime. When injected with blood, this extract will create a random slime extract. When injected with water, \ + this extract with create pretty colors. When injected with slime jelly, this extract will create unity agent, which can be used to make slime non-hostile to slimes of other colors." + slime_type = /mob/living/simple_mob/slime/xenobio/rainbow + + +/decl/chemical_reaction/instant/slime/rainbow_random_slime + name = "Slime Random Slime" + id = "m_rainow_random_slime" + required_reagents = list("phoron" = 5) + result_amount = 1 + required = /obj/item/slime_extract/rainbow + +/decl/chemical_reaction/instant/slime/rainbow_random_slime/on_reaction(var/datum/reagents/holder) + var/mob/living/simple_mob/slime/xenobio/S + var/list/slime_types = typesof(/mob/living/simple_mob/slime/xenobio) + + while(slime_types.len) + S = pick(slime_types) + if(initial(S.rainbow_core_candidate) == TRUE) + break + else + slime_types -= S + S = null + + if(S) + new S(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/rainbow_random_extract + name = "Slime Random Extract" + id = "m_rainow_random_extract" + required_reagents = list("blood" = 5) + result_amount = 1 + required = /obj/item/slime_extract/rainbow + +/decl/chemical_reaction/instant/slime/rainbow_random_extract/on_reaction(var/datum/reagents/holder) + var/spawn_type = pickweight(xenobio_rainbow_extracts) + new spawn_type(get_turf(holder.my_atom)) + ..() + + +/decl/chemical_reaction/instant/slime/rainbow_colors + name = "Slime Colors" + id = "m_rainbow_colors" + required_reagents = list("water" = 5) + result_amount = 1 + required = /obj/item/slime_extract/rainbow + +/decl/chemical_reaction/instant/slime/rainbow_colors/on_reaction(var/datum/reagents/holder) + for(var/mob/living/carbon/human/H in range(3, holder.my_atom)) + H.druggy = max(H.druggy, 30) + ..() + + +/decl/chemical_reaction/instant/slime/rainbow_unity + name = "Slime Unity" + id = "m_rainbow_unity" + required_reagents = list("slimejelly" = 5) + result_amount = 1 + required = /obj/item/slime_extract/rainbow + +/decl/chemical_reaction/instant/slime/rainbow_unity/on_reaction(var/datum/reagents/holder) + new /obj/item/slimepotion/unity(get_turf(holder.my_atom)) + ..() \ No newline at end of file diff --git a/code/modules/xenobio/items/slime_objects.dm b/code/modules/xenobio/items/slime_objects.dm index 9a945e0058..72cc0e01e3 100644 --- a/code/modules/xenobio/items/slime_objects.dm +++ b/code/modules/xenobio/items/slime_objects.dm @@ -67,7 +67,6 @@ qdel(src) - // More or less functionally identical to the telecrystal tele. /obj/item/slime_crystal name = "lesser slime cystal" @@ -101,6 +100,7 @@ safe_blink(AM, 14) qdel(src) + /obj/item/weapon/disposable_teleporter/slime name = "greater slime crystal" desc = "A larger, gooier crystal." @@ -112,7 +112,6 @@ origin_tech = list(TECH_MAGNET = 5, TECH_BLUESPACE = 4) - // Very filling food. /obj/item/weapon/reagent_containers/food/snacks/slime name = "slimy clump" @@ -125,4 +124,95 @@ /obj/item/weapon/reagent_containers/food/snacks/slime/Initialize() . = ..() - bitesize = 5 \ No newline at end of file + bitesize = 5 + + +//Flashlight + +/obj/item/device/flashlight/slime + gender = PLURAL + name = "glowing slime extract" + desc = "A slimy ball that appears to be glowing from bioluminesence." + icon = 'icons/obj/lighting.dmi' + icon_state = "floor1" //not a slime extract sprite but... something close enough! + item_state = "slime" + light_color = "#FFF423" + w_class = ITEMSIZE_TINY + light_range = 6 + on = 1 //Bio-luminesence has one setting, on. + power_use = 0 + +/obj/item/device/flashlight/slime/New() + ..() + set_light(light_range, light_power, light_color) + +/obj/item/device/flashlight/slime/update_brightness() + return + +/obj/item/device/flashlight/slime/attack_self(mob/user) + return //Bio-luminescence does not toggle. + + +//Radiation Emitter + +/obj/item/slime_irradiator + name = "glowing slime extract" + desc = "A slimy ball that appears to be glowing from bioluminesence." + icon = 'icons/mob/slimes_vr.dmi' + icon_state = "irradiator" + light_color = "#00FF00" + light_power = 0.4 + light_range = 2 + w_class = ITEMSIZE_TINY + +/obj/item/slime_irradiator/New() + START_PROCESSING(SSobj, src) + set_light(light_range, light_power, light_color) + return ..() + +/obj/item/slime_irradiator/process() + SSradiation.radiate(src, 5) + +/obj/item/slime_irradiator/Destroy() + STOP_PROCESSING(SSobj, src) + return ..() + + +//BS Pouch +/obj/item/weapon/storage/backpack/holding/slime + name = "bluespace slime pouch" + desc = "A slimy pouch that opens into a localized pocket of bluespace." + icon_state = "slimepouch" + + + +//Slime Chems + +/datum/reagent/myelamine/slime + name = "Agent A" + id = "slime_bleed_fixer" + description = "A slimy liquid which appears to rapidly clot internal hemorrhages by increasing the effectiveness of platelets at low quantities. Toxic in high quantities." + taste_description = "slime" + overdose = 5 + +/datum/reagent/osteodaxon/slime + name = "Agent B" + id = "slime_bone_fixer" + description = "A slimy liquid which can be used to heal bone fractures at low quantities. Toxic in high quantities." + taste_description = "slime" + overdose = 5 + +/datum/reagent/peridaxon/slime + name = "Agent C" + id = "slime_organ_fixer" + description = "A slimy liquid which is used to encourage recovery of internal organs and nervous systems in low quantities. Toxic in high quantities." + taste_description = "slime" + overdose = 5 + +/datum/reagent/nutriment/glucose/slime + name = "Slime Goop" + id = "slime_goop" + description = "A slimy liquid, with very compelling smell. Extremely nutritious." + color = "#FABA3A" + nutriment_factor = 30 + taste_description = "slimy nectar" \ No newline at end of file diff --git a/code/modules/xenobio/items/slimepotions.dm b/code/modules/xenobio/items/slimepotions.dm index 2a600fb801..11d2d07571 100644 --- a/code/modules/xenobio/items/slimepotions.dm +++ b/code/modules/xenobio/items/slimepotions.dm @@ -11,7 +11,7 @@ /obj/item/slimepotion/enhancer name = "extract enhancer agent" desc = "A potent chemical mix that will give a slime extract an additional two uses." - icon_state = "potpurple" + icon_state = "potcyan" description_info = "This will even work on inert slime extracts, if it wasn't enhanced before. Extracts enhanced cannot be enhanced again." // Makes slimes less likely to mutate. @@ -64,7 +64,7 @@ // Makes the slime friendly forever. /obj/item/slimepotion/docility - name = "docility agent" + name = "slime docility agent" desc = "A potent chemical mix that nullifies a slime's hunger, causing it to become docile and tame. It might also work on other creatures?" icon_state = "potlightpink" description_info = "The target needs to be alive, not already passive, and be an animal or slime type entity." @@ -178,7 +178,7 @@ desc = "A potent chemical mix that makes an animal deeply loyal to the species of whoever applies this, and will attack threats to them." description_info = "The slime or other animal needs to be alive for this to work. The slime this is applied to will have their 'faction' change to \ the user's faction, which means the slime will attack things that are hostile to the user's faction, such as carp, spiders, and other slimes." - icon_state = "potred" + icon_state = "potlightpink" /obj/item/slimepotion/loyalty/attack(mob/living/simple_mob/M, mob/user) if(!istype(M)) @@ -247,7 +247,7 @@ name = "slime feeding agent" desc = "A potent chemical mix that will instantly sediate the slime." description_info = "The slime needs to be alive for this to work. It will instantly grow the slime enough to reproduce." - icon_state = "potyellow" + icon_state = "potorange" /obj/item/slimepotion/feeding/attack(mob/living/simple_mob/slime/xenobio/M, mob/user) if(!istype(M)) diff --git a/code/modules/xenobio/items/slimepotions_vr.dm b/code/modules/xenobio/items/slimepotions_vr.dm new file mode 100644 index 0000000000..0c4f0ab0a8 --- /dev/null +++ b/code/modules/xenobio/items/slimepotions_vr.dm @@ -0,0 +1,189 @@ +/obj/item/slimepotion/attackby(obj/item/O, mob/user) + if(istype(O, /obj/item/slimepotion/mimic)) + to_chat(user, "You apply the mimic to the slime potion as it copies it's effects.") + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + var/newtype = src.type + new newtype(get_turf(src)) + qdel(O) + ..() + + +/obj/item/slimepotion/infertility + name = "slime infertility agent" + desc = "A potent chemical mix that will reduce the amount of offspring this slime will have." + icon_state = "potpurple" + description_info = "The slime needs to be alive for this to work. It will reduce the amount of slime babies by 2 (to minimum of 2)." + +/obj/item/slimepotion/infertility/attack(mob/living/simple_mob/slime/xenobio/M, mob/user) + if(!istype(M)) + to_chat(user, "The agent only works on slimes!") + return ..() + if(M.stat == DEAD) + to_chat(user, "The slime is dead!") + return ..() + if(M.split_amount <= 2) + to_chat(user, "The slime cannot get any less fertile!") + return ..() + + to_chat(user, "You feed the slime the infertility agent. It will now have less offspring.") + M.split_amount = between(2, M.split_amount - 2, 6) + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + qdel(src) + +/obj/item/slimepotion/fertility + name = "slime fertility agent" + desc = "A potent chemical mix that will increase the amount of offspring this slime will have." + icon_state = "potpurple" + description_info = "The slime needs to be alive for this to work. It will increase the amount of slime babies by 2 (to maximum of 6)." + +/obj/item/slimepotion/fertility/attack(mob/living/simple_mob/slime/xenobio/M, mob/user) + if(!istype(M)) + to_chat(user, "The agent only works on slimes!") + return ..() + if(M.stat == DEAD) + to_chat(user, "The slime is dead!") + return ..() + if(M.split_amount >= 6) + to_chat(user, "The slime cannot get any more fertile!") + return ..() + + to_chat(user, "You feed the slime the infertility agent. It will now have less offspring.") + M.split_amount = between(2, M.split_amount + 2, 6) + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + qdel(src) + +/obj/item/slimepotion/shrink + name = "slime shrinking agent" + desc = "A potent chemical mix that will turn adult slime into a baby one." + icon_state = "potpurple" + description_info = "The slime needs to be alive for this to work." + +/obj/item/slimepotion/shrink/attack(mob/living/simple_mob/slime/xenobio/M, mob/user) + if(!istype(M)) + to_chat(user, "The agent only works on slimes!") + return ..() + if(M.stat == DEAD) + to_chat(user, "The slime is dead!") + return ..() + if(!(M.is_adult)) + to_chat(user, "The slime is already a baby!") + return ..() + + to_chat(user, "You feed the slime the shrinking agent. It is now back to being a baby.") + M.make_baby() + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + qdel(src) + +/obj/item/slimepotion/death + name = "slime death agent" + desc = "A potent chemical mix that will instantly kill a slime." + icon_state = "potblue" + description_info = "The slime needs to be alive for this to work." + +/obj/item/slimepotion/death/attack(mob/living/simple_mob/slime/xenobio/M, mob/user) + if(!istype(M)) + to_chat(user, "The agent only works on slimes!") + return ..() + if(M.stat == DEAD) + to_chat(user, "The slime is already dead!") + return ..() + + to_chat(user, "You feed the slime the death agent. Its face flashes pain of betrayal before it goes still.") + M.adjustToxLoss(500) + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + qdel(src) + +/obj/item/slimepotion/ferality + name = "slime ferality agent" + desc = "A potent chemical mix that will make a slime untamable." + icon_state = "potred" + description_info = "The slime needs to be alive for this to work." + +/obj/item/slimepotion/ferality/attack(mob/living/simple_mob/slime/xenobio/M, mob/user) + if(!istype(M)) + to_chat(user, "The agent only works on slimes!") + return ..() + if(M.stat == DEAD) + to_chat(user, "The slime is already dead!") + return ..() + if(M.untamable && M.untamable_inheirit) + to_chat(user, "The slime is already untamable!") + return ..() + + to_chat(user, "You feed the slime the death agent. It will now only get angrier at taming attempts.") + M.untamable = TRUE + M.untamable_inheirit = TRUE + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + qdel(src) + +/obj/item/slimepotion/reinvigoration + name = "extract reinvigoration agent" + desc = "A potent chemical mix that will create a slime of appropriate type out of an extract." + icon_state = "potcyan" + description_info = "This will even work on inert extracts. Extract is destroyed in process." + +/obj/item/slimepotion/mimic + name = "mimic agent" + desc = "A potent chemical mix that will mimic effects of other slime-produced agents." + icon_state = "potsilver" + description_info = "Warning: avoid combining multiple doses of mimic agent." + +/obj/item/slimepotion/mimic/attackby(obj/item/O, mob/user) + if(istype(O, /obj/item/slimepotion/mimic)) + to_chat(user, "You apply the mimic to the mimic, resulting a mimic that copies a mimic that copies a mimic that copies a mimic that-") + var/location = get_turf(src) + playsound(location, 'sound/weapons/gauss_shoot.ogg', 50, 1) + var/datum/effect/effect/system/grav_pull/s = new /datum/effect/effect/system/grav_pull + s.set_up(3, 3, location) + s.start() + qdel(O) + qdel(src) + return + ..() + +/obj/item/slimepotion/sapience + name = "slime sapience agent" + desc = "A potent chemical mix that makes an animal capable of developing more advanced, sapient thought." + description_info = "The slime or other animal needs to be alive for this to work. The development is not always immedeate and may take indeterminate time before effects show." + icon_state = "potblue" + +/obj/item/slimepotion/sapience/attack(mob/living/simple_mob/M, mob/user) + if(!istype(M)) + to_chat(user, "The agent only works on creatures!") + return ..() + if(M.stat == DEAD) + to_chat(user, "The creature is dead!") + return ..() + if(M.ghostjoin) + to_chat(user, "The creature is already developing sapience.") + return ..() + if(M.ckey) + to_chat(user, "The creature is already sapient!") + return ..() + + to_chat(user, "You feed \the [M] the agent. It may now eventually develop proper sapience.") + M.ghostjoin = 1 + active_ghost_pods |= M + M.ghostjoin_icon() + log_and_message_admins("[key_name_admin(user)] used a sapience potion on a simple mob: [M]. [ADMIN_FLW(src)]") + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + qdel(src) + +/obj/item/slimepotion/obedience + name = "slime obedience agent" + desc = "A potent chemical mix that makes slime extremely obedient." + icon_state = "potlightpink" + description_info = "The target needs to be alive and currently misbehaving. Effect is equivalent to very strong discipline." + +/obj/item/slimepotion/obedience/attack(mob/living/simple_mob/slime/xenobio/M, mob/user) + if(!istype(M)) + to_chat(user, "The agent only works on slimes!") + return ..() + if(M.stat == DEAD) + to_chat(user, "The slime is dead!") + return ..() + + to_chat(user, "You feed the slime the agent. It has been disciplined, for better or worse...") + M.adjust_discipline(10) + playsound(src, 'sound/effects/bubbles.ogg', 50, 1) + qdel(src) \ No newline at end of file diff --git a/icons/inventory/back/item.dmi b/icons/inventory/back/item.dmi index daa2c464499689ecb36a3c214fbd5c0c908d2d7b..230b3950c8af1f67b66b88151ce42f231c7a177a 100644 GIT binary patch delta 5830 zcmXX}1yodBw7x?l-KB&e7$}|6-5?4A3ImALNF&YMkp}6m0g+S$e!3e3WMBvZX+~P4 zd#E?Q_wKsuu652mXP>k4`*!pwr0*9bo(JUcdtu_K^48;xyMwEzgNri&_++P~4mr;X zQiq@?pHmMQ-M`DHmK7`z8r&7W!a$JuT07*NoBzR6_ys!;?`B*cMi;LwuYZ1;X15oe z2ECA|^q+re_uD>*>DB(xcAlAev|j74sJ{2Le+E1QGcBwWBYTYJ=8YaXNk)~~f1Lmm z3iCJ5@g+6hvld8qTKaG5-o5Qz5R=Hr#9Yyr{wvx3?w17Jrr%N5U!|7LI%5g#DER|l zc2IFs)ggA%`HVab$8oat4*_C38gWlPkm8%g%9 zp!dJY4ByapaEW7le&_@!{?Wyg3Fd3Nzsg5CX~Cc--gAHIYfg3~>7Jr7YI$CZ^YnVG z<8s>dzr1dVl&aE z$@050ka+*x<ED2fJd9vap=W$@r93R z^~hhXJEe<1rXO_Lg;b!bpWPp(5FfK1`q#>A4%N9YMAa0KV8OeQ|CU zD0drc^OhfIfvY6vE1R3&AqI>~8GuEaeppv=F8t5Q0>(9DJ0SJ(tM9($G&17iVdKU6 zi&M7Eu&F1Mz{7_RZB}a6FQTGuX@bOsg@xH>WktK|-j|G5nQBK&;!U+#i~Fz05jTtd zD3pqW!-JQ&6ZT#QP=1&K+u+IIpKaGiz|w^&p>qPqCgLD9Yq?bPN+azn9XtM+Me;9> z4@U!1z$a{nk0?D?pgW~XuA05oE+G7Uhb`PYF3ohtYwMV3>97jH+PxgG|ucO^ZeyUgH=;mE~v@p*7hHEjc` z#Tkf^BFTRO=0Q}HH~?AVgNuk{IVs{iIRFb0Ww=s!H&ZjPF2Ys%^()Uf*IMzY{YKqT z`*i44uCXQTHL*Korh%bh5KcoM$`576kIY`Zs`NW{%$9Uh5~hnzg`}p^dz5q7Sq=x; zM9;t#5*?-I)fb@cGI-}TvnAyeaGK8ww+S;IYaIbaVcXgD(*>&@7o3gKOV*!zd zMd^g2sR zM#3Ok00V!pcYCd^sg|*pZ?Si>f%3)8<+FDSEg3s72M0xMZL%lkO$4PAQP$={u z2j^8)B@PY@d{E0*baHw;b2CQVEy8kEit)ev8px}qr3IX^<0ZW*WF``@Xh{c~J=Q60 zhcZJk7^@1W{#MST*D=Rk9(a}qeyQ)4rXuHQ1$9-W=5by7k)v$@06sBX@qKb}kt#+lI5w7YWn~5QxsnXxS&btkPz|D z27tjhTWc?yezweTnXZGT5MK)EL;73wRu%Kk;T9Fez6#aT4HJwa8eU=jm3@ZO4VMBSrozCZ352?^q$sc^WwbSBLJxs0z zNS^k@ylbpbTS!n4XnY;ZCgHq+S9?-)bxA*^fDoBsSV`g^M}O27_I-us3YYoqgfjl+Bs&*6^;2Xb#P% z@zny`O;1f&*Yx!C#?DTdSy`BIY3P8>XFB#3k}q9RN^%3?If0DkezHwXO=qw>H+m*+f0_5z zvii~JzL(Iz)w(zpicU4coDEOuCtO?*aDRWFnVr38G>p$CLMK)zYba4gVWO5oSgt|> zzo@!ZBja2oI+lEN`+-P`Aaa`!(2%{n$BN7Uf?-@joDo;q5lH$CQd+|eDL&--??_Ps z8ktXIW$)l@u9i>3n-sZr6SAg$y=Lu!NV?X(xm-A`s;!vvXdr1h(qU|pJ_q&1a83_g zwD_Qv5>#GSU6W6Pb0lj<~D39360Q za4>@HWvPz>R{PizusePYZSQ)AkxwgK7TYX&THO^Y`r5s{J_|Y=cs$Ki2fM2MWDl?x zZdcg%*>wCYn$*Lb+KOhNStgo9@bP1cCog>-3iIhuM(=t8?ax ztIUQzX9EoF3KcRw7twqQ?2qcia5=^rBJl@~A(sW=N_mKGjDokfM6?>W)71Pt1z=$p zj*mHhgDtc>%PcJ)Cfm3;xiuvF7KIGQ=_n_EJn)yhk>TTwX%cv7^x>a+OjWKJrEDn= z+p&|L9u=T~C`mxIs@(wpeAf$r;uY&5Z_CRo?`yh>-a3gFALHV}Uq3l@fCD!WuG@FDSqSmy)PBlKhRs!QK-w0%WP{X4 zA7=H}HH<0{~NmS@oM zP8@&9BPb>&X0Gy0UywjB1i^QG{cL)mhh$F)zdLjeQ`0u zD^J=Y4)Z{vxu*9Y+j!R%oOKBl!h<>uO-%}VaRKSlPKWxOaD2RePx8~*l1wZcnW>VP&+GTdp z<)ZOX=}*yRhomgHt21)WLQC?*e3dl#j!rgsg#@oQ{`f1WueiWq_<$er@UK`0Kmk2? zI9X$<8M}PpZf*T}(SFQh@vBj(0Tde7)ul9JrIsDAxZ>}iFdlsOK15|HfUJ=gbX%SfY?;m&n5Q&8gvl`tpeIy zH+_*#<@?*MOz7}$5BSX+-*2VPqAI9q-`>g}Eh^#_6%*@ptQ{kX2b*R8GSY+v)z7gD zwYaWc1w8Y{-Ke`s*xA!Qx-D*lQ~~P`53~}_n7eki`K(+zfr|7)WMm zaQYUWd4oMTs|4`4XWsnu?rfC_=GpR9nS=^nH7nh8e88{z&duQt*x%t4Qc4>Xdqzy+ zgWTS3^;syR+yhY=BI)Ocv!81w9K}RgDX@Kf;xjWdd+mIzEp@V0E=-B*Pt+_d*yq*U z5jf5u>Gqodx9Tbbx%isw $&*4yj5l8IY~M%V5*qNtI9PftrR{*mY(y%1(2*FkM0 zMN(OQ){9>OAPPFyR3v*c9ZV8!e^2`Osy{A-y`=)zA1f}_zvNYA4~NO!I;ZNzLF}T> zigNkYoK(OKC;||8^N|d+lk5`s!d{V{hEqA>=a4mCxK^eg$2u0gch`Er@ly=*QCiIO)Bv)$<;c9cJ!KHdLjA@5Mf z1mqAJEKHLgj_Z#*E!ABQ~R2o{GcqvMM=Ngk1D3r*BldUQw zQu$4V9nRjL{57==IF&>JEQ(yB%3z42-}8U0ENLix)p)0iJrcb~ETTXZOjG?I7&^*A zu7<*$&}rGjkK2G72-k+!2{A`MsI=~lvd>l0>Aw5FYX$Lb1et}%{(s|b&gHhHl{f3W z4E7Z=DT7g;Sm0Jf{SC!j-}_LpG`HT7pc>X`U~oQ;r+vO3=~*hZ4QMR?bw2OUtI$_j zjQk{n+^`UAGw8j0(g}z}}~v;Sdg?zjC8sg-XRf0+~MienSXQGX`>riRGTfSn{XJ z0UiDQpJq>5{cm&=4#`qemxgy&# z;?i6Pmb3p1cp=b8`txT%SD{N58S+H2eH)cpdgeF#^7+^)W8r+<6q;PHi9nXrouLB; zo8%Npf=2U+h|sCRCYP?<=%NW!RaIYb0L}|7EJ98}2J*BK+n2zZxIl&akovJ;R&$SwKL z%`mQ#_T?3>op>f?#xhU?AiNubYrDpbzhZJF0ud7T4hWapCQb{=O8e~APix!r^3-gr z1BroOO~dkmUvg4lL0LLO zb`SLy7T7zP-3>je25V-bviToP;uCvZMhO4_ADAe1nH6f~;VSXXwe_zwgp@cn9=^Cyzqk z+Yo##q+->hIgf;xV%EWiqOimYXq$p`p_i3 zvI*M}C-CBQ7XrLnxC~qL$_20G0X(KPzdv@@$gnnEq*;QC(5l4fXoN+OVhW&uUG-g)rwq#4v^{!mvP^G0;H-Khl>-&vRs_MKi4m#)B?xB zwDBq1K_e6Nd`G={IoCwIVtA1BZ1CkZ#RK3hFE@Xgb*f=dL?lW``S_D)O0kgc+*>2&h- zQf0Zkq$Ce_y+r~^UqItjSxkK*b(wfDtK!>LIMDGu=H~WMBmbXF?%DB%G<<|An~w;` zJ8yKE?<3M@EB#++L|YH-fDVvN^;Pg>-0_xO2*-)!w`O`nL2cPio8_zj(+1jF19&k*PS6RTL0ZSuPN= zQtwGtb(!jG!XK!Z5*-nWc4>@v+=H%RHe3mfgzu)Bw8O)WBK%mRL09n?#mjcBA$M|C z+EHtf8UKAjwSE8EW=9#N!j;ooW9CGJlhkreez>}zd5?3q<*=#5gQm2iKY@E99^yh? zcdGjkl3*tPbBpT8zRdo$d=_Eslh5SwoNGH_8ZvRa@X6B&(g8WcWHyq@BDzOd>s$!) z=9V21vw4uPf||`9D9)z2bMIb=huS`ToazKplF$OTMT~~BESX2wv#oQVizZyC%Kzk3 zQ2&k1fT%IqBBK4-G5GX5wY>@HxUn%&cLR*3`DdZ)tA?oy%Q+|xrRHiw9BohpEY|-3 wslxJm9|=+26T#rl2-9?kFmrVJ>J3DWX#{i6s%8`*0{}o%RZpc{$uj7F0O00J=>Px# delta 4867 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 diff --git a/icons/inventory/back/mob.dmi b/icons/inventory/back/mob.dmi index 755a2d75d428701539347a81d0b2164a58b424f1..3f11cc9dc1a78e5cdc41928dcb226fa0526a99cf 100644 GIT binary patch delta 18262 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 delta 17501 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 W|B;^Vv6D~$0000 Date: Sun, 27 Mar 2022 15:19:08 -0400 Subject: [PATCH 07/24] Adds a new catslug, Miros, to the fuel depot --- .../subtypes/animal/alien animals/catslug.dm | 110 ++++++++++++++++++ icons/mob/alienanimals_x32.dmi | Bin 68411 -> 76025 bytes icons/mob/items/lefthand_holder.dmi | Bin 25339 -> 26446 bytes icons/mob/items/righthand_holder.dmi | Bin 25300 -> 26373 bytes maps/expedition_vr/space/fueldepot.dmm | 46 +++++++- 5 files changed, 152 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm index ae9d1ff188..9cf8c231e0 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/catslug.dm @@ -278,3 +278,113 @@ /obj/item/weapon/holder/catslug/Initialize(mapload, mob/held) . = ..() color = held.color + +/datum/category_item/catalogue/fauna/catslug/spaceslug + name = "Alien Wildlife - Catslug - Miros" + desc = "This catslug serves as the Fuel Depots resident attendant,\ + despite the facility being fully automated and self-serve. - \ + The Catslug is an omnivorous terrestrial creature.\ + Exhibiting properties of both a cat and a slug (hence its name)\ + it moves somewhat awkwardly. However, the unique qualities of\ + its body make it exceedingly flexible and smooth, allowing it to\ + wiggle into and move effectively in even extremely tight spaces.\ + Additionally, it has surprisingly capable hands, and moves quite\ + well on two legs or four. Caution is advised when interacting\ + with these creatures, they are quite intelligent, and proficient\ + tool users." + value = CATALOGUER_REWARD_MEDIUM //Should offer a measure of incentive for people to visit the depot more often. + +/mob/living/simple_mob/vore/alienanimals/catslug/spaceslug + name = "Miros" + desc = "Looks like catslugs can into space after all! This little chap seems to have gotten their mitts on a tiny spacesuit, there's a nametag on it that reads \"Miros\" alongside the Aether Atmospherics logo." + tt_desc = "Mollusca Felis Stellaris" + icon_state = "spaceslug" + icon_living = "spaceslug" + icon_rest = "spaceslug_rest" + icon_dead = "spaceslug_dead" + digestable = 0 + catalogue_data = list(/datum/category_item/catalogue/fauna/catslug/spaceslug) + holder_type = /obj/item/weapon/holder/catslug/spaceslug + makes_dirt = 0 + say_list_type = /datum/say_list/catslug/spaceslug + + minbodytemp = 0 // Shamelessly stolen temp & atmos tolerances from the space cat. + maxbodytemp = 900 + heat_damage_per_tick = 3 + cold_damage_per_tick = 2 + + min_oxy = 0 + max_oxy = 0 + min_tox = 0 + max_tox = 0 + min_co2 = 0 + max_co2 = 0 + min_n2 = 0 + max_n2 = 0 + + player_msg = "You are an intelligent creature capable of more than most think, clad in a spacesuit that protects you from the ravages of vacuum and hostile atmospheres alike. You can pick up and use many things, and even carry some of them with you into the vents, which you can use to move around quickly. You're quiet and capable, you speak with your hands and your deeds!
- - - - -
Keep in mind, your goal should generally be to survive. You're expected to follow the same rules as everyone else, so don't go self antagging without permission from the staff team, but you are able and capable of defending yourself from those who would attack you for no reason." + + has_langs = list("Sign Language") + +/datum/say_list/catslug/spaceslug + speak = list("Have any porl?", "What is that?", "What kind of ship is that?", "What are you doing?", "How did you get here?", "Don't take off your helmet.", "SPAAAAAACE!", "WAOW!", "Nice weather we're having, isn't it?") + +/mob/living/simple_mob/vore/alienanimals/catslug/spaceslug/Initialize() + . = ..() + verbs += /mob/living/proc/ventcrawl + verbs += /mob/living/proc/hide + verbs -= /mob/living/simple_mob/vore/alienanimals/catslug/proc/catslug_color //I don't even want to imagine what the colour change proc would do to their sprite, not to mention ghosts would need to be forced into the catslug so this is more just a safety net than anything + +/mob/living/simple_mob/vore/alienanimals/catslug/spaceslug/attack_hand(mob/living/carbon/human/M as mob) + + if(stat == DEAD) + return ..() + if(M.a_intent != I_HELP) + return ..() + playsound(src, 'sound/weapons/thudswoosh.ogg', 50, 1, -1) + if(resting) + M.visible_message("\The [M.name] shakes \the [src] awake from their nap.","You shake \the [src] awake!") + lay_down() + ai_holder.go_wake() + return + if(M.zone_sel.selecting == BP_HEAD) + M.visible_message( \ + "[M] pats \the [src] on their helmet.", \ + "You pat \the [src] on their helmet.", ) + if(client) + return + if(prob(10)) + visible_message("\The [src] purrs and leans into [M]'s hand.") + else if(M.zone_sel.selecting == BP_R_HAND || M.zone_sel.selecting == BP_L_HAND) + M.visible_message( \ + "[M] shakes \the [src]'s hand.", \ + "You shake \the [src]'s hand.", ) + if(client) + return + if(prob(10)) + visible_message("\The [src]'s looks a little confused and bonks their helmet's faceplate against [M]'s hand experimentally, attempting to nibble at it.") + else if(M.zone_sel.selecting == "mouth") + M.visible_message( \ + "[M] attempts to boop \the [src]'s nose, defeated only by the helmet they wear.", \ + "You attempt to boop \the [src] on the nose, stopped only by that helmet they wear.", ) + if(client) + return + if(prob(10)) + visible_message("\The [src]'s eyes widen as they stare at [M]. After a moment they rub at the faint mark [M]'s digit left upon the surface of their helmet's faceplate.") + else if(M.zone_sel.selecting == BP_GROIN) + M.visible_message( \ + "[M] rubs \the [src]'s tummy...", \ + "You rub \the [src]'s tummy, accidently pressing a few of the buttons on their chestpiece in the process... You feel the danger.", ) + if(client) + return + visible_message("\The [src] pushes [M]'s hand away from their tummy and furrows their brow, frantically pressing at the buttons [M] so carelessly pushed!") + if(prob(5)) + ai_holder.target = M + ai_holder.track_target_position() + ai_holder.set_stance(STANCE_FIGHT) + else + return ..() + +/obj/item/weapon/holder/catslug/spaceslug + item_state = "spaceslug" + diff --git a/icons/mob/alienanimals_x32.dmi b/icons/mob/alienanimals_x32.dmi index b187ad58735a88b02d9f47a7790beb73c63d6892..05b70ba65718d2a44eb0645fb24a402961f15e75 100644 GIT binary patch delta 26227 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 delta 18553 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 diff --git a/icons/mob/items/lefthand_holder.dmi b/icons/mob/items/lefthand_holder.dmi index aa7e7807cca3002c66a50c4247fc6e12792bd91e..56c51d0f5c48fffb9f95ed1f9daea9a9993b9b37 100644 GIT binary patch delta 5557 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 Ctt*27 delta 4548 zcmYkAcRZEfAHW}bWQ44!i;zu(jF44H_P)4;D~il(N{r-5K&v`xPbw1;K-mlO3JZET#1m8vSmYpGwni2qjyQB5O06_AjMnHl@ z*_-A^SbKEz8{D)0+tBG(_ZYv0*4h_DWZfS)rM!^i${VM*vCzrkU0!zDs#CIM*!EDt zsNQlDqSyK?P>D(+A<+l9wUU35oZ*=}AL^1iAmaq7c=LF9Uk%oFC0tTR7=e%sh|!(uM~t-=$W!UgT8GV7<% zH*$jixQN*_nkeH3#{GlNmCEW0^YYZhgaZt@zf9S8MAA3Lg0QebmMUl@&s9wy3{7l-(VAg*z`lh_K~-uppdY0>=ed8SNLO z$-l@M5hW*UuL{`jieZmfHG0$@*yl@Bsp;eMIrhj_<>cht|NicVy5;)(b>QR7URY3t7j5L}a~86W@KdS8wPy@3Oy^ia*`dweVn5uiR?n>2*1MkRK4K@Ds;oj#ARi@Cw!b9_&;n?WrlTv^>y;#kqN&=1_Q1KG5WqR93dmQuL+8VzJx4 zt^+@mok1OHE3p)bDGIVm6v|kTpC8y&L7Bpx8X6ihJ`c*^k_d)Ky$26=gSyKig(Id5 zN|BQ5t+TJc9K`@0;&j1w0Q0CD$jiq^dhOb^g1S0Zxy->}wQWY(K7+*i%*T2;$}|A( z>|mH|A-=j=YII}-XqsnenqP2=tVks(ZhB`dW%Akfl=CQK>#4%V{)v(;nUu7+^Xq-Z zu{ntw<6el5lUB4*g;XMBr=_AJE5;Z6H*Zq;ydD@L1Om~QlypT?ODlk0_2&$7b_)?65#fSZH!Ll0Xy9y%}0xrg{8=y%0+UP^b}MF;&c-^`xk|WK^v6OM?dd1fAI=X(UAIjSNdQy zBw}KeELr+3(IEwHhAdDL#y^}YY2+K5Bz=wH{zzn=vzm}S$2#AQ8+acP^YRf+X~!tK zOP5&sn7`hFPCjGfQ2Nl`vZKRsx^!@5Z52{!!^UL)ZCN4x{OMH};mf>5;jrp;qyfWZ zm``4|BrJRv*3BC@cG` z0-+_z+f-+>ZYg7_=MQyHD6|RO6qX0cBEdY*THoIQF1+ zTX}iHCyZ#R1f8(=1TOIN)G@)fb&Mpvy}i<6M*+VSoUkJam_ zf?1X61fY>F!pzzw`NWUMjrZXy>qy^{9^Fx7GxMmz@z3}g_}54R9ez*8v@b3y>aF=F zYfm&EAKz`r#rpcXZP*|9LhOScrHuvkj{Bfl5g{^x5bHPD5+Q$MY<`2A;WZwU&HNUF z!GIaZ$-R#6iM6vM+i#)NYMzOSsS!!D;EiC_)fG%U+;m>)=D6z&V!#u_g+-9i6HP=}NURPbuz(T#gmcdd>Zxbr&ll7Sw*g5=xrjgLzK1q-OyCR) z+G$~TK%s8oN7X-{`*XmMCju#wu!Uv6ByUVl0_487cI1d6`C!Ihdtb9;dZOs;Pq)mS=jB?38=+H(r}ph=6=A?`J9?VKX9*&8 z+_@>Sf!Q5|p$}T#^?_yOjhhEkl!>62~>eT6*a=ghq?vws@SjkP`g1TJv}{oU_kdV z`q)pV@0esucJ|iVx4Ssk;KC_6`rV_{)C5yjM}BLi-D&W-T);;HR5wlPUWG+X!PM5& zCz}|_4rJJeP8uNO%^O-rN5{Fb__;S~r^PH9961tQ=Ma|>Z;75;8Wmvp4q3D9d?2KizXG2Q#*UYf5uWwmW@Y=|| zW3PS3i)~QCICBuLVP=*xyoK1Fi>_F#G&{FbSPM*_axU0E&3$2&!2CAQ;2SaY-tXTZ znD+fXP!00COJ0sQTGy0gGn; znvwksyHEj|i#zyx{1)#`L}h}X=RBz9x1YTUxdFDn4?nC4$UrlV_56u8w4Amw4>BgA z+B~$&FzZUB7dqbR>gLv!oRzxQ{fnG#0Ply9=&rA;i^gr}|BBLopaz9P+m1_#qy`QV zCNg?mikh3b+u{(SD78xc*O9MZ$MmO4KC>*cw`uk_+z~w7{pj25adsFs zzm}T&vX)f_KA=YA($#n8M~%jUn_kf|G% z3yOZ(w$`PN>gY2QEGWCLd2Tq636Yolu<%=RLP_OP(szA@#O|1YgFn&qTyks3n%t<< zgv2we#~_j-@4wE3nTaVv5luQ`i@JvIb1iCt2j$JO7~$GOqJ(@-&K7x&k}-XqObt;9 zGKDJ@m-Kpge_x?n0jX*8;H&A^+vN%Q{73XmhSVHChqd=S;cB)}#cQwJ#|F1V%ae_1 zQNfh4L@Tk^#x9TWWL#-dQ@p>`zEfLL&w<`hn zfgw_tGmVG;T8~ZHS^KK#c(#)AN7T$rh8_o3Lx@3Z8K2t%ZPh=TJo`@MkK?2W)-lFm zc)=_S)YL9n$h+y)h!!~5Br&x(B!8X6!|jL)c#I8_-MGQWx2}XnQ-eJrN~F{AnbKMU zUp2ZQRuOtOTRaLyQc(W*@4i!|1B5%5`1xp&ND8}{@rdQek3&NKz`{5#4BmfKwJtLC zMH;JHTE>Gy4~0-_LxiZP(A;6bCzq1dri#i{{0H2$@2|!1crCb9Ie2eMk7zO*Ceuc2 zeSFWEn^!kQ(l&{S%kc{ofw0}d-yoWK$$?N6i2trNI3#0qvHr^oqlBXVcwr}Kv6I6>M4U#%&(C7DR23N3LBdJah; zKR>>TSy%<3rBz;oGL46c(u7PoH`?#G7c-xumv`<5o0TUoS0%P?qZVb+P)aSNxpNc%4JM@ z5BtmulQMsIa)lKwakzHV>1+^=T3?148uAhcpgWZxSUFS6#mdT>@wuj;pr8k5ZesF% zY|JSCzN+ULUWK4cQ5Nc;dabSDku%nvlDUWVjnlX>3D93$!slt7?+UTHI&^ypya*(9 zIo77~r53@1n_==~GulNji&V5a(zQ)K1!(_aMSnV>>hAQ6crx?(CD8WS<)kbg-M^v^ zK7LHUjlLk{sSp=dVQ`{YVQUHY3bS%Caq$)0MqbtOFksSNIJx(2Z=5kuo($OS`URf| zR=o`4b~kI8YhId)s5PncNd9L8>G_q@>zg;9+mJDdo5M_2NqE+7*6!vieLvgxd>I&P z;8DW(-_GDwFns*4Nz2^75XEkpidzd1H~zg|3CqdJNk%M)M79#wV9L$=8@yL(@8VxC zFV^oJpDgkcyNCJsJ7kGFPBM&F^Zdx7qQ0kjd3*a-=E@|tKhaNAf--_?e6#^O`q?7p zXD-p?A*`Sk-(s$!>H56j-KQ;!`3uA63~gb#l^dfZX62@-dJ4E{#p%yz-I?cd|HRSc z7ee*)^Lwg4Tz3vCC(JD^OE+-r?CeyIXEATy+#w(*N~Z7^DxxL3P6 z5f3JXfPKe*sCb!PkDPu!`5_LDvTPJ#Jhn(pO}$A3<jedT=}OL?3BG~N7wl&UN$ZU+62sT>fgE^iYZOWxm(}He`osYJ^1MCmmP4o_dGfh=_f3PO{p8at#KZR^ zSW%G_5D?H9dvW-8oCFvz(Kq)!BjFJgq-2+{re42nas(^iGha9E?Cf0ICtTnmFp;i@yUUWQCQ5LaU8es6!{yw~ zKwrG*5~s2wa;8aS#zQfC+ZQDMV5WGl4zUJ?=RP_3Gl)CInpX!Lz!$lWYv!7pmGi~^ z;g+17>_wdPXt4f2RQp$$bIzLsv99T9X+npaxoK$}VuP6>M1kqILBZn;Qp(sqy(jKD zCksnh9GASSG=WRr{YuWcwY9a_RE1^XEFN^%I55p}b?uz{Q(l%5^mI*1xz#!0zl8;z z0{Rc?j_28jPi@oC285ob4K1l-L%%0G3oU{5ucD&pgyiMTr%nUdg%auE((GdwWcGll VhX67xB)gk3B1>;gbS1iK-w?x1rbttER313eX^nPq z8^7w}8n3p_2JW6u`!ubAw>@v9iThw;DU!88g&T!LZK_@O!KE`nIV@b~?OETbDW1(z zH!upZA-!>7d&tb+UQi_3_qx5nf%&InS<*yl>c=82LAhD=Xi-wVM02BrK=aTVg35P@ zPhyDoa%LDUCxSf@4pUK|pHTRocIJC*kk2}@?ZB@m$^9}%?RvsNqb#x3orAhIhaqef zOc5^X7xj)-B5SyR@g(TY*WG4QFn_Nwpr7oX`n)o>?|sfI1Ld>wIxrZFih6ow1QR!c zv1jm=b)d+9$KiL;%Gb2m-%C9MeGK#W;Rzhij9bXyO^$diEGKArP`=(!EWfcVb%-;P zys8zf)@$YMX7dL%*WhJK3hAApcAbEMeNj`cFH}9omwtGh7SsK{@~5Q2`+9Gw>2=xI zua2E%s6VcH;5SCJ^KQg8S;A#BcLaY+5U>{t(4wQGW1OKoo|W$?Pw#H>~+&mVAF^Mvl<6DSAO&P>j~nFtCs1R|^%xB`bOTLVmtZ!d`g z5#it8{P%LOzr48_G2=6UQCyCrobLV{@qPGyEYIq>_c1Z&Eb7|Ux>N2>)WmQ}>0>OJ znVD5oR6?_P$~hOk+8~`1oN~Tp;nC3uBvNE_bQHNct1=-!{AZ;chcor1P1gKqW)zP{ zTj5uw`ea;#nBJDQw6@}6({J9Aqd#|U&Fe#pjTlJxzWs{z)2CUJcD?DZhld~K=H)pA zXjf14udb{NkPf#`Y`4%iHqidW3`~1SGcq&hbe=ar!2+>Z3E<68QM(P(g{YPzL}p3J zSr-?VHR9H08}EU1bKs2|H$F@nWyl?*%KQ7GiwtTY{BK=-N^=Vf3vZ7YZ4W}os$4+- z4s)27mlu6h%WP@h(4WH!1;~PkAfpsVMYCJ+fhKe@oNLtK;rrRO@fVnxLm;oTI7>vu z#Kg?FcHaEjq<*#zGGt(2pi)8Jx|y~+<9vQm7jdz7Znh<=W>U50nkvE4h7$>6XHi&G zCK=6C^XOWo_8IVCoTL>@@$0X_K}Xi3qm+JuCmor_%j_5*_eVhCS~moeZ80cy44QJ-?(RdtYB)zfq82 ze6DnFj^+{dW8K4425z>L7-=C1?xXJb40|pGAN`%(E9wiPRWF=3=aRwD52jO7A7Uq! zI%$OINgw^TVTmj@_f9rb)Inzc_sF*UVd;H6%$wKyCYT)s^J- zb6z!^a)ow3I5^mk2h;M-;O@sfui(YL#cZBx-?JNYf4rQvs8gA~oJNN7 z0;%%$s>FFTvduq>7EBVS_|!Y{Dlb;?$5ulW``#+@Wmnpja@X(U>L-&jzm4nx+$8N=GYBg>R!XgT3W9U@H}O>S%Wah-x>#`=w;m10mJk}T?_n`9P_(SwrE>l z9cE#%x$mz;^_(FiezIQCS3Z%UO=28bBx}c3<3F+72Fg+0fbUz59~p`uMg;VG-d{UF zoJ`=^>)Zx)Vy%QVn0gl>SZ!ZLc5b}eJfUvOE z`-o`Xbu_i_0o8rG$ynZ$8w%_0E8N0l z-Hu)5g3Im~y@vJ`o<=O3(ayk}40a{QnCPz*S!HDgHg!#Ys)PXCU8(DIdU|@5!csoEEl{>(<+!x_ zOI+s?X+~fJ8uv_Z@R3-HN!_68x4FuLs)YX4`pDQuC34!7|M?-)5wCE~L=p$>X zkV1t+*7EXlXfLr?qk{b=t1r#ZsecCOO6K=!sjKVx(cQaq2)*Ix=$Lsea?OY=S5O2h zmP}&GFqns$8S>meKj|dwOQ&dxm1=VnWI0&<*H=212?04FN`OZV5BtgVX_`QeA2-#; z?4Q43i}dxAfF-2lsYd%Vk34?&^oodDO8}48Cu`I+HMa}eH+<9|q4u7ftUgV@&D)~RUDxyC#kBs`(vlLx!lK^O zz%#EStx>9~3)*SYzvVxE?0Ij5pFuuujWz?=&3aOcp56M|L#-18$X1H-F!n?@1=#P`f~@I93U}t^cc-ZwYW71$D{%B&9S=4}%bh6L0?0o`N2SLF zceS28$zp;^(8`K4|JAG1p`oGrb-dIhZIKiSmo3K)Cvlp(Nv?s>@G%VnM z+_C(t!4Ux}h3=p3%}IypqY*aFkQo%yUF{+D>a^38zciC&$5*!r9wP^e9H)?6#H;*H z5-|kpGTIb_oP5=8YIye81uES|@ErK!-b<79hTRR_+Y)!Eo^he47!j4OU8nh|5^?sd4*qk4yJPQeCg!ktMJ-}I-2~a;M$Wx{$eTMscoTNZspdJ#7yJK5db}`s&EiEm4eL6A^=6UjZDgM@iUK6@+&{JDGp(Zx0kg2X18$g;$0RXpk;T58MHT$b;pG5#q=bpy) z2g-(Y_mgTvtKOTj0F^QhlgJ9sD4(SE$f6w<&Xi=m)qU`ybt6v6wAInm((Y@&t|8@g ziePX2KK&FYPq4{UQhursYD$j5pAOo!Xok}&2y;&3AcVB{80>Kre?bp1ADxhtLr>pJa)^%*vc!h5LD!oqDXN_x72u z$Cqbcz$=5Hej{QH#3iTI^gFiOGLM4J`?_DyHZm{&1i&QmKln)HQc$;{;U9|Xd}zUl z6K3jXw4_ze1^cN!S5`h^VPlKR&W6{y9LpYU{|r|!2tM8=D>L^P8RnF3HNV6d4kF7Z zHXH_rtknzM%O?WuwZMnQ+i>Ir+=u*zBKHfs7M@4842@ zh>D6*F)(1s&dz>ZZhGnFsi??E1Z4Ygg_{+cYZYD~&NJXoTUb=z`qA!t?ITsFN{1~s1kWjfv1p7>seXi7 zT`u)wCnu;%E)Ny~K+#}iYARO-PiACfsGBGiom-D|WU0U9V z<);BQb}_;SVjdNoSV5_!%Aw`K#pbp)4HRW&m{m>@2RA<1@9z@&5WFrA7jj9IfoCgT z6$DOz`1w`KfQLY4UQ0#AD%7qsUAlA$z$p!4umZiYvFDa?brnw*&X&iUqWByYpl9-- z(*kbzs4rl~bnUp6Tir4Kq9?1Q{fv#4uiV~_F?{~Psn+{fv-4_|5*87^me=PqyduML zV2zt=)P2Y@#ni)}+7l%&!(7>&f@pOVw-TQp_Kv>Oav^* z1{d=iM^+379ANLvrVp!KQw_LGy7!~j<+U1kN%gmhHzEC~zim0{`TSjL=$6c0c+r!r ztgP&*a4eCc^)f8X8Y;H>i_LbJh~nZ~dG-?}sGS4Z_%gt6{;lc(8MA@VYs4%aZ~To?o^#$Sh5C5-|17`o17D&9H9_gTv%D3{Bir#;QsOp zGK;AALzB;ZRKVxQ_rhEkryx)T4?krW7oX|welASe+0mizERnKgVk{?I+f}#Cn#mau z7Z;~|P5}_P{s{>-!dQ4IhR{~%=ra!*rex~y1b++$6L-gHsItk8_^TT(BV*<>9Yhl* zT|Gv{Ap4`_<6SUATeM7EbMQ|hyin15@b*lk%P&d z3yl_nR`mcH~7u``}gk~4&=N#4lix(7^J2D z`4U044FaBrL;tCil$6qhw4riYW~Sn&9$9?=fZb6?+%wQjzDGj6Tw$aS)e-TRWZ@^xz-(J@F%z0v=Y!=K0T{3HMi1lc>$a(>nKTb;Lf(XME|;TS$~?t=~5_Gh7d^vL|M%Dr!To?@TiSF`JXk@n~;CMW29T4YUXU zgaLuD(_*>j)?SAvB}GcF1;aSP6O#&dYd|{TVP^?Z&t-!TadBDSzL_|#LTRK03cPgB zL1K1KtWg+>%q-yy09TxcGspHS##Z6iuhXG+RvMDT?Q@5;b##nZysG{VNpdpiDGNqI zdT*Imo(Dc7XOt#-PHa9w&}E0&9$oGQdt-|hTdauam_;3{+QVRQ3-Lf6n2z}1=eM_Y zT7Pk>2#B`YuYULTZC0hZP&amWfA0A=q;V%3@|!uCXVl5W#3ZtF;W=-4ex37(7(bMj z{K*zVY+_e?Y+I;&?~%*jD0R-B9YiP zKE9H$=jQ5a1a1+De~0RbbE^)ocHb3qn~^V1Us*#8jOxhAE{>0zt611lS}gM4y^9wn zW~8JP0i!OPJN8M$tA!VrzjXOL^mT!FI)twt91gFUGtB&th&b>cCN3weiXultL*wGw zg%j59=KrHB{@-Jef;;dVaWQJlM-~nT`(w6&!%gv`+jJ3=jrI%PY!0FZ8HaK_jEoMd zj=-;;3}N}B>IeG|u6vXHz8uz5@Vi)=R^WJ9yX$w(qW5hLvHnd(C#Q|f9vL2fsAvil zX8q~PfBW?TPEY}<*q)|fHLk#4I@Xq<)=rZ-QTQ-#$hhq?JiA^%5J=#a%mh=Dx#r|M zu#n~jlJ}&MY?Ese@#FSi`d8(MOM{(FReE5;cjC3?d>VdKn_oqIc1| z(c2Jp^wG_HC*Swn`^WEjet+EOIdz@A_j%9R?^^3!JG_@{xRor9{87lyniKS1skod`FXg&<0?Y9m2C0jt)zyAGlCiPn2qiqjkfXX(zp?I>nT0 zZ!A?+AoX)^HV0Fi4;Y&zAmgh>lU&s+D}0&wA?# zS$4PoNL-j}spa)SCY89R*MbrfTpKWy$o1=L`Lx42wAdgf#^msMMOra46+W|5Ex0Xn z1cMR}50AnPNOaUsG;1&%ZmaPpXt~Kxd5w`V`SOLhsHlh0WcT6l>=p-n6Mi_4w;ryJ(g-eUdO zpFi(UpM3c6LAaoxAl!SnfRlHu0=NHK;zchfX1`9Dq-@5+g8=&pGhM!XiIem7uU~c_ zWj*b_Ru5;z1}b>1q4haKnO~}sE4jFci88+|#9#n~@r>I6UPcVx`ylFN+2@iDhPj%- zlPPk39u-Xu4O)&cLnE~-oSf5}xiPKQ@nGlc{QUQ-ZEbC@2?@~{8yi=>dEi=snw*$G zA1+0Y?~(bQS5}njIs`roxg5_;QJi~Qv9J&|ZNBj)wxB*8F&BL5SYnjfJWu^f#nbav zFgw6)ia>-%MNv<;H(Qtd>`IdG8INV|FDols+4Qc38l8{3V2dv)*}UT-+*x{`oK&<( z^q@mW{V5`I=IH3yKR9Szxn1pzpU|48$~C4aFDskA62zHy>4ma^L87z0eQ@)9+|trg zYHWSEu8$1I_H%h%Rl)Yw2?$N8SzYi@dp*!J(lskYrxFIH+p0)z=Cu|J&W!Q2`I^N`;Pxc4w2;cNn zf61LFhaTOMgk-cm+3Xh|p--Z(B|Y<2XQ)D@a@DT;w5_5#H;G!(D+*Gdubz&M8UXHV z!$L+F18|zuAW9w{9)i{VBJuI@Uy6!~kV<4a-_F?>8M)=JG6b`WbVfu(G?3^sy)8~3 zBM{K{kwyB3hA&rE?D?)=zj#Dw=$;z*QkTu4BI;uqaNQl11__700;L{{S1^@i?h+DoG9RH_FcR9D%!DY{y4%nD2bIVfBz^4#9dW?WeX>>xXtAA%&SxsR zx2i59Q-3ZCC(1BO4yg-a*lz`1;Q=^a?oFoYnN(CXaqpX$nyMm^oRCseiu_A8wENHH zLzo`!-^J-uAOxBqYbp{(Z^({TBiU&)z7*za=Be-03D=$sWW_T43M-+P9*ez->ge69 z@D6lSY84<-{+I=S^MK$E=TttaCC{re5|`gmub z+GJGu`3mZ8miK_cQ(22GwHJX|-|!kaLqfb8BJq2KXV9gShm*>~GbB5daD`%ZK4#z( zD=VHRv~wG){XFleOS-BX0KxS?+EfcL>|g)lG+G$%Gzt_x9<{1o`r=&erZFML zLVv36wx6z<%@-Rd6wRAC?NKt+@K;o?fh9wqKcCycus`u)d!~COsWk~*>Q8zp(J1M_ zv8DhR>K02Ro}cQGLzq*|g69QDG%vNq?R{$FL1y_bbtW{lI+h71lVW0GyvbO)*9ny3 zAEYrt&wX&Fz;?iqKeVTLZ+>fMv#nw~`%V^C5r?|_L{&BX+bqedIif?-ri~T$M;XEr zbXfhg!VC;~SOs?^J^S_7GS?dm^r6DU-Pbh&coVCliIv=k3aya=nxB5oGN zB%qyMRb}!Za#^wbGSlFoB&j4pxN|l8^Jd}hhiMl;QHt}ts;gXD{*aCzf0z^7=`xll zL4@vcw(EE`g&)V-ygym6K%nXApit;d2?>T;UwqFhiW~w{lxHhQi&0((WkK(AyEoDq zo$Fr#jXyy61i$#CBq}JkjPuwHS?>)avzq6OVq#(!#8^g4x1F4v-nqEAcx;T7giZ4U z(+>04mAwpt?z`QSY09}Q+^I(zlCb`5zvG=d7U?rTv%e36KGM>H3M+48vffy=eN^8W z9c-sG5f=4=7J3nZxv1)!+oXw-9=pa$DlUWFKb@z-7+y-HWK9O4GIyhuz`qt@M-rHk zS!hV;PEt9j%ORfZx;h$kf*<5D0hBsS_kJE)eF1Kh__k4uspR~!spPEtpLe(dDT=WL zwnWhJa*tO;x_vmBU!=L>hx)Wrq_qCz`=e~zvw9kgXqS{(pDoSCm(vcf-_isF@nTCf zlcf6sJgfM7Ugp}yaNlg+yJnKRK>mTN-pQ{+ONAnc1m|p0%G%c`{YXGHfP~*MhaxL? z_)HdVK_E|_Jh`yW9Xyu&u4FevHY#=e^y%k{w{2|^+Qn~boL)smvGH=y@Xp_7rI}rt zY<=7(J6|18J!pZh8^!0>pU)HgTJ!XRfjJu?NQOuTE=M2zR=l^5UoCbW+KBtz zV*AH>3%H|W;|&1M<=)iVszAeYJVV9gYcRnvcIpwSgs*UoxeRaXVe)@nv-_1rr_jW( zf)i*&CnoZUiDB9&F=`6VQz;nRrr%c3w-y)ITW}WATi6>thCPAa zufQemF4a}=FZRa@uajd9t@9n%9uUqMSmeAn;(W$9j(TT4xF9M0msyCx<~z*kC( zwheV|G;&G+!cH`LAq&!{KU~@{oc9*XEf)4dXH(Wo;0D z!#+C7{u(-nYp#wn=ShGE^MbXDz4NY(tHY0vU^3tL2L=ze6m4q4b0QN=SCJ8MMca39ZWYbV0*OE!tn|IH>P2l#I!9WvOaFu=lbIbbzeVc zaLBCPegPgH0@@{HbJE>pBJ~}F<`pZg68TPt@tCQJ?3`HVxm;i8JWXE6w$uLcz{;MD z{}ON&(!fR1m+8OmXUnz3C~c6II%#SmB%mEgtuP%M6-Al$7BU4I{wI&-d+q6Z%gpOx z;-lG_2iq_7TgHpAj{C=qPb0}mcDbd<5V#=?U>p9%M{xMb<2njQ zHfD<37L<_NQhD?OVrPE^1`T5YG*uBpYa$NB5Vc6tAXi;s9dL52?P>#pkr#@L5|kG- zChP6iWPxp2-Ih9b?>yve8{2|FhOuY{nUB9+Lu{iIF?(FK7UEUOl?}V0tB;?J*jZh! zu2npEd=&&HG)d&=;R#&XRXduDn98onE+5I`eEKWv<HP(k>hs$!C9Z`Ioyl zyXe40g=!Tz{6e}Y0b5(Oi^4~`VS(eR_wF1>m%wcoz(Z>faf{4Az%stbsQ*9az#0f zC@3S>K%M{&E!go;!#q$pKkV!yA9=?dG;zAI@b3FWD!m3AK5W`qp#=7`+q6d-C`Hcv z5Vq-UwRx^A+>1p-E{a_W%<>@kth{^uji{7|0^%gr8PJ_7Y0kH&Vx-@nh6Nx`mQCsx zva3E{ec8zB??RMzo#9~KtM}crL!KDw=rkNJ17{T()}km`I{o793&FVAtA9YuWLIvr zO4%rHP#5~yh=6j}a)jM9{*s(ED5LqYCr}SvUGf%|Vxe)Dcv zmukSy2eaxYK7t<{)l-0!9=oGs2|>X)sT6uJtZFQ0rl%`0L!r^JUf5^jm>NtGIsr&< zC;DHC-Q!A}rFy<;t#^&u)oVv@7e3$j76J)Z)Kor0%d14xIi1tWZWghgZOv*od6sKC z;5VL{vlJ0TY}>0QDmh4dDOE6PM?%?wvQUu5r}qkSRFE6~-mzB8_23(4Jo^;J>H)>G zpfZ6FFzG~xhLVq$6iJDH{s3TrTAhWnbvcq1TkwqQBV2rFUc{MdfAdrIzuY#~KOb$} zSLu_!$~WFuBMy@ryd<;s7}&3wjnN91hQ(}t=cSKh>x*%xOB*HlSWPwMgm*tT2=LDQ zJcKc-Jr00P1rphh0_t?6r=3()RhyRgC}RDFElTaW*1>Koqwxs|cXIKb6#sAi1qc3J zz4lMk`#4QvUU2)Hs@2oK z8O!ks2JDAV;zzRp@ucjKf2a#-UX(j$>WKdwSYk-$3 z;}~`fUZdDDdYhh(KjIqB$P*8*s?}NXf+Qv+bd;HTua75b^S8t{3@{v6wY_4KIcbFP zwZu~Ua`|;Fd33PdvTLyW{+qr(%x(g5a;B)lbsx^hGX{pvQYrh@u`j;ld0)0xw>n#$LI82p{NXi&^e&ZOpfNw-O*@D;7H?;AM`*4TCjR;ILI zBv%gG$-Tz{H1bmB>x+MndvOv{}cOKjTFqrJVo z%%IJ?u;BGeDMi15H79(yF6cAyDJgW2pFKTyHvS8}ytK3dl)%MEeSN;Wreuz|%lXIH z3A(H;062d29A!cSnHzB6KO!dev3d~8`c3ch>H6Y-WaJ~R*D z_w?CWY7J8V!qknYn>ct0fvzJS&25W0Kf!G6%Kk3b5Okn8jVI(K?|e{Mq(`blCw1{bH7hYr90f+y`>>>>>> bd65b8dc0f... Merge pull request #12551 from BonniePandora/spaceslug "rE" = ( /obj/machinery/atmospherics/pipe/manifold/visible/aux{ dir = 1 @@ -1339,7 +1347,15 @@ /obj/structure/table/rack/shelf/steel, /obj/random/powercell, /turf/simulated/floor/tiled/techmaint/airless, +<<<<<<< HEAD /area/sc_away/fueldepot) +======= +/area/tether_away/fueldepot) +"Gh" = ( +/obj/machinery/vending/fitness, +/turf/simulated/floor/tiled/techmaint/airless, +/area/tether_away/fueldepot) +>>>>>>> bd65b8dc0f... Merge pull request #12551 from BonniePandora/spaceslug "IR" = ( /obj/machinery/atmospherics/pipe/simple/visible/aux{ dir = 8 @@ -1365,14 +1381,36 @@ /obj/structure/table/rack/steel, /obj/item/weapon/storage/toolbox/mechanical, /turf/simulated/floor/tiled/techmaint/airless, +<<<<<<< HEAD /area/sc_away/fueldepot) +======= +/area/tether_away/fueldepot) +"QY" = ( +/obj/machinery/atmospherics/pipe/simple/visible/universal{ + dir = 1 + }, +/obj/structure/catwalk, +/mob/living/simple_mob/vore/alienanimals/catslug/spaceslug, +/turf/simulated/shuttle/plating/airless, +/area/tether_away/fueldepot) +>>>>>>> bd65b8dc0f... Merge pull request #12551 from BonniePandora/spaceslug "Vy" = ( /obj/structure/cable{ icon_state = "2-8" }, /obj/structure/catwalk, /turf/simulated/shuttle/plating/airless, +<<<<<<< HEAD /area/sc_away/fueldepot) +======= +/area/tether_away/fueldepot) +"XR" = ( +/obj/machinery/vending/foodfast{ + dir = 0 + }, +/turf/simulated/floor/tiled/techmaint/airless, +/area/tether_away/fueldepot) +>>>>>>> bd65b8dc0f... Merge pull request #12551 from BonniePandora/spaceslug "Ys" = ( /obj/structure/table/steel_reinforced, /turf/simulated/floor/tiled/techmaint/airless, @@ -11246,7 +11284,7 @@ ao aS bc bo -bC +QY rE cc cn @@ -11954,12 +11992,12 @@ aa aG aa aF -aG +Gh aG bz IR aG -aG +XR aF aa aG @@ -12238,7 +12276,7 @@ aD aM aa aF -aG +ow bs bz bN From d41b5ec69abb014adaab54382833fe4f97324393 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Sun, 27 Mar 2022 16:43:08 -0700 Subject: [PATCH 08/24] powder that makes you say yes --- .../mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm index 8b26c95940..e68d3b3a7e 100644 --- a/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm +++ b/code/modules/mob/living/simple_mob/subtypes/slime/xenobio/xenobio.dm @@ -10,14 +10,10 @@ var/power_charge = 0 // Disarm attacks can shock someone if high/lucky enough. var/mob/living/victim = null // the person the slime is currently feeding on var/rainbow_core_candidate = TRUE // If false, rainbow cores cannot make this type randomly. -<<<<<<< HEAD var/mutation_chance = 30 // CHOMPedit Odds of spawning as a new color when reproducing. Can be modified by certain xenobio products. Carried across generations of slimes. -======= - var/mutation_chance = 25 // Odds of spawning as a new color when reproducing. Can be modified by certain xenobio products. Carried across generations of slimes. var/split_amount = 4 // Amount of children we will normally have. Half of that for dead adult slimes. Is NOT carried across generations. var/untamable = FALSE //Makes slime untamable via discipline. var/untamable_inheirit = FALSE //Makes slime inheirit its untamability. ->>>>>>> ed28fbac1a... Merge pull request #12552 from Heroman3003/xenobio-rework var/list/slime_mutation = list( /mob/living/simple_mob/slime/xenobio/orange, /mob/living/simple_mob/slime/xenobio/metal, From addab5e92b3b643b540abd0afff4909259d186a5 Mon Sep 17 00:00:00 2001 From: Casey Date: Sun, 27 Mar 2022 19:44:20 -0400 Subject: [PATCH 09/24] Adds Coyote Awoo Emotes, now with EVEN MORE awoo-age! --- .../emotes/definitions/audible_furry_vr.dm | 25 ++++++++++++++++++ code/modules/mob/living/carbon/human/emote.dm | 8 ++++++ sound/voice/coyoteawoo2.ogg | Bin 0 -> 53147 bytes sound/voice/coyoteawoo3.ogg | Bin 0 -> 57672 bytes sound/voice/coyoteawoo4.ogg | Bin 0 -> 72261 bytes sound/voice/coyoteawoo5.ogg | Bin 0 -> 36344 bytes 6 files changed, 33 insertions(+) create mode 100644 sound/voice/coyoteawoo2.ogg create mode 100644 sound/voice/coyoteawoo3.ogg create mode 100644 sound/voice/coyoteawoo4.ogg create mode 100644 sound/voice/coyoteawoo5.ogg diff --git a/code/modules/emotes/definitions/audible_furry_vr.dm b/code/modules/emotes/definitions/audible_furry_vr.dm index 531b525453..61d980ad27 100644 --- a/code/modules/emotes/definitions/audible_furry_vr.dm +++ b/code/modules/emotes/definitions/audible_furry_vr.dm @@ -179,3 +179,28 @@ else emote_sound = pick(smolsound) . = ..() + +/decl/emote/audible/coyawoo + key = "coyawoo" + emote_message_3p = "lets out a scraggly awoo." + emote_sound = 'sound/voice/coyoteawoo.ogg' + +/decl/emote/audible/coyawoo2 + key = "coyawoo2" + emote_message_3p = "lets out a pronounced, scraggly awoo." + emote_sound = 'sound/voice/coyoteawoo2.ogg' + +/decl/emote/audible/coyawoo3 + key = "coyawoo3" + emote_message_3p = "yaps and lets out a scraggly awoo." + emote_sound = 'sound/voice/coyoteawoo3.ogg' + +/decl/emote/audible/coyawoo4 + key = "coyawoo4" + emote_message_3p = "yaps several times, and lets out a short, scraggly awoo." + emote_sound = 'sound/voice/coyoteawoo4.ogg' + +/decl/emote/audible/coyawoo5 + key = "coyawoo5" + emote_message_3p = "lets out a scraggly, whine-awoo." + emote_sound = 'sound/voice/coyoteawoo5.ogg' \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 84090269e1..1f9061ecb3 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -137,6 +137,14 @@ var/list/_human_default_emotes = list( /decl/emote/audible/prbt, /decl/emote/audible/gyoh, /decl/emote/audible/rumble, +<<<<<<< HEAD +======= + /decl/emote/audible/coyawoo, + /decl/emote/audible/coyawoo2, + /decl/emote/audible/coyawoo3, + /decl/emote/audible/coyawoo4, + /decl/emote/audible/coyawoo5 +>>>>>>> f87655dfed... Merge pull request #12559 from Rykka-Stormheart/shep-dev-coyawoo //VOREStation Add End //CHOMPStation Add Start /decl/emote/audible/coyawoo diff --git a/sound/voice/coyoteawoo2.ogg b/sound/voice/coyoteawoo2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..953d120a63ab7fcacd3810c9b94955d78d4b781f GIT binary patch literal 53147 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 literal 0 HcmV?d00001 diff --git a/sound/voice/coyoteawoo3.ogg b/sound/voice/coyoteawoo3.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ed92e884a054cf4745db06929bed8ccf7c442184 GIT binary patch literal 57672 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 J{Z>M2jW`f_~{w-PJIFBe% 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 a{k{l+FQjps`r{8j4gi2L0KTnkyZ$$g(_DuD literal 0 HcmV?d00001 diff --git a/sound/voice/coyoteawoo5.ogg b/sound/voice/coyoteawoo5.ogg new file mode 100644 index 0000000000000000000000000000000000000000..2edb60e394ff51d333a83100c8ad4310644baa6c GIT binary patch literal 36344 zcmb@uby!wS`zX2)6i`|~KvG%+dFW25hi(b!knV0tC8ay0Te@3Hy1Pq2N;;pt!1w+3 zcYfzwd;fEW#kywZp1Eh{?wMI2Yiz6tJOchnb}D}}gTw)HaKvzqRRkx%LK%}VoQ`^_mvS2j8Mq_c_aUvb%a?& zQAt`EOb#DZ9Sx@(9i|*T)Z+a$YCY6y{WYfjKb-sP;syNkTzD*<-#-saCxrvj$vI=! zXurK8__oUV4c;%H=n-IWPZCn($XB$HnG!ihrX?mx)gKG1E&9se^p&GLGy$24a6cO$ z-6S#R|MeKD#Tx$KAAyfOuK@v&mfbdl-8K{=3KZS8ZxA0S+yj6-6;OE7Y0DyJ$I@-b z13qH*?|P%922P~V|7F5G+W|lTLfC0T*b7oafqu-ERn?An%1(L;B*i^N{?EzhL0-Ux zkfj*KntCHKN9aC~#T!J6mw_aV@^>V#K~TmzY2t9=@c<`U;zoKtcG6heXQd?Sy8QU0 z2M(GK;;(_cr2U!DnVvA5Xg4THB=Yo}lSe!o!*5Pj@qjllyg6&L36A|-g-h+MB zh7&jQ>afAw=jbHrsyd~=`2G=#e68fcHqI5W$LHB3vpVDtVD8c&d4B-;zV3gDj{wLw z-D$k8lux7{VNdk1$#Te|i0#ACqS7Hfv{}TVVWQA{UpWPQ>TLT@4=X1H06&ZeDgO8M zAj*HGI4knY>z_0g{Y-st?q5Y6gIv4cJ1~S%AfOb#VFjf)v}!Zeu7p$EEW2t_oi00C z0ZN?b)*g5xlTYpBTfVT{#qOxbY4(Qu~PP@~2} zt@{Djo){BKYH zhvt0zk{kaeH|Wb&P#DeUSd-6*1$E!df0pdl|6iZ~XpWdI1^9rPBVtSOUz*bjAruC+ zsr-%f@!vJ_j(`NU7kTmD3;=-E2o%W&J0h<@KcT=np+K*!#QT5N7!W$aB0a_e5;g_^ z@B!dgCrEXS$jn%EjAqrJoHVTGS`Z`bAB%3;@q%HthY5O6PMWIRK}dGcS4|DNudjaS zqH!t9(B=tlO-dlqBZ6iR0gwmPO(+QR15YnRu!r z14`fZ1%i}dr@*w8<)@$y0%AF-v%wyS8PSmnX4zSjAi#cDVw*HtLBS+HdR(1`vI+!H z#!RZ4L2@SbP##bfXN~Kb(pFEZ7d;G~bwBt$K!V;*28u`)Gbl(4_5kN%ICzh0RFEb+ zYgAn#yGjl!Ntrz!GO}zf^J!E8T92kzBxZu0snv^1VHE!fae#j*Uz~{3i7}&LLr26 zi_lL&;R}Ys7syt!uN)K_qaX#@ystCOSAasg9_sQ9L+reK@5Td26ngsjW zgQI0nDXD|u z&u@^tzgvZ9SPUqE2t?3(WnqIsO+YkAhAu*3C`e`f5KyMUx~*shaLMs@;ENFS7hv22 zQjbu-A0(Gu7)T4SuKOOam8}2Qn;-+gYirQ?ewR0}`}8#(RL@61KIkPN&P$5w5?u#JNpegsojOb_~B+yNOl=BA(o*k{E z{yH0M43bLaFI`QG0pJh;5lDaZQbmk|mf+c&hc&_ht)MOoJ|WY;kBt1l7dTJ6`*|{E zpkNb}V*%n|RE7es9}(292iby3(B4bMy`99|#~@3B;ECcA-Ti09z|1SqFDI-sL!D<7>N=r9ieqO{-&(Ej06%wIMA%edE|#y^O} zebL}vf9?MQgnIr9;5U4)*be|XA=+%P2jTY%_g9yM`{RMyn{hPbT0szAg{KSmG)yu_KCH5hIicj@dzg9r^_itNMihui) zgLdX0O#jZ}|Nr9u=MX?%9|~gYFXWfT?n` z`)JTh*;Wi6(7rqcfkXWOPRq<0u=`sfWL1m=^rf!UCojC^9}t` z+AwC)SF$(-NYrz|@Nv1|7@a^BYu^{%4-O6742$-2℞1dAAV=_HQ!WQuH zK>;`f#3LR7PoJR>b%+QEFpy=ordvyKP^Yi~fM8HR#^<0;Qb+~?&FdU^@6N{o?m*A* zw0J|UHv_!paOVd^AtWJ;Pwxo@;E*{uRsyIO5B**yrzdj=uU-bJFax~$mXNUa z>+k|V#>6M1g>VW=$b;q>Or*dCXarTfgFYH{NEB%#!pg05E79%~I`Wv$@@$ zKK?rP-J%Yi*R1F*jJ!CMYHw+Lw4r!qlqx=Ou$FoIR=QQ;8epcYOWR{Wmxa-7hqX|1gejxt(qZP>HRU73uWHmNJzAwhY*%7yd&jkGE< zaH2)ERzu7SA;u+z5e^2uT|ng7Gvmc@kK%gBi=6f(M+R2dfRX=+hf`(dw5yet>(b|u zST=l@#`hDqN08Ia5_QYRH!<%lXY!v3xoNV8LBhxCkVHCIT?sYut6uI_WNPZ7ND^@v z%=4b%XH*4!2E%|}S44}z_XR6n>u(L4=be8q-$=NepKgY$+IwBL5+3S}pk{{8uaZlV;X>1+Kbc-VG14wmbDqu-mF9idq=C&!mrV9X-Uz7j1Mdqj ze(-`a_Pc4vFA80lRw}cyVXWq|HF^=P{j<|^e(7Dk%0DDcqMe+k?MG7;%EHRsnu?Eu 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 VijdB?)2M3hkSrr7NL>Oq1pr-PN%;T( literal 0 HcmV?d00001 From 977080b9ee04fd8b7b3733d3027e87e6f7a212d5 Mon Sep 17 00:00:00 2001 From: Casey Date: Mon, 28 Mar 2022 19:05:19 -0400 Subject: [PATCH 10/24] Xenochimera QOL PR --- code/_onclick/hud/alert.dm | 4 ++ code/_onclick/hud/alert_vr.dm | 6 +++ code/_onclick/hud/screen_objects_vr.dm | 12 +++++ code/game/objects/items/devices/defib.dm | 8 ++++ code/game/objects/items/devices/scanners.dm | 8 ++++ .../station/station_special_abilities_vr.dm | 47 +++++++++++++++++++ .../species/station/station_special_vr.dm | 33 +++++++++++++ code/modules/mob/living/carbon/lick_wounds.dm | 8 ++++ code/modules/vore/eating/living_vr.dm | 14 ++++++ 9 files changed, 140 insertions(+) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 3449bf4c47..7c965ae68e 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -471,7 +471,11 @@ so as to remain in compliance with the most up-to-date laws." return if(master) return usr.client.Click(master, location, control, params) +<<<<<<< HEAD ..() // CHOMPStation Edit: Pass through to click_vr +======= + ..() // VOREStation Edit: Pass through to click_vr +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /obj/screen/alert/Destroy() ..() diff --git a/code/_onclick/hud/alert_vr.dm b/code/_onclick/hud/alert_vr.dm index 4255be312e..77d8c6a5cb 100644 --- a/code/_onclick/hud/alert_vr.dm +++ b/code/_onclick/hud/alert_vr.dm @@ -24,7 +24,10 @@ name = "Low Power" desc = "Your battery is very low! Low power mode makes all movements slower." +<<<<<<< HEAD // CHOMPEdit Start +======= +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /obj/screen/alert/xenochimera/reconstitution name = "Reconstructing Form" desc = "You're still rebuilding your body! Click the alert to find out how long you have left." @@ -51,5 +54,8 @@ if(istype(H) && istype(H.species, /datum/species/xenochimera)) // If you're somehow able to click this while not a chimera, this should prevent weird runtimes. Will need changing if regeneration is ever opened to non-chimera using the same alert. if(H.revive_ready == REVIVING_DONE) // Sanity check. H.hatch() // Hatch. +<<<<<<< HEAD // CHOMPEdit Finish +======= +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol */ \ No newline at end of file diff --git a/code/_onclick/hud/screen_objects_vr.dm b/code/_onclick/hud/screen_objects_vr.dm index 69555eb61b..0305309c11 100644 --- a/code/_onclick/hud/screen_objects_vr.dm +++ b/code/_onclick/hud/screen_objects_vr.dm @@ -45,14 +45,22 @@ var/turf/T = get_turf(H) if(T.get_lumcount() <= 0.1) to_chat(usr, "You are slowly calming down in darkness' safety...") +<<<<<<< HEAD else if(isbelly(H.loc)) // CHOMPEdit: Safety message for if inside a belly. +======= + else if(isbelly(H.loc)) // Safety message for if inside a belly. +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol to_chat(usr, "You are slowly calming down within the darkness of something's belly, listening to their body as it moves around you. ...safe...") else to_chat(usr, "You are slowly calming down... But safety of darkness is much preferred.") else if(H.nutrition < 150) to_chat(usr, "Your hunger is slowly making you unstable.") +<<<<<<< HEAD if("Reconstructing Form") // CHOMPEdit: Allow Viewing Reconstruction Timer + Hatching for 'chimera +======= + if("Reconstructing Form") // Allow Viewing Reconstruction Timer + Hatching for 'chimera +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol var/mob/living/carbon/human/H = usr if(istype(H) && istype(H.species, /datum/species/xenochimera)) // If you're somehow able to click this while not a chimera, this should prevent weird runtimes. Will need changing if regeneration is ever opened to non-chimera using the same alert. if(H.revive_ready == REVIVING_NOW) @@ -60,7 +68,11 @@ else if(H.revive_ready == REVIVING_DONE) to_chat(usr, "You should have a notification + alert for this! Bug report that this is still here!") +<<<<<<< HEAD if("Ready to Hatch") // CHOMPEdit: Allow Viewing Reconstruction Timer + Hatching for 'chimera +======= + if("Ready to Hatch") // Allow Viewing Reconstruction Timer + Hatching for 'chimera +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol var/mob/living/carbon/human/H = usr if(istype(H) && istype(H.species, /datum/species/xenochimera)) // If you're somehow able to click this while not a chimera, this should prevent weird runtimes. Will need changing if regeneration is ever opened to non-chimera using the same alert. if(H.revive_ready == REVIVING_DONE) // Sanity check. diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/devices/defib.dm index 717ceb1ee2..8ba83d25d6 100644 --- a/code/game/objects/items/devices/defib.dm +++ b/code/game/objects/items/devices/defib.dm @@ -501,10 +501,18 @@ M.Weaken(rand(10,25)) M.updatehealth() apply_brain_damage(M) +<<<<<<< HEAD M.adjustHalLoss(40) // CHOMPEdit: Moderate amount of halloss for EVERYONE being defibbed. Defibs feel like being kicked in the chest by a mule. Shit hurts if you're awake. if(istype(M.species, /datum/species/xenochimera)) // Only do the following to Xenochimera. Handwave this however you want, this is to balance defibs on an alien race. CHOMPEdit M.adjustHalLoss(220) // This hurts a LOT, stacks on top of the previous halloss. M.feral += 100 // If they somehow weren't already feral, force them feral by increasing ferality var directly, to avoid any messy checks. handle_feralness() will immediately set our feral properly according to halloss anyhow. +======= + // VOREStation Edits Start: Defib pain + if(istype(M.species, /datum/species/xenochimera)) // Only do the following to Xenochimera. Handwave this however you want, this is to balance defibs on an alien race. + M.adjustHalLoss(220) // This hurts a LOT, stacks on top of the previous halloss. + M.feral += 100 // If they somehow weren't already feral, force them feral by increasing ferality var directly, to avoid any messy checks. handle_feralness() will immediately set our feral properly according to halloss anyhow. + // VOREStation Edits End +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol // SSgame_master.adjust_danger(-20) // VOREStation Edit - We don't use SSgame_master yet. /obj/item/weapon/shockpaddles/proc/apply_brain_damage(mob/living/carbon/human/H) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 7e75e5057a..fb5ac96a6f 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -278,7 +278,11 @@ HALOGEN COUNTER - Radcount on mobs else dat += "Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]
" dat += "Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm." +<<<<<<< HEAD if(istype(H.species, /datum/species/xenochimera)) // CHOMPEdit Start: Visible feedback for medmains on Xenochimera. +======= + if(istype(H.species, /datum/species/xenochimera)) // VOREStation Edit Start: Visible feedback for medmains on Xenochimera. +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol if(H.stat == DEAD && H.revive_ready == REVIVING_READY && !H.hasnutriment()) dat += "WARNING: Protein levels low. Subject incapable of reconstitution." else if(H.revive_ready == REVIVING_NOW) @@ -289,7 +293,11 @@ HALOGEN COUNTER - Radcount on mobs dat+= "WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation." else // If they bop them and they're not dead or reviving, give 'em a little notice. dat += "Subject is a Xenochimera. Treat accordingly." +<<<<<<< HEAD // CHOMPEdit End +======= + // VOREStation Edit End +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol user.show_message(dat, 1) /obj/item/device/healthanalyzer/verb/toggle_mode() diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm index c401019f21..2c242c24ce 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm @@ -34,14 +34,23 @@ //Scary spawnerization. revive_ready = REVIVING_NOW revive_finished = (world.time + time SECONDS) // When do we finish reviving? Allows us to find out when we're done, called by the alert currently. +<<<<<<< HEAD throw_alert("regen", /obj/screen/alert/xenochimera/reconstitution) // CHOMPEdit: Regen +======= + throw_alert("regen", /obj/screen/alert/xenochimera/reconstitution) +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol spawn(time SECONDS) // Was dead, now not dead. if(stat != DEAD) to_chat(src, "Your body has recovered from its ordeal, ready to regenerate itself again.") revive_ready = REVIVING_READY //reset their cooldown +<<<<<<< HEAD clear_alert("regen") // CHOMPEdit: Regen throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) // CHOMPEdit: Regen +======= + clear_alert("regen") + throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol // Was dead, still dead. else @@ -49,8 +58,13 @@ verbs |= /mob/living/carbon/human/proc/hatch revive_ready = REVIVING_DONE src << sound('sound/effects/mob_effects/xenochimera/hatch_notification.ogg',0,0,0,30) +<<<<<<< HEAD clear_alert("regen") // CHOMPEdit: Regen throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) // CHOMPEdit: Regen +======= + clear_alert("regen") + throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Dead until nutrition injected. else @@ -63,7 +77,11 @@ //Waiting for regen after being alive revive_ready = REVIVING_NOW revive_finished = (world.time + time SECONDS) // When do we finish reviving? Allows us to find out when we're done, called by the alert currently. +<<<<<<< HEAD throw_alert("regen", /obj/screen/alert/xenochimera/reconstitution) // CHOMPEdit: Regen +======= + throw_alert("regen", /obj/screen/alert/xenochimera/reconstitution) +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol spawn(time SECONDS) //If they're still alive after regenning. @@ -72,8 +90,13 @@ verbs |= /mob/living/carbon/human/proc/hatch revive_ready = REVIVING_DONE src << sound('sound/effects/mob_effects/xenochimera/hatch_notification.ogg',0,0,0,30) +<<<<<<< HEAD clear_alert("regen") // CHOMPEdit: Regen throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) // CHOMPEdit: Regen +======= + clear_alert("regen") + throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Was alive, now dead else if(hasnutriment()) @@ -81,14 +104,23 @@ verbs |= /mob/living/carbon/human/proc/hatch revive_ready = REVIVING_DONE src << sound('sound/effects/mob_effects/xenochimera/hatch_notification.ogg',0,0,0,30) +<<<<<<< HEAD clear_alert("regen") // CHOMPEdit: Regen throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) // CHOMPEdit: Regen +======= + clear_alert("regen") + throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Dead until nutrition injected. else to_chat(src, "Your body was unable to regenerate, what few living cells remain require additional nutrients to complete the process.") revive_ready = REVIVING_READY //reset their cooldown +<<<<<<< HEAD clear_alert("regen") // CHOMPEdit: Regen +======= + clear_alert("regen") +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /mob/living/carbon/human/proc/hasnutriment() if (bloodstr.has_reagent("nutriment", 30) || src.bloodstr.has_reagent("protein", 15)) //protein needs half as much. For reference, a steak contains 9u protein. @@ -117,7 +149,11 @@ chimera_hatch() adjustBrainLoss(10) // if they're reviving from dead, they come back with 10 brainloss on top of whatever's unhealed. visible_message("

The lifeless husk of [src] bursts open, revealing a new, intact copy in the pool of viscera.

") //Bloody hell... +<<<<<<< HEAD clear_alert("hatch") // CHOMPEdit: Regen +======= + clear_alert("hatch") +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol return //Don't have nutriment to hatch! Or you somehow died in between completing your revive and hitting hatch. @@ -125,13 +161,21 @@ to_chat(src, "Your body was unable to regenerate, what few living cells remain require additional nutrients to complete the process.") verbs -= /mob/living/carbon/human/proc/hatch revive_ready = REVIVING_READY //reset their cooldown they can try again when they're given a kickstart +<<<<<<< HEAD clear_alert("hatch") // CHOMPEdit: Regen +======= + clear_alert("hatch") +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Alive when hatching else chimera_hatch() visible_message("

The dormant husk of [src] bursts open, revealing a new, intact copy in the pool of viscera.

") //Bloody hell... +<<<<<<< HEAD clear_alert("hatch") // CHOMPEdit: Regen +======= + clear_alert("hatch") +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /mob/living/carbon/human/proc/chimera_hatch() verbs -= /mob/living/carbon/human/proc/hatch @@ -166,7 +210,10 @@ playsound(T, 'sound/effects/mob_effects/xenochimera/hatch.ogg', 50) revive_ready = world.time + 10 MINUTES //set the cooldown CHOMPEdit: Reduced this to 10 minutes, you're playing with fire if you're reviving that often. +<<<<<<< HEAD // CHOMPEdit End +======= +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /mob/living/carbon/human/proc/revivingreset() // keep this as a debug proc or potential future use revive_ready = REVIVING_READY diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index b3574568c8..15b03c3ace 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -27,9 +27,13 @@ /mob/living/carbon/human/proc/sonar_ping, /mob/living/carbon/human/proc/tie_hair, /mob/living/proc/flying_toggle, +<<<<<<< HEAD /mob/living/proc/start_wings_hovering, /mob/living/carbon/human/proc/lick_wounds) //Xenochimera get all the special verbs since they can't select traits. // CHOMPEdit: Lick Wounds Verb +======= + /mob/living/proc/start_wings_hovering) //Xenochimera get all the special verbs since they can't select traits. +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol virus_immune = 1 // They practically ARE one. min_age = 18 @@ -55,7 +59,11 @@ //primitive_form = "Farwa" spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE//Whitelisted as restricted is broken. +<<<<<<< HEAD flags = NO_SCAN | NO_INFECT // | NO_DEFIB // Dying as a chimera is, quite literally, a death sentence. Well, if it wasn't for their revive, that is. CHOMPEdit: Leaving NO_DEFIB there for the future. // CHOMPEdit: Adds flags +======= + flags = NO_SCAN | NO_INFECT // | NO_DEFIB // Dying as a chimera is, quite literally, a death sentence. Well, if it wasn't for their revive, that is. Leaving NO_DEFIB there for the future/in case reversion to old 'chimera no-defib. +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR genders = list(MALE, FEMALE, PLURAL, NEUTER) @@ -88,11 +96,18 @@ H.weakened = 5 H.canmove = 0 H.does_not_breathe = TRUE +<<<<<<< HEAD var/regen_sounds = H.regen_sounds // CHOMPEdit Start: Regen sounds/etc if(prob(2)) // 2% chance of playing squelchy noise while reviving, which is run roughly every 2 seconds/tick while regenerating. playsound(H, pick(regen_sounds), 30) H.visible_message("

[H.name]'s motionless form shudders grotesquely, rippling unnaturally.

") // CHOMPEdit End +======= + var/regen_sounds = H.regen_sounds + if(prob(2)) // 2% chance of playing squelchy noise while reviving, which is run roughly every 2 seconds/tick while regenerating. + playsound(H, pick(regen_sounds), 30) + H.visible_message("

[H.name]'s motionless form shudders grotesquely, rippling unnaturally.

") +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Cold/pressure effects when not regenerating else @@ -212,8 +227,13 @@ feral++ else feral = max(0,--feral) +<<<<<<< HEAD // Being in a belly or in the darkness decreases stress further. :9 +======= + + // Being in a belly or in the darkness decreases stress further. Helps mechanically reward players for staying in darkness + RP'ing appropriately. :9 +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol var/turf/T = get_turf(H) if(feral && (isbelly(H.loc) || T.get_lumcount() <= 0.1)) feral = max(0,--feral) @@ -233,7 +253,11 @@ H.shock_stage = max(H.shock_stage-(feral/20), 0) //Handle light/dark areas +<<<<<<< HEAD // var/turf/T = get_turf(H) // CHOMPEdit: Moved up to before the in-belly/dark combined check, should still safely reach here just fine. +======= + // var/turf/T = get_turf(H) // Moved up to before the in-belly/dark combined check, should still safely reach here just fine. +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol if(!T) update_xenochimera_hud(H, danger, feral_state) return //Nullspace @@ -246,7 +270,11 @@ var/list/nearby = H.living_mobs(world.view) //Not in the dark, or a belly, and out in the open. +<<<<<<< HEAD if(!darkish && isturf(H.loc) && !isbelly(H.loc)) // CHOMPEdit: added specific check for if in belly +======= + if(!darkish && isturf(H.loc) && !isbelly(H.loc)) // Added specific check for if in belly +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Always handle feral if nobody's around and not in the dark. if(!nearby.len) @@ -260,8 +288,13 @@ update_xenochimera_hud(H, danger, feral_state) return +<<<<<<< HEAD // In the darkness, "hidden", or in a belly. No need for custom scene-protection checks as it's just an occational infomessage. if(darkish || !isturf(H.loc) || isbelly(H.loc)) // CHOMPEdit: added specific check for if in belly +======= + // In the darkness, or "hidden", or in a belly. No need for custom scene-protection checks as it's just an occational infomessage. + if(darkish || !isturf(H.loc) || isbelly(H.loc)) // Specific check for if in belly. !isturf should do this, but JUST in case. +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol // If hurt, tell 'em to heal up if (shock) to_chat(H,"This place seems safe, secure, hidden, a place to lick your wounds and recover...") diff --git a/code/modules/mob/living/carbon/lick_wounds.dm b/code/modules/mob/living/carbon/lick_wounds.dm index b11ece455a..9579bcf5ec 100644 --- a/code/modules/mob/living/carbon/lick_wounds.dm +++ b/code/modules/mob/living/carbon/lick_wounds.dm @@ -1,4 +1,8 @@ +<<<<<<< HEAD /mob/living/carbon/human/proc/lick_wounds(var/mob/living/carbon/M) //YWedit, originally, living/carbon/M in living_mobs(1), However, living_mobs does not include src as possible target. +======= +/mob/living/carbon/human/proc/lick_wounds(var/mob/living/carbon/M) // Allows the user to lick themselves. Given how rarely this trait is used, I don't see an issue with a slight buff. +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol set name = "Lick Wounds" set category = "Abilities" set desc = "Disinfect and heal small wounds with your saliva." @@ -11,6 +15,10 @@ to_chat(src, "You need to be closer to do that.") // CHOMPEdit - don't use src << unless you have to. return + if (get_dist(src,M) >= 2) + to_chat(src, "You need to be closer to do that.") + return + if ( ! (istype(src, /mob/living/carbon/human) || \ istype(src, /mob/living/silicon)) ) to_chat(src, "If you even have a tongue, it doesn't work that way.") diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 86c5451629..9bb4f90dda 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -20,7 +20,11 @@ var/vore_egg_type = "egg" // Default egg type. var/feral = 0 // How feral the mob is, if at all. Does nothing for non xenochimera at the moment. var/revive_ready = REVIVING_READY // Only used for creatures that have the xenochimera regen ability, so far. +<<<<<<< HEAD var/revive_finished = 0 // CHOMPEdit: Only used for xenochimera regen, allows us to find out when the regen will finish. +======= + var/revive_finished = 0 // Only used for xenochimera regen, allows us to find out when the regen will finish. +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol var/metabolism = 0.0015 var/vore_taste = null // What the character tastes like var/vore_smell = null // What the character smells like @@ -38,6 +42,7 @@ var/adminbus_eat_minerals = FALSE // This creature subsists on a diet of pure adminium. var/vis_height = 32 // Sprite height used for resize features. var/show_vore_fx = TRUE // Show belly fullscreens +<<<<<<< HEAD var/latejoin_vore = FALSE //CHOMPedit: If enabled, latejoiners can spawn into this, assuming they have a client var/latejoin_prey = FALSE //CHOMPedit: If enabled, latejoiners can spawn ontop of and instantly eat the victim var/noisy_full = FALSE //CHOMPedit: Enables belching when a mob has overeaten @@ -50,6 +55,15 @@ 'sound/effects/mob_effects/xenochimera/regen_5.ogg' ) // CHOMPEdit: Regen Sounds +======= + var/regen_sounds = list( + 'sound/effects/mob_effects/xenochimera/regen_1.ogg', + 'sound/effects/mob_effects/xenochimera/regen_2.ogg', + 'sound/effects/mob_effects/xenochimera/regen_4.ogg', + 'sound/effects/mob_effects/xenochimera/regen_3.ogg', + 'sound/effects/mob_effects/xenochimera/regen_5.ogg' + ) +>>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol // // Hook for generic creation of stuff on new creatures From 77e62126f9bc52be2e84fd2fa5c77605e08dc710 Mon Sep 17 00:00:00 2001 From: Raeschen Date: Tue, 29 Mar 2022 19:30:51 +0200 Subject: [PATCH 11/24] Allow simple_mobs to toggle vore sprites on and off Because not everyone wants to have a big tumby. Toggles vore sprite for any simple_mob on and off, if applicable. Does nothing to mobs that have no vore sprite. --- .../mob/living/simple_mob/simple_mob_ch.dm | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/code/modules/mob/living/simple_mob/simple_mob_ch.dm b/code/modules/mob/living/simple_mob/simple_mob_ch.dm index 855bd786c2..cf89e7c625 100644 --- a/code/modules/mob/living/simple_mob/simple_mob_ch.dm +++ b/code/modules/mob/living/simple_mob/simple_mob_ch.dm @@ -1,3 +1,29 @@ +/mob/living/simple_mob + //vars for vore_icons toggle control + var/vore_icons_toggle = 1 // on by default, as is legacy + var/vore_icons_cache = 0 // 0 by default. Going from ON to OFF should store vore_icons val here. + +mob/living/simple_mob/verb/toggle_vore_icons() + + set name = "Toggle Vore Sprite" + set desc = "Toggle visibility of changed mob sprite when you have eaten other things." + set category = "Abilities" + + if(!vore_icons && !vore_icons_cache) + to_chat(src,"This simplemob has no vore sprite.") + else if(vore_icons_toggle) + vore_icons_cache = vore_icons + vore_icons = 0 + vore_icons_toggle = 0 + to_chat(src,"Vore sprite disabled.") + else + vore_icons = vore_icons_cache + vore_icons_toggle = 1 + to_chat(src,"Vore sprite enabled.") + + update_icon() + + // a unique named update_transforms override to allow simplemobs going horizontal on lay/stun. // This will not make the mob horizontal if the mob has a icon_rest != null // To use this, add an override in your simplemob subtype of update_transforms with NO . = ..() From 3c9bf864552343b5440408ae88294a26be9d0eda Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 21:01:48 -0700 Subject: [PATCH 12/24] powder that makes you say yes --- code/modules/mob/living/carbon/human/emote.dm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 1f9061ecb3..1881e2856a 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -137,18 +137,12 @@ var/list/_human_default_emotes = list( /decl/emote/audible/prbt, /decl/emote/audible/gyoh, /decl/emote/audible/rumble, -<<<<<<< HEAD -======= /decl/emote/audible/coyawoo, /decl/emote/audible/coyawoo2, /decl/emote/audible/coyawoo3, /decl/emote/audible/coyawoo4, /decl/emote/audible/coyawoo5 ->>>>>>> f87655dfed... Merge pull request #12559 from Rykka-Stormheart/shep-dev-coyawoo //VOREStation Add End - //CHOMPStation Add Start - /decl/emote/audible/coyawoo - //CHOMPStation End Start ) //VOREStation Add Start From d81bb3e46fec54c3667f73c0fa274255094c8cd9 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 21:03:35 -0700 Subject: [PATCH 13/24] powder that makes you say yes --- code/modules/emotes/definitions/audible_furry_ch.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/emotes/definitions/audible_furry_ch.dm b/code/modules/emotes/definitions/audible_furry_ch.dm index 4268ffe2bb..fa9878cae4 100644 --- a/code/modules/emotes/definitions/audible_furry_ch.dm +++ b/code/modules/emotes/definitions/audible_furry_ch.dm @@ -1,4 +1,7 @@ +//This file has been disabled in the dme now that the below is actually ported upstream +/* /decl/emote/audible/coyawoo key = "coyawoo" emote_message_3p = "lets out a scraggly awoo." - emote_sound = 'sound/voice/coyoteawoo.ogg' \ No newline at end of file + emote_sound = 'sound/voice/coyoteawoo.ogg' +*/ From 5c2d73d85606933e53273446ac909f0825b9a726 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 21:03:56 -0700 Subject: [PATCH 14/24] powder that makes you say yes --- vorestation.dme | 1 - 1 file changed, 1 deletion(-) diff --git a/vorestation.dme b/vorestation.dme index d9850ceb35..8c2aa73c40 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -2291,7 +2291,6 @@ #include "code\modules\emotes\definitions\audible.dm" #include "code\modules\emotes\definitions\audible_belch.dm" #include "code\modules\emotes\definitions\audible_cough.dm" -#include "code\modules\emotes\definitions\audible_furry_ch.dm" #include "code\modules\emotes\definitions\audible_furry_vr.dm" #include "code\modules\emotes\definitions\audible_scream.dm" #include "code\modules\emotes\definitions\audible_scream_ch.dm" From 967186aeb65fe71e7f86139ad2742d862d6c6a7c Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 21:55:39 -0700 Subject: [PATCH 15/24] powder that makes you say yes --- code/_onclick/hud/alert.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 7c965ae68e..4689863245 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -471,11 +471,7 @@ so as to remain in compliance with the most up-to-date laws." return if(master) return usr.client.Click(master, location, control, params) -<<<<<<< HEAD - ..() // CHOMPStation Edit: Pass through to click_vr -======= ..() // VOREStation Edit: Pass through to click_vr ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /obj/screen/alert/Destroy() ..() From 2012d9a6fff60023ce474c05a4367e762eab61af Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 21:56:16 -0700 Subject: [PATCH 16/24] powder that makes you say yes --- code/_onclick/hud/alert_vr.dm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/code/_onclick/hud/alert_vr.dm b/code/_onclick/hud/alert_vr.dm index 77d8c6a5cb..e4168c3971 100644 --- a/code/_onclick/hud/alert_vr.dm +++ b/code/_onclick/hud/alert_vr.dm @@ -24,10 +24,6 @@ name = "Low Power" desc = "Your battery is very low! Low power mode makes all movements slower." -<<<<<<< HEAD -// CHOMPEdit Start -======= ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /obj/screen/alert/xenochimera/reconstitution name = "Reconstructing Form" desc = "You're still rebuilding your body! Click the alert to find out how long you have left." @@ -54,8 +50,4 @@ if(istype(H) && istype(H.species, /datum/species/xenochimera)) // If you're somehow able to click this while not a chimera, this should prevent weird runtimes. Will need changing if regeneration is ever opened to non-chimera using the same alert. if(H.revive_ready == REVIVING_DONE) // Sanity check. H.hatch() // Hatch. -<<<<<<< HEAD -// CHOMPEdit Finish -======= ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol -*/ \ No newline at end of file +*/ From 80e65fa5780592f0e93193b40d26b87ade730308 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 21:56:57 -0700 Subject: [PATCH 17/24] powder that makes you say yes --- code/_onclick/hud/screen_objects_vr.dm | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/code/_onclick/hud/screen_objects_vr.dm b/code/_onclick/hud/screen_objects_vr.dm index 0305309c11..65b6df5c3b 100644 --- a/code/_onclick/hud/screen_objects_vr.dm +++ b/code/_onclick/hud/screen_objects_vr.dm @@ -45,22 +45,15 @@ var/turf/T = get_turf(H) if(T.get_lumcount() <= 0.1) to_chat(usr, "You are slowly calming down in darkness' safety...") -<<<<<<< HEAD - else if(isbelly(H.loc)) // CHOMPEdit: Safety message for if inside a belly. -======= + else if(isbelly(H.loc)) // Safety message for if inside a belly. ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol to_chat(usr, "You are slowly calming down within the darkness of something's belly, listening to their body as it moves around you. ...safe...") else to_chat(usr, "You are slowly calming down... But safety of darkness is much preferred.") else if(H.nutrition < 150) to_chat(usr, "Your hunger is slowly making you unstable.") -<<<<<<< HEAD - if("Reconstructing Form") // CHOMPEdit: Allow Viewing Reconstruction Timer + Hatching for 'chimera -======= if("Reconstructing Form") // Allow Viewing Reconstruction Timer + Hatching for 'chimera ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol var/mob/living/carbon/human/H = usr if(istype(H) && istype(H.species, /datum/species/xenochimera)) // If you're somehow able to click this while not a chimera, this should prevent weird runtimes. Will need changing if regeneration is ever opened to non-chimera using the same alert. if(H.revive_ready == REVIVING_NOW) @@ -68,11 +61,7 @@ else if(H.revive_ready == REVIVING_DONE) to_chat(usr, "You should have a notification + alert for this! Bug report that this is still here!") -<<<<<<< HEAD - if("Ready to Hatch") // CHOMPEdit: Allow Viewing Reconstruction Timer + Hatching for 'chimera -======= if("Ready to Hatch") // Allow Viewing Reconstruction Timer + Hatching for 'chimera ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol var/mob/living/carbon/human/H = usr if(istype(H) && istype(H.species, /datum/species/xenochimera)) // If you're somehow able to click this while not a chimera, this should prevent weird runtimes. Will need changing if regeneration is ever opened to non-chimera using the same alert. if(H.revive_ready == REVIVING_DONE) // Sanity check. @@ -81,4 +70,4 @@ else return 0 - return 1 \ No newline at end of file + return 1 From 169da5b298165641c0e926a86b571b2611b2460c Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 21:57:46 -0700 Subject: [PATCH 18/24] powder that makes you say yes --- code/game/objects/items/devices/defib.dm | 6 ------ 1 file changed, 6 deletions(-) diff --git a/code/game/objects/items/devices/defib.dm b/code/game/objects/items/devices/defib.dm index 8ba83d25d6..f672cbcf1b 100644 --- a/code/game/objects/items/devices/defib.dm +++ b/code/game/objects/items/devices/defib.dm @@ -501,18 +501,12 @@ M.Weaken(rand(10,25)) M.updatehealth() apply_brain_damage(M) -<<<<<<< HEAD M.adjustHalLoss(40) // CHOMPEdit: Moderate amount of halloss for EVERYONE being defibbed. Defibs feel like being kicked in the chest by a mule. Shit hurts if you're awake. - if(istype(M.species, /datum/species/xenochimera)) // Only do the following to Xenochimera. Handwave this however you want, this is to balance defibs on an alien race. CHOMPEdit - M.adjustHalLoss(220) // This hurts a LOT, stacks on top of the previous halloss. - M.feral += 100 // If they somehow weren't already feral, force them feral by increasing ferality var directly, to avoid any messy checks. handle_feralness() will immediately set our feral properly according to halloss anyhow. -======= // VOREStation Edits Start: Defib pain if(istype(M.species, /datum/species/xenochimera)) // Only do the following to Xenochimera. Handwave this however you want, this is to balance defibs on an alien race. M.adjustHalLoss(220) // This hurts a LOT, stacks on top of the previous halloss. M.feral += 100 // If they somehow weren't already feral, force them feral by increasing ferality var directly, to avoid any messy checks. handle_feralness() will immediately set our feral properly according to halloss anyhow. // VOREStation Edits End ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol // SSgame_master.adjust_danger(-20) // VOREStation Edit - We don't use SSgame_master yet. /obj/item/weapon/shockpaddles/proc/apply_brain_damage(mob/living/carbon/human/H) From 7f418fd1fa6bdaa5d325f20031927cca544426f5 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 21:58:16 -0700 Subject: [PATCH 19/24] powder that makes you say yes --- code/game/objects/items/devices/scanners.dm | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index fb5ac96a6f..b240af4dd6 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -278,11 +278,7 @@ HALOGEN COUNTER - Radcount on mobs else dat += "Blood Level Normal: [blood_percent]% [blood_volume]cl. Type: [blood_type]
" dat += "Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm." -<<<<<<< HEAD - if(istype(H.species, /datum/species/xenochimera)) // CHOMPEdit Start: Visible feedback for medmains on Xenochimera. -======= if(istype(H.species, /datum/species/xenochimera)) // VOREStation Edit Start: Visible feedback for medmains on Xenochimera. ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol if(H.stat == DEAD && H.revive_ready == REVIVING_READY && !H.hasnutriment()) dat += "WARNING: Protein levels low. Subject incapable of reconstitution." else if(H.revive_ready == REVIVING_NOW) @@ -293,11 +289,7 @@ HALOGEN COUNTER - Radcount on mobs dat+= "WARNING: Defib will cause extreme pain and set subject feral. Sedation recommended prior to defibrillation." else // If they bop them and they're not dead or reviving, give 'em a little notice. dat += "Subject is a Xenochimera. Treat accordingly." -<<<<<<< HEAD - // CHOMPEdit End -======= // VOREStation Edit End ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol user.show_message(dat, 1) /obj/item/device/healthanalyzer/verb/toggle_mode() @@ -553,4 +545,4 @@ HALOGEN COUNTER - Radcount on mobs to_chat(user, "No radiation detected.") return -#undef DEFIB_TIME_LIMIT //VOREStation addition \ No newline at end of file +#undef DEFIB_TIME_LIMIT //VOREStation addition From 85d7dce3d1b5412fb8d51085afce1d64ec47e73b Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 22:00:13 -0700 Subject: [PATCH 20/24] powder that makes you say yes --- .../station/station_special_abilities_vr.dm | 48 ------------------- 1 file changed, 48 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm index 2c242c24ce..2697df5f84 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_abilities_vr.dm @@ -34,23 +34,14 @@ //Scary spawnerization. revive_ready = REVIVING_NOW revive_finished = (world.time + time SECONDS) // When do we finish reviving? Allows us to find out when we're done, called by the alert currently. -<<<<<<< HEAD - throw_alert("regen", /obj/screen/alert/xenochimera/reconstitution) // CHOMPEdit: Regen -======= throw_alert("regen", /obj/screen/alert/xenochimera/reconstitution) ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol spawn(time SECONDS) // Was dead, now not dead. if(stat != DEAD) to_chat(src, "Your body has recovered from its ordeal, ready to regenerate itself again.") revive_ready = REVIVING_READY //reset their cooldown -<<<<<<< HEAD - clear_alert("regen") // CHOMPEdit: Regen - throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) // CHOMPEdit: Regen -======= clear_alert("regen") throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol // Was dead, still dead. else @@ -58,13 +49,8 @@ verbs |= /mob/living/carbon/human/proc/hatch revive_ready = REVIVING_DONE src << sound('sound/effects/mob_effects/xenochimera/hatch_notification.ogg',0,0,0,30) -<<<<<<< HEAD - clear_alert("regen") // CHOMPEdit: Regen - throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) // CHOMPEdit: Regen -======= clear_alert("regen") throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Dead until nutrition injected. else @@ -77,11 +63,7 @@ //Waiting for regen after being alive revive_ready = REVIVING_NOW revive_finished = (world.time + time SECONDS) // When do we finish reviving? Allows us to find out when we're done, called by the alert currently. -<<<<<<< HEAD - throw_alert("regen", /obj/screen/alert/xenochimera/reconstitution) // CHOMPEdit: Regen -======= throw_alert("regen", /obj/screen/alert/xenochimera/reconstitution) ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol spawn(time SECONDS) //If they're still alive after regenning. @@ -90,13 +72,8 @@ verbs |= /mob/living/carbon/human/proc/hatch revive_ready = REVIVING_DONE src << sound('sound/effects/mob_effects/xenochimera/hatch_notification.ogg',0,0,0,30) -<<<<<<< HEAD - clear_alert("regen") // CHOMPEdit: Regen - throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) // CHOMPEdit: Regen -======= clear_alert("regen") throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Was alive, now dead else if(hasnutriment()) @@ -104,23 +81,14 @@ verbs |= /mob/living/carbon/human/proc/hatch revive_ready = REVIVING_DONE src << sound('sound/effects/mob_effects/xenochimera/hatch_notification.ogg',0,0,0,30) -<<<<<<< HEAD - clear_alert("regen") // CHOMPEdit: Regen - throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) // CHOMPEdit: Regen -======= clear_alert("regen") throw_alert("hatch", /obj/screen/alert/xenochimera/readytohatch) ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Dead until nutrition injected. else to_chat(src, "Your body was unable to regenerate, what few living cells remain require additional nutrients to complete the process.") revive_ready = REVIVING_READY //reset their cooldown -<<<<<<< HEAD - clear_alert("regen") // CHOMPEdit: Regen -======= clear_alert("regen") ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /mob/living/carbon/human/proc/hasnutriment() if (bloodstr.has_reagent("nutriment", 30) || src.bloodstr.has_reagent("protein", 15)) //protein needs half as much. For reference, a steak contains 9u protein. @@ -149,11 +117,7 @@ chimera_hatch() adjustBrainLoss(10) // if they're reviving from dead, they come back with 10 brainloss on top of whatever's unhealed. visible_message("

The lifeless husk of [src] bursts open, revealing a new, intact copy in the pool of viscera.

") //Bloody hell... -<<<<<<< HEAD - clear_alert("hatch") // CHOMPEdit: Regen -======= clear_alert("hatch") ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol return //Don't have nutriment to hatch! Or you somehow died in between completing your revive and hitting hatch. @@ -161,21 +125,13 @@ to_chat(src, "Your body was unable to regenerate, what few living cells remain require additional nutrients to complete the process.") verbs -= /mob/living/carbon/human/proc/hatch revive_ready = REVIVING_READY //reset their cooldown they can try again when they're given a kickstart -<<<<<<< HEAD - clear_alert("hatch") // CHOMPEdit: Regen -======= clear_alert("hatch") ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Alive when hatching else chimera_hatch() visible_message("

The dormant husk of [src] bursts open, revealing a new, intact copy in the pool of viscera.

") //Bloody hell... -<<<<<<< HEAD - clear_alert("hatch") // CHOMPEdit: Regen -======= clear_alert("hatch") ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /mob/living/carbon/human/proc/chimera_hatch() verbs -= /mob/living/carbon/human/proc/hatch @@ -210,10 +166,6 @@ playsound(T, 'sound/effects/mob_effects/xenochimera/hatch.ogg', 50) revive_ready = world.time + 10 MINUTES //set the cooldown CHOMPEdit: Reduced this to 10 minutes, you're playing with fire if you're reviving that often. -<<<<<<< HEAD - // CHOMPEdit End -======= ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol /mob/living/carbon/human/proc/revivingreset() // keep this as a debug proc or potential future use revive_ready = REVIVING_READY From 44a98db35c0c17ed67050e88b26d37077de1a847 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 22:01:27 -0700 Subject: [PATCH 21/24] powder that makes you say yes --- .../species/station/station_special_vr.dm | 34 ------------------- 1 file changed, 34 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm index 15b03c3ace..5e099d6dce 100644 --- a/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm +++ b/code/modules/mob/living/carbon/human/species/station/station_special_vr.dm @@ -27,13 +27,9 @@ /mob/living/carbon/human/proc/sonar_ping, /mob/living/carbon/human/proc/tie_hair, /mob/living/proc/flying_toggle, -<<<<<<< HEAD /mob/living/proc/start_wings_hovering, /mob/living/carbon/human/proc/lick_wounds) //Xenochimera get all the special verbs since they can't select traits. // CHOMPEdit: Lick Wounds Verb -======= - /mob/living/proc/start_wings_hovering) //Xenochimera get all the special verbs since they can't select traits. ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol virus_immune = 1 // They practically ARE one. min_age = 18 @@ -59,11 +55,7 @@ //primitive_form = "Farwa" spawn_flags = SPECIES_CAN_JOIN | SPECIES_IS_WHITELISTED | SPECIES_WHITELIST_SELECTABLE//Whitelisted as restricted is broken. -<<<<<<< HEAD - flags = NO_SCAN | NO_INFECT // | NO_DEFIB // Dying as a chimera is, quite literally, a death sentence. Well, if it wasn't for their revive, that is. CHOMPEdit: Leaving NO_DEFIB there for the future. // CHOMPEdit: Adds flags -======= flags = NO_SCAN | NO_INFECT // | NO_DEFIB // Dying as a chimera is, quite literally, a death sentence. Well, if it wasn't for their revive, that is. Leaving NO_DEFIB there for the future/in case reversion to old 'chimera no-defib. ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol appearance_flags = HAS_HAIR_COLOR | HAS_LIPS | HAS_UNDERWEAR | HAS_SKIN_COLOR | HAS_EYE_COLOR genders = list(MALE, FEMALE, PLURAL, NEUTER) @@ -96,18 +88,10 @@ H.weakened = 5 H.canmove = 0 H.does_not_breathe = TRUE -<<<<<<< HEAD - var/regen_sounds = H.regen_sounds // CHOMPEdit Start: Regen sounds/etc - if(prob(2)) // 2% chance of playing squelchy noise while reviving, which is run roughly every 2 seconds/tick while regenerating. - playsound(H, pick(regen_sounds), 30) - H.visible_message("

[H.name]'s motionless form shudders grotesquely, rippling unnaturally.

") - // CHOMPEdit End -======= var/regen_sounds = H.regen_sounds if(prob(2)) // 2% chance of playing squelchy noise while reviving, which is run roughly every 2 seconds/tick while regenerating. playsound(H, pick(regen_sounds), 30) H.visible_message("

[H.name]'s motionless form shudders grotesquely, rippling unnaturally.

") ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Cold/pressure effects when not regenerating else @@ -227,13 +211,8 @@ feral++ else feral = max(0,--feral) -<<<<<<< HEAD - - // Being in a belly or in the darkness decreases stress further. :9 -======= // Being in a belly or in the darkness decreases stress further. Helps mechanically reward players for staying in darkness + RP'ing appropriately. :9 ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol var/turf/T = get_turf(H) if(feral && (isbelly(H.loc) || T.get_lumcount() <= 0.1)) feral = max(0,--feral) @@ -253,11 +232,7 @@ H.shock_stage = max(H.shock_stage-(feral/20), 0) //Handle light/dark areas -<<<<<<< HEAD - // var/turf/T = get_turf(H) // CHOMPEdit: Moved up to before the in-belly/dark combined check, should still safely reach here just fine. -======= // var/turf/T = get_turf(H) // Moved up to before the in-belly/dark combined check, should still safely reach here just fine. ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol if(!T) update_xenochimera_hud(H, danger, feral_state) return //Nullspace @@ -270,11 +245,7 @@ var/list/nearby = H.living_mobs(world.view) //Not in the dark, or a belly, and out in the open. -<<<<<<< HEAD - if(!darkish && isturf(H.loc) && !isbelly(H.loc)) // CHOMPEdit: added specific check for if in belly -======= if(!darkish && isturf(H.loc) && !isbelly(H.loc)) // Added specific check for if in belly ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol //Always handle feral if nobody's around and not in the dark. if(!nearby.len) @@ -288,13 +259,8 @@ update_xenochimera_hud(H, danger, feral_state) return -<<<<<<< HEAD - // In the darkness, "hidden", or in a belly. No need for custom scene-protection checks as it's just an occational infomessage. - if(darkish || !isturf(H.loc) || isbelly(H.loc)) // CHOMPEdit: added specific check for if in belly -======= // In the darkness, or "hidden", or in a belly. No need for custom scene-protection checks as it's just an occational infomessage. if(darkish || !isturf(H.loc) || isbelly(H.loc)) // Specific check for if in belly. !isturf should do this, but JUST in case. ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol // If hurt, tell 'em to heal up if (shock) to_chat(H,"This place seems safe, secure, hidden, a place to lick your wounds and recover...") From d29470aa3d7a52d922db12c3b253100477f02d2d Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 22:02:07 -0700 Subject: [PATCH 22/24] powder that makes you say yes --- code/modules/vore/eating/living_vr.dm | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm index 9bb4f90dda..38a10d88ec 100644 --- a/code/modules/vore/eating/living_vr.dm +++ b/code/modules/vore/eating/living_vr.dm @@ -20,11 +20,7 @@ var/vore_egg_type = "egg" // Default egg type. var/feral = 0 // How feral the mob is, if at all. Does nothing for non xenochimera at the moment. var/revive_ready = REVIVING_READY // Only used for creatures that have the xenochimera regen ability, so far. -<<<<<<< HEAD - var/revive_finished = 0 // CHOMPEdit: Only used for xenochimera regen, allows us to find out when the regen will finish. -======= var/revive_finished = 0 // Only used for xenochimera regen, allows us to find out when the regen will finish. ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol var/metabolism = 0.0015 var/vore_taste = null // What the character tastes like var/vore_smell = null // What the character smells like @@ -42,20 +38,10 @@ var/adminbus_eat_minerals = FALSE // This creature subsists on a diet of pure adminium. var/vis_height = 32 // Sprite height used for resize features. var/show_vore_fx = TRUE // Show belly fullscreens -<<<<<<< HEAD var/latejoin_vore = FALSE //CHOMPedit: If enabled, latejoiners can spawn into this, assuming they have a client var/latejoin_prey = FALSE //CHOMPedit: If enabled, latejoiners can spawn ontop of and instantly eat the victim var/noisy_full = FALSE //CHOMPedit: Enables belching when a mob has overeaten var/bellies_loaded = FALSE //CHOMPedit: On-demand belly loading - var/regen_sounds = list( - 'sound/effects/mob_effects/xenochimera/regen_1.ogg', - 'sound/effects/mob_effects/xenochimera/regen_2.ogg', - 'sound/effects/mob_effects/xenochimera/regen_3.ogg', - 'sound/effects/mob_effects/xenochimera/regen_4.ogg', - 'sound/effects/mob_effects/xenochimera/regen_5.ogg' - ) - // CHOMPEdit: Regen Sounds -======= var/regen_sounds = list( 'sound/effects/mob_effects/xenochimera/regen_1.ogg', 'sound/effects/mob_effects/xenochimera/regen_2.ogg', @@ -63,7 +49,6 @@ 'sound/effects/mob_effects/xenochimera/regen_3.ogg', 'sound/effects/mob_effects/xenochimera/regen_5.ogg' ) ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol // // Hook for generic creation of stuff on new creatures From 5e007bd3d9edf61aaefabc3c904b8e395c9a90a0 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 22:06:35 -0700 Subject: [PATCH 23/24] powder that makes you say yes --- code/modules/mob/living/carbon/lick_wounds.dm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/code/modules/mob/living/carbon/lick_wounds.dm b/code/modules/mob/living/carbon/lick_wounds.dm index 9579bcf5ec..51edc1870d 100644 --- a/code/modules/mob/living/carbon/lick_wounds.dm +++ b/code/modules/mob/living/carbon/lick_wounds.dm @@ -1,8 +1,4 @@ -<<<<<<< HEAD -/mob/living/carbon/human/proc/lick_wounds(var/mob/living/carbon/M) //YWedit, originally, living/carbon/M in living_mobs(1), However, living_mobs does not include src as possible target. -======= /mob/living/carbon/human/proc/lick_wounds(var/mob/living/carbon/M) // Allows the user to lick themselves. Given how rarely this trait is used, I don't see an issue with a slight buff. ->>>>>>> 084441d48b... Merge pull request #12558 from Rykka-Stormheart/shep-dev-xenochimera-qol set name = "Lick Wounds" set category = "Abilities" set desc = "Disinfect and heal small wounds with your saliva." From 743e6bfae43b35694727ad46764152cb5234f3e1 Mon Sep 17 00:00:00 2001 From: Razgriz Date: Wed, 30 Mar 2022 23:27:57 -0700 Subject: [PATCH 24/24] powder that makes you say yes --- .../reagents/reactions/instant/instant_vr.dm | 237 ------------------ 1 file changed, 237 deletions(-) diff --git a/code/modules/reagents/reactions/instant/instant_vr.dm b/code/modules/reagents/reactions/instant/instant_vr.dm index 010110fa6e..7780e6c59c 100644 --- a/code/modules/reagents/reactions/instant/instant_vr.dm +++ b/code/modules/reagents/reactions/instant/instant_vr.dm @@ -212,246 +212,9 @@ /////////////////////////////// //SLIME-RELATED BELOW HERE/////// /////////////////////////////// -<<<<<<< HEAD -/decl/chemical_reaction/instant/slime_food - name = "Slime Bork" - id = "m_tele2" - result = null - required_reagents = list("phoron" = 10, "slimejelly" = 5, "nutriment" = 20) - result_amount = 1 - -/decl/chemical_reaction/instant/slime_food/on_reaction(var/datum/reagents/holder) - var/list/borks = subtypesof(/obj/item/weapon/reagent_containers/food/snacks) - - - playsound(holder.my_atom, 'sound/effects/phasein.ogg', 100, 1) - - for(var/i = 1, i <= 4 + rand(1,2), i++) - var/chosen = pick(borks) - var/obj/B = new chosen - if(B) - B.loc = get_turf(holder.my_atom) - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(B, pick(NORTH,SOUTH,EAST,WEST)) - -/decl/chemical_reaction/instant/materials - name = "Slime materials" - id = "slimematerial" - result = null - required_reagents = list("phoron" = 20, "slimejelly" = 40, "aluminum" = 20) //Woah there! You have the possibility of making diamonds! 8 ground up slimes required for one of these, and you still have a 10% chance for it to fail. - result_amount = 1 - -/decl/chemical_reaction/instant/materials/on_reaction(var/datum/reagents/holder) - var/fail_chance = rand(1,1000) - if(fail_chance == 1) // 0.1% chance of exploding, so scientists don't exclusively abuse this to obtain materials. - for(var/mob/O in viewers(get_turf(holder.my_atom), null)) - O.show_message(text("The solution begins to vibrate violently!"), 1) // It was at this moment, the Xenobiologist knew... he fucked up. - sleep(30) - playsound(holder.my_atom, 'sound/items/Welder2.ogg', 100, 1) - for(var/mob/O in viewers(get_turf(holder.my_atom), null)) - O.show_message(text("The reaction begins to rapidly sizzle and swell outwards!"), 1) - sleep(20) - explosion(get_turf(holder.my_atom), 0 ,4, 8) //Enough to cause severe damage in the area, but not so much that it'll instantly gib the person. - empulse(get_turf(holder.my_atom), 3, 7) //Uh oh, it produced some uranium, too! EMP blast! - return - - if(fail_chance < 101) // 10% chance of it not working at all. - playsound(holder.my_atom, 'sound/items/Welder.ogg', 100, 1) - for(var/mob/O in viewers(get_turf(holder.my_atom), null)) - O.show_message(text("The slime core fizzles disappointingly."), 1) - return - - var/blocked = list( - /obj/item/stack/material, //Technical stacks - /obj/item/stack/hairlesshide, //Useless leather production steps - /obj/item/stack/wetleather, - /obj/item/stack/material/algae/ten) //Why is this one even a separate thing - blocked += typesof(/obj/item/stack/material/cyborg) //Borg matter synths, should only exist in borgs - blocked += typesof(/obj/item/stack/animalhide) //Hides which are only used for leather production anyway - - var/rare_types = list( - /obj/item/stack/material/morphium, //Complex materials requiring Particle Smasher to create - /obj/item/stack/material/morphium/hull, - /obj/item/stack/material/valhollide, - /obj/item/stack/material/supermatter) - - var/list/material = typesof(/obj/item/stack/material) - blocked - - playsound(holder.my_atom, 'sound/effects/phasein.ogg', 100, 1) - - var/spawn_amount = rand(1,50) - var/chosen = pick(material) - if(chosen in rare_types) - spawn_amount = rand(1,15) - new chosen(get_turf(holder.my_atom), spawn_amount) - -/decl/chemical_reaction/instant/slimelight - name = "Slime Glow" - id = "m_glow" - result = null - required_reagents = list("phoron" = 5, "slimejelly" = 5, "water" = 10) //Takes 10 water so it doesn't mess with the frost oil. - result_amount = 1 - -/decl/chemical_reaction/instant/slimelight/on_reaction(var/datum/reagents/holder) - for(var/mob/O in viewers(get_turf(holder.my_atom), null)) - O.show_message(text(" The contents of the slime core harden and begin to emit a warm, bright light."), 1) - var/obj/item/device/flashlight/slime/F = new /obj/item/device/flashlight/slime - F.loc = get_turf(holder.my_atom) - - -/decl/chemical_reaction/instant/slimephoron - name = "Slime Phoron" - id = "m_plasma" - result = null - required_reagents = list("phoron" = 20, "uranium" = 20, "slimejelly" = 20) - result_amount = 1 - -/decl/chemical_reaction/instant/slimephoron/on_reaction(var/datum/reagents/holder) - new /obj/item/stack/material/phoron(get_turf(holder.my_atom), 10) - -/decl/chemical_reaction/instant/slimefreeze - name = "Slime Freeze" - id = "m_freeze" - result = null - required_reagents = list("phoron" = 10, "coolant" = 10, "slimejelly" = 10) - result_amount = 1 - -/decl/chemical_reaction/instant/slimefreeze/on_reaction(var/datum/reagents/holder) - for(var/mob/O in viewers(get_turf(holder.my_atom), null)) - O.show_message(text("The slime extract begins to vibrate violently!"), 1) - sleep(50) - playsound(holder.my_atom, 'sound/effects/phasein.ogg', 100, 1) - for(var/mob/living/M in range (get_turf(holder.my_atom), 7)) - M.bodytemperature -= 140 - to_chat(M, " You suddenly feel a chill!") - -/decl/chemical_reaction/instant/slimefrost - name = "Slime Frost Oil" - id = "m_frostoil" - result = "frostoil" - required_reagents = list("phoron" = 5, "slimejelly" = 5, "water" = 5, "coolant" = 5) - result_amount = 10 - -/decl/chemical_reaction/instant/slimefire - name = "Slime fire" - id = "m_fire" - result = null - required_reagents = list("phoron" = 60, "slimejelly" = 30, "potassium" = 30) - result_amount = 1 - -/decl/chemical_reaction/instant/slimefire/on_reaction(var/datum/reagents/holder) - for(var/mob/O in viewers(get_turf(holder.my_atom), null)) - O.show_message(text("The slime extract begins to vibrate violently!"), 1) - sleep(50) - var/turf/location = get_turf(holder.my_atom.loc) - for(var/turf/simulated/floor/target_tile in range(0,location)) - target_tile.assume_gas("phoron", 25, 1400) - spawn (0) target_tile.hotspot_expose(700, 400) - -======= ->>>>>>> ed28fbac1a... Merge pull request #12552 from Heroman3003/xenobio-rework /decl/chemical_reaction/instant/slimeify name = "Advanced Mutation Toxin" id = "advmutationtoxin2" result = "advmutationtoxin" required_reagents = list("phoron" = 15, "slimejelly" = 15, "mutationtoxin" = 15) //In case a xenobiologist wants to become a fully fledged slime person. -<<<<<<< HEAD result_amount = 1 - -/decl/chemical_reaction/instant/slimeheal //A slime healing mixture. Why not. - name = "Slime Health" - id = "slimeheal" - result = "null" - required_reagents = list("phoron" = 10, "bicaridine" = 10, "kelotane" = 10, "inaprovaline" = 10, "slimejelly" = 10) - -/decl/chemical_reaction/instant/slimeheal/on_reaction(var/datum/reagents/holder, var/created_volume) - for (var/mob/living/carbon/C in viewers(get_turf(holder.my_atom), null)) - to_chat(C, "A wave of energy suddenly invigorates you.") - C.adjustBruteLoss(-25) - C.adjustFireLoss(-25) - C.adjustToxLoss(-25) - C.adjustOxyLoss(-25) - C.adjustBrainLoss(-25) - C.adjustCloneLoss(-25) - C.updatehealth() - -/decl/chemical_reaction/instant/slimejelly - name = "Slime Jam" - id = "m_jam" - result = "slimejelly" - required_reagents = list("phoron" = 20, "sugar" = 50, "lithium" = 50) //In case a xenobiologist is impatient and is willing to drain their dispenser resources, along with plasma! - result_amount = 5 - -/decl/chemical_reaction/instant/slimevore - name = "Slime Vore" // Hostile vore mobs only - id = "m_tele" - result = null - required_reagents = list("phoron" = 20, "nutriment" = 20, "sugar" = 20, "mutationtoxin" = 20) //Can't do slime jelly as it'll conflict with another, but mutation toxin will do. - result_amount = 1 - -/decl/chemical_reaction/instant/slimevore/on_reaction(var/datum/reagents/holder) - var/mob_path = /mob/living/simple_mob - var/blocked = list( //List of things we do NOT want to spawn - /mob/living/simple_mob, //Technical parent mobs - /mob/living/simple_mob/animal, - /mob/living/simple_mob/animal/passive, - /mob/living/simple_mob/animal/space, - /mob/living/simple_mob/blob, - /mob/living/simple_mob/mechanical, - /mob/living/simple_mob/mechanical/mecha, - /mob/living/simple_mob/slime, - /mob/living/simple_mob/vore, - /mob/living/simple_mob/vore/aggressive, - /mob/living/simple_mob/illusion, //Other technical mobs - /mob/living/simple_mob/animal/passive/crab/Coffee, //Unique pets/named mobs - /mob/living/simple_mob/animal/passive/cat/runtime, - /mob/living/simple_mob/animal/passive/cat/bones, - /mob/living/simple_mob/animal/passive/cat/tabiranth, - /mob/living/simple_mob/animal/passive/dog/corgi/puppy/Bockscar, - /mob/living/simple_mob/animal/passive/dog/corgi/Ian, - /mob/living/simple_mob/animal/passive/dog/corgi/Lisa, - /mob/living/simple_mob/animal/passive/dog/tamaskan/Spice, - /mob/living/simple_mob/animal/passive/fox/renault, - /mob/living/simple_mob/animal/passive/bird/azure_tit/tweeter, - /mob/living/simple_mob/animal/passive/bird/parrot/poly, - /mob/living/simple_mob/animal/sif/fluffy, - /mob/living/simple_mob/animal/sif/fluffy/silky, - /mob/living/simple_mob/animal/passive/snake/python/noodle, - /mob/living/simple_mob/slime/xenobio/rainbow/kendrick, - /mob/living/simple_mob/animal/space/space_worm, //Space Worm parts that aren't proper heads - /mob/living/simple_mob/animal/space/space_worm/head/severed, - /mob/living/simple_mob/animal/borer, //Event/player-control-only mobs - /mob/living/simple_mob/vore/hostile/morph - )//exclusion list for things you don't want the reaction to create. - blocked += typesof(/mob/living/simple_mob/mechanical/ward) //Wards that should be created with ward items, are mobs mostly on technicalities - blocked += typesof(/mob/living/simple_mob/construct) //Should only exist - blocked += typesof(/mob/living/simple_mob/vore/demon) //as player-controlled - blocked += typesof(/mob/living/simple_mob/shadekin) //and/or event things - blocked += typesof(/mob/living/simple_mob/horror) - var/list/voremobs = typesof(mob_path) - blocked // list of possible hostile mobs - - playsound(holder.my_atom, 'sound/effects/phasein.ogg', 100, 1) - var/spawn_count = rand(1,3) - for(var/i = 1, i <= spawn_count, i++) - var/chosen = pick(voremobs) - var/mob/living/simple_mob/C = new chosen - C.faction = "slimesummon" - C.loc = get_turf(holder.my_atom) - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(C, pick(NORTH,SOUTH,EAST,WEST)) - -/decl/chemical_reaction/instant/slime/sapphire_mutation - name = "Slime Mutation Toxins" - id = "slime_mutation_tox" - result = "mutationtoxin" - required_reagents = list("blood" = 5) - result_amount = 30 - required = /obj/item/slime_extract/sapphire - -/decl/chemical_reaction/instant/biomass - result_amount = 6 // Roughly 120u per phoron sheet -======= - result_amount = 1 ->>>>>>> ed28fbac1a... Merge pull request #12552 from Heroman3003/xenobio-rework