From c35a32107bab5f403226e3694852962e0285c717 Mon Sep 17 00:00:00 2001 From: TheGreatKitsune <88862343+TheGreatKitsune@users.noreply.github.com> Date: Sat, 11 Mar 2023 22:40:37 -0600 Subject: [PATCH 01/14] Fixes item loss when dying as a prommie blob --- .../living/carbon/human/species/station/prommie_blob.dm | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm b/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm index 77928ed46f..cd439fd246 100644 --- a/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm +++ b/code/modules/mob/living/carbon/human/species/station/prommie_blob.dm @@ -63,6 +63,12 @@ /mob/living/simple_mob/slime/promethean/Destroy() humanform = null + drop_l_hand() + drop_r_hand() + mob_radio.forceMove(loc) + mob_radio = null + myid.forceMove(loc) + myid = null vore_organs = null vore_selected = null set_light(0) @@ -70,6 +76,8 @@ /mob/living/carbon/human/Destroy() if(stored_blob) + stored_blob.l_hand.forceMove(loc) + stored_blob.r_hand.forceMove(loc) stored_blob = null qdel(stored_blob) return ..() From e77c820fe31507d443fb2d70eace3eb1ef0df9f6 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Thu, 23 Mar 2023 01:06:29 +0000 Subject: [PATCH 02/14] phase 1 --- .../living/carbon/human/species/species_vr.dm | 3 + .../species/station/traits_vr/neutral.dm | 27 +++++ code/modules/reagents/reagents/dispenser.dm | 104 ++++++++++-------- 3 files changed, 90 insertions(+), 44 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/species_vr.dm b/code/modules/mob/living/carbon/human/species/species_vr.dm index 9d8703d617..ccd2a764be 100644 --- a/code/modules/mob/living/carbon/human/species/species_vr.dm +++ b/code/modules/mob/living/carbon/human/species/species_vr.dm @@ -8,6 +8,9 @@ var/organic_food_coeff = 1 var/synthetic_food_coeff = 0 + var/robo_ethanol_proc = 0 //can we get fuel from booze, as a synth? + var/robo_ethanol_drunk = 0 //can we get *drunk* from booze, as a synth? + //var/vore_numbing = 0 var/metabolism = 0.0015 var/lightweight = FALSE //Oof! Nonhelpful bump stumbles. diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index 1c3818324a..9781281c16 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -148,6 +148,33 @@ can_take = SYNTHETICS var_changes = list("organic_food_coeff" = 0, "synthetic_food_coeff" = 0.25) +/datum/trait/neutral/synth_ethanolburner + name = "Ethanol Burner" + desc = "You are able to gain energy through consuming and processing alcohol. The more alcoholic it is, the more energy you gain. You still can't get drunk though." + cost = 0 + custom_only = FALSE + can_take = SYNTHETICS + var_changes = list("robo_ethanol_proc" = 1) + excludes = list(/datum/trait/neutral/synth_ethanol_crude,/datum/trait/neutral/synth_ethanol_sim) + +/datum/trait/neutral/synth_ethanol_crude + name = "Ethanol Burner (Crude)" + desc = "You are able to gain energy through consuming and processing alcohol. The more alcoholic it is, the more energy you gain. You will suffer almost all the effects of drinking it as well, though you can't die of liver failure." + cost = 0 + custom_only = FALSE + can_take = SYNTHETICS + var_changes = list("robo_ethanol_proc" = 1, "robo_ethanol_drunk" = 1) + excludes = list(/datum/trait/neutral/synth_ethanolburner,/datum/trait/neutral/synth_ethanol_sim) + +/datum/trait/neutral/synth_ethanol_sim + name = "Ethanol Simulator" + desc = "An unusual modification allows your synthetic body to simulate all but the lethal effects of ingested alcohols." + cost = 0 + custom_only = FALSE + can_take = SYNTHETICS + var_changes = list("robo_ethanol_drunk" = 1) + excludes = list(/datum/trait/neutral/synth_ethanolburner,/datum/trait/neutral/synth_ethanol_crude) + /datum/trait/neutral/glowing_eyes name = "Glowing Eyes" desc = "Your eyes show up above darkness. SPOOKY! And kinda edgey too." diff --git a/code/modules/reagents/reagents/dispenser.dm b/code/modules/reagents/reagents/dispenser.dm index abc0522886..b59f51019e 100644 --- a/code/modules/reagents/reagents/dispenser.dm +++ b/code/modules/reagents/reagents/dispenser.dm @@ -106,6 +106,8 @@ glass_desc = "A well-known alcohol with a variety of applications." allergen_factor = 0.5 //simulates mixed drinks containing less of the allergen, as they have only a single actual reagent unlike food + affects_robots = 1 //VOREStation Addition/Edit + /datum/reagent/ethanol/touch_mob(var/mob/living/L, var/amount) ..() if(istype(L)) @@ -124,40 +126,52 @@ strength_mod = 0 if(alien == IS_SLIME) strength_mod *= 2 // VOREStation Edit - M.adjustToxLoss(removed) - - M.add_chemical_effect(CE_ALCOHOL, 1) + + //VOREStation Edits Start var/effective_dose = dose * strength_mod * (1 + volume/60) //drinking a LOT will make you go down faster + if(M.species.robo_ethanol_proc) //failsafe to make sure boozy-bots don't get rekt, since they process out of bloodstream + effective_dose = dose - if(effective_dose >= strength) // Early warning - M.make_dizzy(18) // It is decreased at the speed of 3 per tick - if(effective_dose >= strength * 2) // Slurring - M.slurring = max(M.slurring, 90) - if(effective_dose >= strength * 3) // Confusion - walking in random directions - M.Confuse(60) - if(effective_dose >= strength * 4) // Blurry vision - M.eye_blurry = max(M.eye_blurry, 30) - if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep - M.drowsyness = max(M.drowsyness, 60) - if(effective_dose >= strength * 6) // Toxic dose - M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity*3) - if(effective_dose >= strength * 7) // Pass out - M.Paralyse(60) - M.Sleeping(90) + if(M.isSynthetic() && M.nutrition < 500 && M.species.robo_ethanol_proc) + M.adjust_nutrition(round(max(0,80 - strength) * removed)/30) //the stronger it is, the more juice you gain; really weak stuff gets you nothing + to_world("[M] gained [round(max(0,80-strength))] multiplied by [removed], divided by 30 = [round(max(0,80 - strength) * removed)/30] nutrition this processing tick.") - if(druggy != 0) - M.druggy = max(M.druggy, druggy*3) + if(!(M.isSynthetic()) || M.species.robo_ethanol_drunk) + M.add_chemical_effect(CE_ALCOHOL, 1) - if(adj_temp > 0 && M.bodytemperature < targ_temp) // 310 is the normal bodytemp. 310.055 - M.bodytemperature = min(targ_temp, M.bodytemperature + (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) - if(adj_temp < 0 && M.bodytemperature > targ_temp) - M.bodytemperature = min(targ_temp, M.bodytemperature - (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + if(effective_dose >= strength) // Early warning + M.make_dizzy(18) // It is decreased at the speed of 3 per tick + if(effective_dose >= strength * 2) // Slurring + M.slurring = max(M.slurring, 90) + if(effective_dose >= strength * 3) // Confusion - walking in random directions + M.Confuse(60) + if(effective_dose >= strength * 4) // Blurry vision + M.eye_blurry = max(M.eye_blurry, 30) - if(halluci) - M.hallucination = max(M.hallucination, halluci*3) + if(druggy != 0) + M.druggy = max(M.druggy, druggy*3) + + if(adj_temp > 0 && M.bodytemperature < targ_temp) // 310 is the normal bodytemp. 310.055 + M.bodytemperature = min(targ_temp, M.bodytemperature + (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + if(adj_temp < 0 && M.bodytemperature > targ_temp) + M.bodytemperature = min(targ_temp, M.bodytemperature - (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + + if(halluci) + M.hallucination = max(M.hallucination, halluci*3) + + if(!(M.isSynthetic()) || (M.species.robo_ethanol_drunk && M.species.robo_ethanol_proc)) + if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep + M.drowsyness = max(M.drowsyness, 60) + if(effective_dose >= strength * 6) // Toxic dose + M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity*3) + if(effective_dose >= strength * 7) // Pass out + M.Paralyse(60) + M.Sleeping(90) + //VOREStation Edits End /datum/reagent/ethanol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) if(issmall(M)) removed *= 2 - if(!(M.species.allergens & allergen_type)) //assuming it doesn't cause a horrible reaction, we get the nutrition effects + if(!(M.species.allergens & allergen_type) && !(M.isSynthetic())) //assuming it doesn't cause a horrible reaction, we get the nutrition effects - VOREStation Edit (added synth check) M.adjust_nutrition(nutriment_factor * removed) var/strength_mod = 1 * M.species.alcohol_mod if(alien == IS_SKRELL) @@ -171,26 +185,28 @@ if(alien == IS_SLIME) strength_mod *= 2 // VOREStation Edit - M.adjustToxLoss(removed * 2) - M.add_chemical_effect(CE_ALCOHOL, 1) + if(!(M.isSynthetic())) + M.add_chemical_effect(CE_ALCOHOL, 1) - if(dose * strength_mod >= strength) // Early warning - M.make_dizzy(6) // It is decreased at the speed of 3 per tick - if(dose * strength_mod >= strength * 2) // Slurring - M.slurring = max(M.slurring, 30) - if(dose * strength_mod >= strength * 3) // Confusion - walking in random directions - M.Confuse(20) - if(dose * strength_mod >= strength * 4) // Blurry vision - M.eye_blurry = max(M.eye_blurry, 10) - if(dose * strength_mod >= strength * 5) // Drowsyness - periodically falling asleep - M.drowsyness = max(M.drowsyness, 20) - if(dose * strength_mod >= strength * 6) // Toxic dose - M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) - if(dose * strength_mod >= strength * 7) // Pass out - M.Paralyse(20) - M.Sleeping(30) + if(dose * strength_mod >= strength) // Early warning + M.make_dizzy(6) // It is decreased at the speed of 3 per tick + if(dose * strength_mod >= strength * 2) // Slurring + M.slurring = max(M.slurring, 30) + if(dose * strength_mod >= strength * 3) // Confusion - walking in random directions + M.Confuse(20) + if(dose * strength_mod >= strength * 4) // Blurry vision + M.eye_blurry = max(M.eye_blurry, 10) + if(dose * strength_mod >= strength * 5) // Drowsyness - periodically falling asleep + M.drowsyness = max(M.drowsyness, 20) + if(dose * strength_mod >= strength * 6) // Toxic dose + M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) + if(dose * strength_mod >= strength * 7) // Pass out + M.Paralyse(20) + M.Sleeping(30) - if(druggy != 0) - M.druggy = max(M.druggy, druggy) + if(druggy != 0) + M.druggy = max(M.druggy, druggy) + //VOREStation Edits End if(adj_temp > 0 && M.bodytemperature < targ_temp) // 310 is the normal bodytemp. 310.055 M.bodytemperature = min(targ_temp, M.bodytemperature + (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) From 9edbbec9976eee5bf5981729bcd935ae7f59f9c3 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Thu, 23 Mar 2023 02:07:14 +0000 Subject: [PATCH 03/14] phase 2 --- code/modules/reagents/reagents/dispenser.dm | 84 +++++++++------------ 1 file changed, 36 insertions(+), 48 deletions(-) diff --git a/code/modules/reagents/reagents/dispenser.dm b/code/modules/reagents/reagents/dispenser.dm index c6a83c5736..55fc587f78 100644 --- a/code/modules/reagents/reagents/dispenser.dm +++ b/code/modules/reagents/reagents/dispenser.dm @@ -106,7 +106,7 @@ glass_desc = "A well-known alcohol with a variety of applications." allergen_factor = 1 //simulates mixed drinks containing less of the allergen, as they have only a single actual reagent unlike food - affects_robots = 1 //VOREStation Addition/Edit + affects_robots = 1 //kiss my shiny metal ass /datum/reagent/ethanol/touch_mob(var/mob/living/L, var/amount) ..() @@ -117,26 +117,13 @@ if(issmall(M)) removed *= 2 - if(alien == IS_SLIME) - strength_mod *= 2 - // VOREStation Edit - M.adjustToxLoss(removed) - var/strength_mod = 3 * M.species.chem_strength_alcohol //Alcohol is 3x stronger when injected into the veins. if(!strength_mod) return - M.add_chemical_effect(CE_ALCOHOL, 1) - - var/effective_dose = dose * strength_mod * (1 + volume/60) //drinking a LOT will make you go down faster - if(M.species.robo_ethanol_proc) //failsafe to make sure boozy-bots don't get rekt, since they only process out of bloodstream rather than ingested - effective_dose = dose * M.species.chem_strength_alcohol - - if(M.isSynthetic() && M.nutrition < 500 && M.species.robo_ethanol_proc) - M.adjust_nutrition(round(max(0,80 - strength) * removed)/30) //the stronger it is, the more juice you gain; really weak stuff gets you nothing - to_world("[M] gained [round(max(0,80-strength))] multiplied by [removed], divided by 30 = [round(max(0,80 - strength) * removed)/30] nutrition this processing tick.") - - if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + if(!(M.isSynthetic())) M.add_chemical_effect(CE_ALCOHOL, 1) + var/effective_dose = dose * strength_mod * (1 + volume/60) //drinking a LOT will make you go down faster if(effective_dose >= strength) // Early warning M.make_dizzy(18) // It is decreased at the speed of 3 per tick @@ -146,6 +133,13 @@ M.Confuse(60) if(effective_dose >= strength * 4) // Blurry vision M.eye_blurry = max(M.eye_blurry, 30) + if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep + M.drowsyness = max(M.drowsyness, 60) + if(effective_dose >= strength * 6) // Toxic dose + M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity*3) + if(effective_dose >= strength * 7) // Pass out + M.Paralyse(60) + M.Sleeping(90) if(druggy != 0) M.druggy = max(M.druggy, druggy*3) @@ -158,57 +152,51 @@ if(halluci) M.hallucination = max(M.hallucination, halluci*3) - if((M.species.robo_ethanol_drunk && M.species.robo_ethanol_proc) || !(M.isSynthetic())) - if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep - M.drowsyness = max(M.drowsyness, 60) - if(effective_dose >= strength * 6) // Toxic dose - M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity*3) - if(effective_dose >= strength * 7) // Pass out - M.Paralyse(60) - M.Sleeping(90) - //VOREStation Edits End - /datum/reagent/ethanol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) - if(issmall(M)) removed *= 2 - if(!(M.species.allergens & allergen_type) && !(M.isSynthetic())) //assuming it doesn't cause a horrible reaction, we get the nutrition effects - VOREStation Edit (added synth check) + if(issmall(M)) + removed *= 2 - if(!(M.species.allergens & allergen_type)) //assuming it doesn't cause a horrible reaction, we get the nutrition effects + if(!(M.species.allergens & allergen_type) && !(M.isSynthetic())) //assuming it doesn't cause a horrible reaction, we get the nutrition effects - VOREStation Edit (added synth check) M.adjust_nutrition(nutriment_factor * removed) + if(M.isSynthetic() && M.nutrition < 500 && M.species.robo_ethanol_proc) + M.adjust_nutrition(round(max(0,80 - strength) * removed)/30) //the stronger it is, the more juice you gain; really weak stuff gets you nothing + to_world("[M] gained [round(max(0,80-strength))] multiplied by [removed], divided by 30 = [round(max(0,80 - strength) * removed)/30] nutrition this processing tick.") + var/effective_dose = dose * M.species.chem_strength_alcohol if(!effective_dose) return - if(!(M.isSynthetic())) + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) M.add_chemical_effect(CE_ALCOHOL, 1) - if(dose * strength_mod >= strength) // Early warning + if(effective_dose >= strength) // Early warning M.make_dizzy(6) // It is decreased at the speed of 3 per tick - if(dose * strength_mod >= strength * 2) // Slurring + if(effective_dose >= strength * 2) // Slurring M.slurring = max(M.slurring, 30) - if(dose * strength_mod >= strength * 3) // Confusion - walking in random directions + if(effective_dose >= strength * 3) // Confusion - walking in random directions M.Confuse(20) - if(dose * strength_mod >= strength * 4) // Blurry vision + if(effective_dose >= strength * 4) // Blurry vision M.eye_blurry = max(M.eye_blurry, 10) - if(dose * strength_mod >= strength * 5) // Drowsyness - periodically falling asleep - M.drowsyness = max(M.drowsyness, 20) - if(dose * strength_mod >= strength * 6) // Toxic dose - M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) - if(dose * strength_mod >= strength * 7) // Pass out - M.Paralyse(20) - M.Sleeping(30) + if((M.species.robo_ethanol_drunk && M.species.robo_ethanol_proc) || !(M.isSynthetic())) + if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep + M.drowsyness = max(M.drowsyness, 20) + if(effective_dose >= strength * 6) // Toxic dose + M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) + if(effective_dose >= strength * 7) // Pass out + M.Paralyse(20) + M.Sleeping(30) if(druggy != 0) M.druggy = max(M.druggy, druggy) - //VOREStation Edits End - if(adj_temp > 0 && M.bodytemperature < targ_temp) // 310 is the normal bodytemp. 310.055 - M.bodytemperature = min(targ_temp, M.bodytemperature + (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) - if(adj_temp < 0 && M.bodytemperature > targ_temp) - M.bodytemperature = min(targ_temp, M.bodytemperature - (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + if(halluci) + M.hallucination = max(M.hallucination, halluci) - if(halluci) - M.hallucination = max(M.hallucination, halluci) + if(adj_temp > 0 && M.bodytemperature < targ_temp) // 310 is the normal bodytemp. 310.055 + M.bodytemperature = min(targ_temp, M.bodytemperature + (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) + if(adj_temp < 0 && M.bodytemperature > targ_temp) + M.bodytemperature = min(targ_temp, M.bodytemperature - (adj_temp * TEMPERATURE_DAMAGE_COEFFICIENT)) /datum/reagent/ethanol/touch_obj(var/obj/O) ..() From 1e103f43958d90c8a979a8b232be12447be642ec Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Thu, 23 Mar 2023 02:25:24 +0000 Subject: [PATCH 04/14] Update dispenser.dm remove debug/testing output --- code/modules/reagents/reagents/dispenser.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/reagents/reagents/dispenser.dm b/code/modules/reagents/reagents/dispenser.dm index 55fc587f78..9602c36df9 100644 --- a/code/modules/reagents/reagents/dispenser.dm +++ b/code/modules/reagents/reagents/dispenser.dm @@ -161,7 +161,6 @@ if(M.isSynthetic() && M.nutrition < 500 && M.species.robo_ethanol_proc) M.adjust_nutrition(round(max(0,80 - strength) * removed)/30) //the stronger it is, the more juice you gain; really weak stuff gets you nothing - to_world("[M] gained [round(max(0,80-strength))] multiplied by [removed], divided by 30 = [round(max(0,80 - strength) * removed)/30] nutrition this processing tick.") var/effective_dose = dose * M.species.chem_strength_alcohol if(!effective_dose) From 1fd16b60b572fc0d85a71a1746b9785216e9cfaf Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Thu, 23 Mar 2023 09:08:24 +0000 Subject: [PATCH 05/14] phase 3 eh, who needs three traits? also, sanity checking on various boozetypes --- .../species/station/traits_vr/neutral.dm | 15 +- code/modules/reagents/reagents/dispenser.dm | 15 +- code/modules/reagents/reagents/food_drinks.dm | 127 +++++++++------- .../reagents/reagents/food_drinks_vr.dm | 139 +++++++++--------- 4 files changed, 154 insertions(+), 142 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm index dd39d19e9d..bf7f19c2a7 100644 --- a/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm +++ b/code/modules/mob/living/carbon/human/species/station/traits_vr/neutral.dm @@ -192,30 +192,19 @@ /datum/trait/neutral/synth_ethanolburner name = "Ethanol Burner" - desc = "You are able to gain energy through consuming and processing alcohol. The more alcoholic it is, the more energy you gain. You still can't get drunk though." + desc = "You are able to gain energy through consuming and processing alcohol. The more alcoholic it is, the more energy you gain. Doesn't allow you to get drunk by itself (for that, take Ethanol Simulator)." cost = 0 custom_only = FALSE can_take = SYNTHETICS var_changes = list("robo_ethanol_proc" = 1) - excludes = list(/datum/trait/neutral/synth_ethanol_crude,/datum/trait/neutral/synth_ethanol_sim) - -/datum/trait/neutral/synth_ethanol_crude - name = "Ethanol Burner (Crude)" - desc = "You are able to gain energy through consuming and processing alcohol. The more alcoholic it is, the more energy you gain. You will suffer almost all the effects of drinking it as well, though you can't die of liver failure." - cost = 0 - custom_only = FALSE - can_take = SYNTHETICS - var_changes = list("robo_ethanol_proc" = 1, "robo_ethanol_drunk" = 1) - excludes = list(/datum/trait/neutral/synth_ethanolburner,/datum/trait/neutral/synth_ethanol_sim) /datum/trait/neutral/synth_ethanol_sim name = "Ethanol Simulator" - desc = "An unusual modification allows your synthetic body to simulate all but the lethal effects of ingested alcohols." + desc = "An unusual modification allows your synthetic body to simulate all but the lethal effects of ingested alcohols. You'll get dizzy, slur your speech, suffer temporary loss of vision and even pass out! But hey, at least you don't have a liver to destroy." cost = 0 custom_only = FALSE can_take = SYNTHETICS var_changes = list("robo_ethanol_drunk" = 1) - excludes = list(/datum/trait/neutral/synth_ethanolburner,/datum/trait/neutral/synth_ethanol_crude) /datum/trait/neutral/glowing_eyes name = "Glowing Eyes" diff --git a/code/modules/reagents/reagents/dispenser.dm b/code/modules/reagents/reagents/dispenser.dm index 9602c36df9..2898247a72 100644 --- a/code/modules/reagents/reagents/dispenser.dm +++ b/code/modules/reagents/reagents/dispenser.dm @@ -177,14 +177,13 @@ M.Confuse(20) if(effective_dose >= strength * 4) // Blurry vision M.eye_blurry = max(M.eye_blurry, 10) - if((M.species.robo_ethanol_drunk && M.species.robo_ethanol_proc) || !(M.isSynthetic())) - if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep - M.drowsyness = max(M.drowsyness, 20) - if(effective_dose >= strength * 6) // Toxic dose - M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) - if(effective_dose >= strength * 7) // Pass out - M.Paralyse(20) - M.Sleeping(30) + if(effective_dose >= strength * 5) // Drowsyness - periodically falling asleep + M.drowsyness = max(M.drowsyness, 20) + if(effective_dose >= strength * 6) // Toxic dose + M.add_chemical_effect(CE_ALCOHOL_TOXIC, toxicity) + if(effective_dose >= strength * 7) // Pass out + M.Paralyse(20) + M.Sleeping(30) if(druggy != 0) M.druggy = max(M.druggy, druggy) diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm index d26773ecb0..e592e07c6c 100644 --- a/code/modules/reagents/reagents/food_drinks.dm +++ b/code/modules/reagents/reagents/food_drinks.dm @@ -2577,9 +2577,10 @@ /datum/reagent/ethanol/beer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(alien == IS_DIONA) - return - M.jitteriness = max(M.jitteriness - 3, 0) + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + if(alien == IS_DIONA) + return + M.jitteriness = max(M.jitteriness - 3, 0) /datum/reagent/ethanol/beer/lite name = "Lite Beer" @@ -2639,7 +2640,8 @@ ..() if(alien == IS_DIONA) return - M.dizziness +=5 + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + M.dizziness +=5 /datum/reagent/ethanol/firepunch name = "Fire Punch" @@ -2671,18 +2673,19 @@ allergen_type = ALLERGEN_COFFEE|ALLERGEN_STIMULANT //Contains coffee or is made from coffee /datum/reagent/ethanol/coffee/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) - if(alien == IS_DIONA) - return - ..() - M.dizziness = max(0, M.dizziness - 5) - M.drowsyness = max(0, M.drowsyness - 3) - M.AdjustSleeping(-2) - if(M.bodytemperature > 310) - M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) + if(!(M.isSynthetic())) + if(alien == IS_DIONA) + return + ..() + M.dizziness = max(0, M.dizziness - 5) + M.drowsyness = max(0, M.drowsyness - 3) + M.AdjustSleeping(-2) + if(M.bodytemperature > 310) + M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) - //if(alien == IS_TAJARA) - //M.adjustToxLoss(0.5 * removed) - //M.make_jittery(4) //extra sensitive to caffine + //if(alien == IS_TAJARA) + //M.adjustToxLoss(0.5 * removed) + //M.make_jittery(4) //extra sensitive to caffine /datum/reagent/ethanol/coffee/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) //if(alien == IS_TAJARA) @@ -2696,7 +2699,8 @@ //if(alien == IS_TAJARA) //M.adjustToxLoss(4 * REM) //M.apply_effect(3, STUTTER) //VOREStation Edit end - M.make_jittery(5) + if(!(M.isSynthetic())) + M.make_jittery(5) /datum/reagent/ethanol/coffee/kahlua name = "Kahlua" @@ -2800,12 +2804,14 @@ /datum/reagent/ethanol/thirteenloko/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(alien == IS_DIONA) - return - M.drowsyness = max(0, M.drowsyness - 7) - if (M.bodytemperature > 310) - M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) - M.make_jittery(5) + + if(!(M.isSynthetic())) + if(alien == IS_DIONA) + return + M.drowsyness = max(0, M.drowsyness - 7) + if (M.bodytemperature > 310) + M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) + M.make_jittery(5) /datum/reagent/ethanol/vermouth name = "Vermouth" @@ -2835,7 +2841,8 @@ /datum/reagent/ethanol/vodka/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - M.apply_effect(max(M.radiation - 1 * removed, 0), IRRADIATE, check_protection = 0) + if(!(M.isSynthetic())) + M.apply_effect(max(M.radiation - 1 * removed, 0), IRRADIATE, check_protection = 0) /datum/reagent/ethanol/whiskey name = "Whiskey" @@ -2904,16 +2911,18 @@ /datum/reagent/ethanol/pwine/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(dose > 30) - M.adjustToxLoss(2 * removed) - if(dose > 60 && ishuman(M) && prob(5)) - var/mob/living/carbon/human/H = M - var/obj/item/organ/internal/heart/L = H.internal_organs_by_name[O_HEART] - if (L && istype(L)) - if(dose < 120) - L.take_damage(10 * removed, 0) - else - L.take_damage(100, 0) + + if(!(M.isSynthetic())) + if(dose > 30) + M.adjustToxLoss(2 * removed) + if(dose > 60 && ishuman(M) && prob(5)) + var/mob/living/carbon/human/H = M + var/obj/item/organ/internal/heart/L = H.internal_organs_by_name[O_HEART] + if (L && istype(L)) + if(dose < 120) + L.take_damage(10 * removed, 0) + else + L.take_damage(100, 0) /datum/reagent/ethanol/wine/champagne name = "Champagne" @@ -3112,7 +3121,9 @@ /datum/reagent/ethanol/beepsky_smash/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - M.Stun(2) + + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + M.Stun(2) /datum/reagent/ethanol/bilk name = "Bilk" @@ -3549,7 +3560,9 @@ /datum/reagent/ethanol/neurotoxin/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - M.Weaken(3) + + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + M.Weaken(3) /datum/reagent/ethanol/patron name = "Patron" @@ -3799,16 +3812,18 @@ /datum/reagent/ethanol/unathiliquor/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(alien == IS_DIONA) - return - var/drug_strength = 10 - if(alien == IS_SKRELL) - drug_strength = drug_strength * 0.8 + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + if(alien == IS_DIONA) + return - M.druggy = max(M.druggy, drug_strength) - if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained()) - step(M, pick(cardinal)) + var/drug_strength = 10 + if(alien == IS_SKRELL) + drug_strength = drug_strength * 0.8 + + M.druggy = max(M.druggy, drug_strength) + if(prob(10) && isturf(M.loc) && !istype(M.loc, /turf/space) && M.canmove && !M.restrained()) + step(M, pick(cardinal)) /datum/reagent/ethanol/sakebomb name = "Sake Bomb" @@ -4337,19 +4352,21 @@ /datum/reagent/ethanol/godka/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() + + if(!(M.isSynthetic())) M.apply_effect(max(M.radiation - 5 * removed, 0), IRRADIATE, check_protection = 0) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.species.has_organ[O_LIVER]) - var/obj/item/organ/L = H.internal_organs_by_name[O_LIVER] - if(!L) - return - var/adjust_liver = rand(-3, 2) - if(prob(L.damage)) - to_chat(M, "You feel woozy...") - L.damage = max(L.damage + (adjust_liver * removed), 0) - var/adjust_tox = rand(-4, 2) - M.adjustToxLoss(adjust_tox * removed) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.species.has_organ[O_LIVER]) + var/obj/item/organ/L = H.internal_organs_by_name[O_LIVER] + if(!L) + return + var/adjust_liver = rand(-3, 2) + if(prob(L.damage)) + to_chat(M, "You feel woozy...") + L.damage = max(L.damage + (adjust_liver * removed), 0) + var/adjust_tox = rand(-4, 2) + M.adjustToxLoss(adjust_tox * removed) /datum/reagent/ethanol/holywine name = "Angel Ichor" diff --git a/code/modules/reagents/reagents/food_drinks_vr.dm b/code/modules/reagents/reagents/food_drinks_vr.dm index f395601c07..1f46f0cfbc 100644 --- a/code/modules/reagents/reagents/food_drinks_vr.dm +++ b/code/modules/reagents/reagents/food_drinks_vr.dm @@ -48,10 +48,11 @@ /datum/reagent/ethanol/deathbell/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(dose * strength >= strength) // Early warning - M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects. - if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional. - M.slurring = max(M.slurring, 30) + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + if(dose * strength >= strength) // Early warning + M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects. + if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional. + M.slurring = max(M.slurring, 30) /datum/reagent/ethanol/burnout name = "Burnout" @@ -70,22 +71,23 @@ /datum/reagent/ethanol/burnout/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() // Deathbell effects. - if(dose * strength >= strength) - M.make_dizzy(24) - if(dose * strength >= strength * 2.5) - M.slurring = max(M.slurring, 30) - // Simulating heat effects of spice. Without spice. - if(alien == IS_DIONA || alien == IS_ALRAUNE) - return - else if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(!H.can_feel_pain()) + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + if(dose * strength >= strength) + M.make_dizzy(24) + if(dose * strength >= strength * 2.5) + M.slurring = max(M.slurring, 30) + // Simulating heat effects of spice. Without spice. + if(alien == IS_DIONA || alien == IS_ALRAUNE) return - else - if((dose < 5) && (dose == metabolism || prob(5))) - to_chat(M, "Your insides feel uncomfortably hot!") - if(dose >= 5 && prob(5)) - M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]", pick("You feel like your insides are burning!", "You feel like your insides are on fire!", "You feel like your belly is full of lava!")) + else if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.can_feel_pain()) + return + else + if((dose < 5) && (dose == metabolism || prob(5))) + to_chat(M, "Your insides feel uncomfortably hot!") + if(dose >= 5 && prob(5)) + M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]", pick("You feel like your insides are burning!", "You feel like your insides are on fire!", "You feel like your belly is full of lava!")) /datum/reagent/ethanol/monstertamer name = "Monster Tamer" @@ -159,27 +161,28 @@ /datum/reagent/ethanol/monstertamer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(M.species.organic_food_coeff) //it's still food! - switch(alien) - if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein. - if(IS_SKRELL) - M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein. - if(IS_TESHARI) - M.adjust_nutrition(alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein. - if(IS_UNATHI) - M.adjust_nutrition(alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein. - //Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein. - //Chimera don't need their own case here since their factors for nutriment and protein cancel out. - else - M.adjust_nutrition(alt_nutriment_factor * removed) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.feral > 0 && H.nutrition > 150 && H.traumatic_shock < 20 && H.jitteriness < 100) //Same check as feral triggers to stop them immediately re-feralling - H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm. - if (H.feral <=0) //check if they're unferalled - H.feral = 0 - to_chat(H, "Your mind starts to clear, soothed into a state of clarity as your senses return.") - log_and_message_admins("is no longer feral.", H) + if(!(M.isSynthetic())) + if(M.species.organic_food_coeff) //it's still food! + switch(alien) + if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein. + if(IS_SKRELL) + M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein. + if(IS_TESHARI) + M.adjust_nutrition(alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein. + if(IS_UNATHI) + M.adjust_nutrition(alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein. + //Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein. + //Chimera don't need their own case here since their factors for nutriment and protein cancel out. + else + M.adjust_nutrition(alt_nutriment_factor * removed) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.feral > 0 && H.nutrition > 150 && H.traumatic_shock < 20 && H.jitteriness < 100) //Same check as feral triggers to stop them immediately re-feralling + H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm. + if (H.feral <=0) //check if they're unferalled + H.feral = 0 + to_chat(H, "Your mind starts to clear, soothed into a state of clarity as your senses return.") + log_and_message_admins("is no longer feral.", H) /datum/reagent/ethanol/monstertamer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) ..() @@ -216,10 +219,11 @@ /datum/reagent/ethanol/galacticpanic/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(dose * strength >= strength) // Early warning - M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects. - if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional. - M.slurring = max(M.slurring, 30) + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + if(dose * strength >= strength) // Early warning + M.make_dizzy(24) // Intentionally higher than normal to compensate for it's previous effects. + if(dose * strength >= strength * 2.5) // Slurring takes longer. Again, intentional. + M.slurring = max(M.slurring, 30) /datum/reagent/ethanol/bulldog name = "Space Bulldog" @@ -309,7 +313,9 @@ /datum/reagent/ethanol/russianroulette/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - M.Stun(2) + + if(M.species.robo_ethanol_drunk || !(M.isSynthetic())) + M.Stun(2) /datum/reagent/ethanol/lovemaker name = "The Love Maker" @@ -460,27 +466,28 @@ /datum/reagent/ethanol/hairoftherat/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) ..() - if(M.species.organic_food_coeff) //it's still food! - switch(alien) - if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein. - if(IS_SKRELL) - M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein. - if(IS_TESHARI) - M.nutrition += (alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein. - if(IS_UNATHI) - M.nutrition += (alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein. - //Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein. - //Chimera don't need their own case here since their factors for nutriment and protein cancel out. - else - M.nutrition += (alt_nutriment_factor * removed) - if(ishuman(M)) - var/mob/living/carbon/human/H = M - if(H.feral > 0 && H.nutrition > 100 && H.traumatic_shock < min(60, H.nutrition/10) && H.jitteriness < 100) // same check as feral triggers to stop them immediately re-feralling - H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm. - if (H.feral <=0) //check if they're unferalled - H.feral = 0 - to_chat(H, "Your mind starts to clear, soothed into a state of clarity as your senses return.") - log_and_message_admins("is no longer feral.", H) + if(!(M.isSynthetic())) + if(M.species.organic_food_coeff) //it's still food! + switch(alien) + if(IS_DIONA) //Diona don't get any nutrition from nutriment or protein. + if(IS_SKRELL) + M.adjustToxLoss(0.25 * removed) //Equivalent to half as much protein, since it's half protein. + if(IS_TESHARI) + M.nutrition += (alt_nutriment_factor * 1.2 * removed) //Give them the same nutrition they would get from protein. + if(IS_UNATHI) + M.nutrition += (alt_nutriment_factor * 1.125 * removed) //Give them the same nutrition they would get from protein. + //Takes into account the 0.5 factor for all nutriment which is applied on top of the 2.25 factor for protein. + //Chimera don't need their own case here since their factors for nutriment and protein cancel out. + else + M.nutrition += (alt_nutriment_factor * removed) + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(H.feral > 0 && H.nutrition > 100 && H.traumatic_shock < min(60, H.nutrition/10) && H.jitteriness < 100) // same check as feral triggers to stop them immediately re-feralling + H.feral -= removed * 3 // should calm them down quick, provided they're actually in a state to STAY calm. + if (H.feral <=0) //check if they're unferalled + H.feral = 0 + to_chat(H, "Your mind starts to clear, soothed into a state of clarity as your senses return.") + log_and_message_admins("is no longer feral.", H) /datum/reagent/ethanol/hairoftherat/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) ..() From 25eaa6e8667bf755f51b1064ea865aed13b221f4 Mon Sep 17 00:00:00 2001 From: Killian <49700375+KillianKirilenko@users.noreply.github.com> Date: Thu, 23 Mar 2023 14:24:56 +0000 Subject: [PATCH 06/14] final adjustments and fixes --- code/modules/reagents/reagents/dispenser.dm | 4 +++- code/modules/reagents/reagents/food_drinks.dm | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/reagents/dispenser.dm b/code/modules/reagents/reagents/dispenser.dm index 2898247a72..5fba3ffe20 100644 --- a/code/modules/reagents/reagents/dispenser.dm +++ b/code/modules/reagents/reagents/dispenser.dm @@ -153,6 +153,8 @@ M.hallucination = max(M.hallucination, halluci*3) /datum/reagent/ethanol/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed) + var/ep_base_power = 60 //base nutrition gain for ethanol-processing synthetics, reduced by alcohol strength + var/ep_final_mod = 30 //final divisor on nutrition gain if(issmall(M)) removed *= 2 @@ -160,7 +162,7 @@ M.adjust_nutrition(nutriment_factor * removed) if(M.isSynthetic() && M.nutrition < 500 && M.species.robo_ethanol_proc) - M.adjust_nutrition(round(max(0,80 - strength) * removed)/30) //the stronger it is, the more juice you gain; really weak stuff gets you nothing + M.adjust_nutrition(round(max(0,ep_base_power - strength) * removed)/ep_final_mod) //the stronger it is, the more juice you gain var/effective_dose = dose * M.species.chem_strength_alcohol if(!effective_dose) diff --git a/code/modules/reagents/reagents/food_drinks.dm b/code/modules/reagents/reagents/food_drinks.dm index e592e07c6c..c530dbc1e4 100644 --- a/code/modules/reagents/reagents/food_drinks.dm +++ b/code/modules/reagents/reagents/food_drinks.dm @@ -4354,7 +4354,7 @@ ..() if(!(M.isSynthetic())) - M.apply_effect(max(M.radiation - 5 * removed, 0), IRRADIATE, check_protection = 0) + M.apply_effect(max(M.radiation - 5 * removed, 0), IRRADIATE, check_protection = 0) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.species.has_organ[O_LIVER]) From 778c019b3472149d658ec8d13ce08e55c456f31e Mon Sep 17 00:00:00 2001 From: adriano20037 <128608317+adriano20037@users.noreply.github.com> Date: Fri, 24 Mar 2023 00:29:51 +0100 Subject: [PATCH 07/14] Whitelist update https://forum.vore-station.net/viewtopic.php?f=46&t=2244 --- config/alienwhitelist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/config/alienwhitelist.txt b/config/alienwhitelist.txt index b60fdcb5a0..df9a05ea94 100644 --- a/config/alienwhitelist.txt +++ b/config/alienwhitelist.txt @@ -1,5 +1,6 @@ 1062aphelion - Protean admiraldragon - Vox +adriano20037 - Protean aetherelemental - Daemon alphaprime1 - Protean amarewolf - Xenochimera From 61b1df54bfda0710e0233e0cd3a1733ec879867a Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sat, 25 Mar 2023 12:04:13 +0800 Subject: [PATCH 08/14] fixes unique hologram and hologram offsets --- code/game/machinery/hologram.dm | 1 + code/modules/mob/living/silicon/ai/ai.dm | 50 ++++++++++++++++++++++-- 2 files changed, 48 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/hologram.dm b/code/game/machinery/hologram.dm index b93d72c73f..0df4174d1b 100644 --- a/code/game/machinery/hologram.dm +++ b/code/game/machinery/hologram.dm @@ -117,6 +117,7 @@ For the other part of the code, check silicon say.dm. Particularly robot talk.*/ var/obj/effect/overlay/aiholo/hologram = new(T)//Spawn a blank effect at the location. //VOREStation Edit to specific type for adding vars hologram.master = A //VOREStation Edit: So you can reference the master AI from in the hologram procs hologram.icon = A.holo_icon + hologram.pixel_x = 16 - round(A.holo_icon.Width() / 2) //VOREStation Edit: centers the hologram on the tile //hologram.mouse_opacity = 0//So you can't click on it. //VOREStation Removal hologram.layer = FLY_LAYER//Above all the other objects/mobs. Or the vast majority of them. hologram.anchored = TRUE//So space wind cannot drag it. diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 39667eceda..8b266dd0b1 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -663,9 +663,53 @@ var/list/ai_verbs_default = list( "female skrell" ) input = tgui_input_list(usr, "Please select a hologram:", "Hologram Choice", icon_list) - - - + if(input) + qdel(holo_icon) + switch(input) + if("default") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo1")) + if("floating face") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo2")) + if("singularity") + holo_icon = getHologramIcon(icon('icons/obj/singularity.dmi',"singularity_s1")) + if("drone") + holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"drone0")) + if("carp") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo4")) + if("spider") + holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"nurse")) + if("bear") + holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"brownbear")) + if("slime") + holo_icon = getHologramIcon(icon('icons/mob/slimes.dmi',"cerulean adult slime")) + if("ian") + holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"corgi")) + if("runtime") + holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"cat")) + if("poly") + holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"parrot_fly")) + if("pun pun") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"punpun")) + if("male human") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holohumm")) + if("female human") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holohumf")) + if("male unathi") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holounam")) + if("female unathi") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holounaf")) + if("male tajaran") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotajm")) + if("female tajaran") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotajf")) + if("male tesharii") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotesm")) + if("female tesharii") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holotesf")) + if("male skrell") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holoskrm")) + if("female skrell") + holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holoskrf")) //Toggles the luminosity and applies it by re-entereing the camera. /mob/living/silicon/ai/proc/toggle_camera_light() From b5b4e75f9605d8a3b8cf3cb22191ae29b7ea19af Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sat, 25 Mar 2023 12:19:59 +0800 Subject: [PATCH 09/14] fix holo icons --- code/modules/mob/living/silicon/ai/ai.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 8b266dd0b1..051fe272b5 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -673,7 +673,7 @@ var/list/ai_verbs_default = list( if("singularity") holo_icon = getHologramIcon(icon('icons/obj/singularity.dmi',"singularity_s1")) if("drone") - holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"drone0")) + holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"drone")) if("carp") holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"holo4")) if("spider") @@ -683,11 +683,11 @@ var/list/ai_verbs_default = list( if("slime") holo_icon = getHologramIcon(icon('icons/mob/slimes.dmi',"cerulean adult slime")) if("ian") - holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"corgi")) + holo_icon = getHologramIcon(icon('icons/mob/pets.dmi',"corgi")) if("runtime") - holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"cat")) + holo_icon = getHologramIcon(icon('icons/mob/pets.dmi',"cat")) if("poly") - holo_icon = getHologramIcon(icon('icons/mob/animal.dmi',"parrot_fly")) + holo_icon = getHologramIcon(icon('icons/mob/birds.dmi',"poly-flap")) if("pun pun") holo_icon = getHologramIcon(icon('icons/mob/AI.dmi',"punpun")) if("male human") From 93afeb67bcaa9366adcbe8f6da86f516a2253f34 Mon Sep 17 00:00:00 2001 From: Runa Dacino Date: Sat, 25 Mar 2023 19:30:17 +0100 Subject: [PATCH 10/14] Fixes lore codex name --- code/modules/client/preference_setup/loadout/loadout_utility.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/client/preference_setup/loadout/loadout_utility.dm b/code/modules/client/preference_setup/loadout/loadout_utility.dm index 21ed953a42..ed6fb99a79 100644 --- a/code/modules/client/preference_setup/loadout/loadout_utility.dm +++ b/code/modules/client/preference_setup/loadout/loadout_utility.dm @@ -30,7 +30,7 @@ path = /obj/item/device/camera /datum/gear/utility/codex - display_name = "the traveler's guide to vir" + display_name = "the traveler's guide to Virgo-Erigone" path = /obj/item/weapon/book/codex //VOREStation Edit cost = 0 From 14ae19d952cdb13454d88d45dda8242d46bb2730 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 26 Mar 2023 17:08:30 +1000 Subject: [PATCH 11/14] Adds 'drone' versions of mercenary mobs. --- code/modules/mob/dead/corpse.dm | 17 ++- code/modules/mob/dead/corpse_vr.dm | 26 +++- .../subtypes/humanoid/mercs/mercs_vr.dm | 117 ++++++++++++++++++ code/modules/organs/organ_external_vr.dm | 3 + 4 files changed, 160 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/dead/corpse.dm b/code/modules/mob/dead/corpse.dm index 1b422aae65..b02859f451 100644 --- a/code/modules/mob/dead/corpse.dm +++ b/code/modules/mob/dead/corpse.dm @@ -26,14 +26,26 @@ var/corpseidjob = null // Needs to be in quotes, such as "Clown" or "Chef." This just determines what the ID reads as, not their access var/corpseidaccess = null //This is for access. See access.dm for which jobs give what access. Again, put in quotes. Use "Captain" if you want it to be all access. var/corpseidicon = null //For setting it to be a gold, silver, CentCom etc ID + var/corpsesynthtype = 0 // 0 for organic, 1 for drone, 2 for posibrain + var/corpsesynthbrand = "Unbranded" /obj/effect/landmark/mobcorpse/New() createCorpse() /obj/effect/landmark/mobcorpse/proc/createCorpse() //Creates a mob and checks for gear in each slot before attempting to equip it. var/mob/living/carbon/human/M = new /mob/living/carbon/human (src.loc) - M.real_name = src.name + M.real_name = generateCorpseName() M.set_stat(DEAD) //Kills the new mob + if(corpsesynthtype > 0) + to_world("Synth") + if(!corpsesynthbrand) + corpsesynthbrand = "Unbranded" + for(var/obj/item/organ/external/O in M.organs) + switch(corpsesynthtype) + if(1) + O.digitize(corpsesynthbrand) + if(2) + O.robotize(corpsesynthbrand) if(src.corpseuniform) M.equip_to_slot_or_del(new src.corpseuniform(M), slot_w_uniform) if(src.corpsesuit) @@ -81,7 +93,8 @@ delete_me = 1 qdel(src) - +/obj/effect/landmark/mobcorpse/proc/generateCorpseName() + return name //List of different corpse types diff --git a/code/modules/mob/dead/corpse_vr.dm b/code/modules/mob/dead/corpse_vr.dm index 82399a8328..ecdaa63fe9 100644 --- a/code/modules/mob/dead/corpse_vr.dm +++ b/code/modules/mob/dead/corpse_vr.dm @@ -1,2 +1,26 @@ /obj/effect/landmark/mobcorpse/syndicatecommando - name = "Mercenary Commando" \ No newline at end of file + name = "Mercenary Commando" + +/obj/effect/landmark/mobcorpse/syndicatesoldier/drone + name = "Mercenary Drone" + corpseidjob = "Operative" + corpsesynthtype = 2 + corpsesynthbrand = "Xion" + +/obj/effect/landmark/mobcorpse/syndicatesoldier/drone/generateCorpseName() + var/letter = pick(list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")) + var/number = rand(0,999) + var/purpose = pick(list("Recon","Combat","Kill","Guard","Scout","Murder","Capture","Raid","Attack","Battle")) + return "[letter]-[number] [purpose] Droid" + +/obj/effect/landmark/mobcorpse/syndicatecommando/drone + name = "Mercenary Drone" + corpseidjob = "Operative" + corpsesynthtype = 2 + corpsesynthbrand = "Xion" + +/obj/effect/landmark/mobcorpse/syndicatecommando/drone/generateCorpseName() + var/letter = pick(list("Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega")) + var/number = rand(0,999) + var/purpose = pick(list("Recon","Combat","Kill","Guard","Scout","Murder","Capture","Raid","Attack","Battle")) + return "[letter]-[number] [purpose] Droid" diff --git a/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_vr.dm b/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_vr.dm index 67e396fb4d..a5d0f827e2 100644 --- a/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_vr.dm +++ b/code/modules/mob/living/simple_mob/subtypes/humanoid/mercs/mercs_vr.dm @@ -23,3 +23,120 @@ min_n2 = 0 max_n2 = 0 minbodytemp = 0 + +/datum/say_list/merc/drone + speak = list("Area patrol in progress.", + "All systems nominal.", + "Situation analysis finalized. No hostiles detected.", + "Reporting status: all functions normal.", + "Location under control.") + emote_see = list("beeps", "pings", "twitches erratically", "looks around") + + say_understood = list("Command acknowledged.") + say_cannot = list("Command error.") + say_maybe_target = list("Please come out.", "Where did you go?", "Scanning...") + say_got_target = list("Engaging.", "Targeting.", "Combat initiated.", "Following protocol. Eliminating hostile.") + say_threaten = list("This location is under control. You have %UNDEFINED% seconds to depart.", "Your presence at these premises must be terminated.") + say_stand_down = list("Your compliance is welcome.") + say_escalate = list("Combat initiated.", "Your termination is inevitable.") + + threaten_sound = 'sound/weapons/TargetOn.ogg' + stand_down_sound = 'sound/weapons/TargetOff.ogg' + +/mob/living/simple_mob/humanoid/merc/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/melee/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/melee/sword/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/smg/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/rifle/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/rifle/mag/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/laser/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/ionrifle/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/grenadier/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/technician/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/ranged/sniper/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat armor." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatesoldier/drone + +/mob/living/simple_mob/humanoid/merc/melee/sword/space/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat spacesuit." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatecommando/drone + +/mob/living/simple_mob/humanoid/merc/ranged/space/drone + name = "combat droid" + desc = "A set of prosthetics, piloted by simplistic combat algorhithm and dressed in combat spacesuit." + tt_desc = null + say_list_type = /datum/say_list/merc/drone + corpse = /obj/effect/landmark/mobcorpse/syndicatecommando/drone \ No newline at end of file diff --git a/code/modules/organs/organ_external_vr.dm b/code/modules/organs/organ_external_vr.dm index 0e3fb07d9e..a49cfca980 100644 --- a/code/modules/organs/organ_external_vr.dm +++ b/code/modules/organs/organ_external_vr.dm @@ -13,3 +13,6 @@ min_broken_damage = o_min_broken_damage else return ..() + +/obj/item/organ/external/digitize(var/company, var/skip_prosthetics = FALSE, var/keep_organs = FALSE) + robotize(company, skip_prosthetics, keep_organs) From 0ff5390b531b39cef8495a735969cb68e53a0a51 Mon Sep 17 00:00:00 2001 From: Heroman Date: Sun, 26 Mar 2023 17:09:47 +1000 Subject: [PATCH 12/14] Adds a whitescale-based version of Demon Wings --- .../new_player/sprite_accessories_wing_vr.dm | 7 +++++++ icons/mob/vore/wings_vr.dmi | Bin 48964 -> 50715 bytes vorestation.dme | 1 - 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/new_player/sprite_accessories_wing_vr.dm b/code/modules/mob/new_player/sprite_accessories_wing_vr.dm index c484d041c7..35753bf2ed 100644 --- a/code/modules/mob/new_player/sprite_accessories_wing_vr.dm +++ b/code/modules/mob/new_player/sprite_accessories_wing_vr.dm @@ -249,6 +249,13 @@ icon_state = "sepulchre_wingsc" do_colouration = 1 +/datum/sprite_accessory/wing/sepulchre_c_yw_w + name = "demon wings (colorable, whitescale)" + desc = "" + icon_state = "sepulchre_wingsc_w" + do_colouration = 1 + color_blend_mode = ICON_MULTIPLY + /datum/sprite_accessory/wing/cyberdragon name = "Cyber dragon wing (colorable)" desc = "" diff --git a/icons/mob/vore/wings_vr.dmi b/icons/mob/vore/wings_vr.dmi index 5d62b7bcd8ee7cb9166b69912a383943c26ebaaa..5edced1ac96a7b0bb1cf8fa2f95429b270975c7b 100644 GIT binary patch delta 29361 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 P{L?_W6b5 delta 27596 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 diff --git a/vorestation.dme b/vorestation.dme index a511a123d3..4a7ddcad36 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1827,7 +1827,6 @@ #include "code\modules\asset_cache\asset_list.dm" #include "code\modules\asset_cache\asset_list_items.dm" #include "code\modules\awaymissions\bluespaceartillery.dm" -#include "code\modules\awaymissions\corpse.dm" #include "code\modules\awaymissions\exile.dm" #include "code\modules\awaymissions\gateway.dm" #include "code\modules\awaymissions\gateway_vr.dm" From 2f1f288a15fcb48ea0b281aba0f6f5665c19edd6 Mon Sep 17 00:00:00 2001 From: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Date: Sun, 26 Mar 2023 17:11:45 +1000 Subject: [PATCH 13/14] Update corpse_vr.dm --- code/modules/mob/dead/corpse_vr.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/dead/corpse_vr.dm b/code/modules/mob/dead/corpse_vr.dm index ecdaa63fe9..487de64d95 100644 --- a/code/modules/mob/dead/corpse_vr.dm +++ b/code/modules/mob/dead/corpse_vr.dm @@ -4,7 +4,7 @@ /obj/effect/landmark/mobcorpse/syndicatesoldier/drone name = "Mercenary Drone" corpseidjob = "Operative" - corpsesynthtype = 2 + corpsesynthtype = 1 corpsesynthbrand = "Xion" /obj/effect/landmark/mobcorpse/syndicatesoldier/drone/generateCorpseName() @@ -16,7 +16,7 @@ /obj/effect/landmark/mobcorpse/syndicatecommando/drone name = "Mercenary Drone" corpseidjob = "Operative" - corpsesynthtype = 2 + corpsesynthtype = 1 corpsesynthbrand = "Xion" /obj/effect/landmark/mobcorpse/syndicatecommando/drone/generateCorpseName() From acf5a66608aa8d5f9d9b66488262a88032f46ded Mon Sep 17 00:00:00 2001 From: VerySoft Date: Sun, 26 Mar 2023 18:04:33 -0400 Subject: [PATCH 14/14] Map Swap --- vorestation.dme | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vorestation.dme b/vorestation.dme index a511a123d3..1af0996ee6 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -4196,7 +4196,6 @@ #include "maps\expedition_vr\beach\submaps\mountains.dm" #include "maps\expedition_vr\beach\submaps\mountains_areas.dm" #include "maps\gateway_archive_vr\blackmarketpackers.dm" -#include "maps\groundbase\groundbase.dm" #include "maps\southern_cross\items\clothing\sc_accessory.dm" #include "maps\southern_cross\items\clothing\sc_suit.dm" #include "maps\southern_cross\items\clothing\sc_under.dm" @@ -4212,5 +4211,6 @@ #include "maps\submaps\space_submaps\debrisfield\debrisfield.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness.dm" #include "maps\submaps\surface_submaps\wilderness\wilderness_areas.dm" +#include "maps\tether\tether.dm" #include "maps\~map_system\maps.dm" // END_INCLUDE