From b041f3318cb5df3e217ecf708fc7fb5c15475f5a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 04:29:36 -0800 Subject: [PATCH 01/62] Update electronics_designs.dm --- .../modules/research/designs/electronics_designs.dm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm index e9db641811..552976824d 100644 --- a/code/modules/research/designs/electronics_designs.dm +++ b/code/modules/research/designs/electronics_designs.dm @@ -118,3 +118,16 @@ build_path = /obj/item/disk/integrated_circuit/upgrade/clone category = list("Electronics") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + +//CIT ADDITIONS +/datum/design/drone_shell + name = "Drone Shell" + desc = "A shell of a maintenance drone, an expendable robot built to perform station repairs." + id = "drone_shell" + build_type = MECHFAB | PROTOLATHE + materials = list(MAT_METAL = 800, MAT_GLASS = 350) + construction_time = 150 + build_path = /obj/item/drone_shell + category = list("Misc") + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + From 906922a3e3ea06c452068a1622d3e5e8e17c5426 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 04:30:24 -0800 Subject: [PATCH 02/62] Update all_nodes.dm --- code/modules/research/techweb/all_nodes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 826f8d05b8..04fed1a05c 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -254,7 +254,7 @@ display_name = "Basic Robotics Research" description = "Programmable machines that make our lives lazier." prereq_ids = list("base") - design_ids = list("paicard") + design_ids = list("paicard", "drone_shell") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 From 2444fac7b557d9b94e9511a956439fcb856ae28a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 16:14:24 -0800 Subject: [PATCH 03/62] Update medicine_reagents.dm --- .../chemistry/reagents/medicine_reagents.dm | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 671e62a9e6..0f1bed8968 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -546,19 +546,14 @@ overdose_threshold = 45 addiction_threshold = 30 -/datum/reagent/medicine/ephedrine/on_mob_add(mob/living/L) - ..() - L.add_trait(TRAIT_GOTTAGOFAST, id) - -/datum/reagent/medicine/ephedrine/on_mob_delete(mob/living/L) - L.remove_trait(TRAIT_GOTTAGOFAST, id) - ..() - /datum/reagent/medicine/ephedrine/on_mob_life(mob/living/carbon/M) M.AdjustStun(-20, 0) M.AdjustKnockdown(-20, 0) M.AdjustUnconscious(-20, 0) - M.adjustStaminaLoss(-1*REM, 0) + M.adjustStaminaLoss(-4.5*REM, 0) + M.jitter = max(M.jitter + 2, 15) + if(prob(5)) + M.Confuse(3) ..() return TRUE From dc5f4ea67bf0350c00ccef27462201777ad6ffc2 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 16:15:34 -0800 Subject: [PATCH 04/62] Update medicine_reagents.dm --- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 0f1bed8968..b4fa3676f7 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -552,8 +552,8 @@ M.AdjustUnconscious(-20, 0) M.adjustStaminaLoss(-4.5*REM, 0) M.jitter = max(M.jitter + 2, 15) - if(prob(5)) - M.Confuse(3) + if(prob(50)) + M.Confuse(1) ..() return TRUE From 5abdf53e35a2dac9505237c3df849e8391cc5994 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 3 Jan 2019 16:31:24 -0800 Subject: [PATCH 05/62] Update medicine_reagents.dm --- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index b4fa3676f7..02c5d61643 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -551,7 +551,7 @@ M.AdjustKnockdown(-20, 0) M.AdjustUnconscious(-20, 0) M.adjustStaminaLoss(-4.5*REM, 0) - M.jitter = max(M.jitter + 2, 15) + M.Jitter(10) if(prob(50)) M.Confuse(1) ..() From 52a68d212124fd3a229cd104ea681a9fc1cc2736 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 01:19:06 -0500 Subject: [PATCH 06/62] Suicide_Acts for Dildos By request. --- .../code/modules/arousal/toys/dildos.dm | 41 +++++++++++++++++- sound/weapons/gagging.ogg | Bin 0 -> 45215 bytes 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 sound/weapons/gagging.ogg diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 587702762c..c99084fa39 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -102,7 +102,6 @@ obj/item/dildo/random//totally random random_shape = TRUE random_size = TRUE - obj/item/dildo/knotted dildo_shape = "knotted" name = "knotted dildo" @@ -131,3 +130,43 @@ obj/item/dildo/custom random_color = TRUE random_shape = TRUE random_size = TRUE + +//Suicide acts, by request + +obj/item/dildo/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/knotted/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/human/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/plain/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/flared/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + +obj/item/dildo/flared/huge/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + + +obj/item/dildo/flared/huge/suicide_act(mob/user) + user.visible_message("") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + return (OXYLOSS) + + diff --git a/sound/weapons/gagging.ogg b/sound/weapons/gagging.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0b0a3783f4479a1d3ed1f696e5e23a06d78af9e1 GIT binary patch literal 45215 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

Ln3n)85t4|CX!4ZfB< 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 literal 0 HcmV?d00001 From 6aed6d5612980cf218d7a8b97acca2b7ca8fc560 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 01:55:33 -0500 Subject: [PATCH 07/62] Fixes all vg/5th port uniforms that aren't commented out for whatever reason. I'm pissy that this was so easy and nobody else bothered to do it. --- code/modules/clothing/under/vg_under.dm | 73 ++++++++++--------- .../code/modules/arousal/toys/dildos.dm | 18 ++--- 2 files changed, 46 insertions(+), 45 deletions(-) diff --git a/code/modules/clothing/under/vg_under.dm b/code/modules/clothing/under/vg_under.dm index 64bf75d5ac..f416f2ecc5 100644 --- a/code/modules/clothing/under/vg_under.dm +++ b/code/modules/clothing/under/vg_under.dm @@ -1,3 +1,6 @@ +// Fixed to work with Citadel code. Apparently none of them had NO_MUTANTRACE flags. +// I was pissy when I realised how to fix this because it's so fucking easy and nobody apparently had done it. + /obj/item/clothing/under/stripper_pink name = "pink stripper outfit" icon_state = "stripper_p" @@ -6,7 +9,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/stripper_green name = "green stripper outfit" @@ -16,8 +19,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_orange name = "orange wedding dress" @@ -28,7 +30,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_purple name = "purple wedding dress" @@ -39,7 +41,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_blue name = "blue wedding dress" @@ -50,7 +52,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_red name = "red wedding dress" @@ -61,7 +63,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/wedding/bride_white name = "white wedding dress" @@ -72,7 +74,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/mankini name = "pink mankini" @@ -82,6 +84,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION /* /obj/item/clothing/under/psysuit @@ -126,7 +129,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/russobluecamooutfit name = "russian blue camo" @@ -137,7 +140,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/stilsuit name = "stillsuit" @@ -148,7 +151,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/aviatoruniform name = "aviator uniform" @@ -159,7 +162,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/bikersuit name = "biker's outfit" @@ -169,7 +172,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/jacketsuit name = "richard's outfit" @@ -180,7 +183,7 @@ can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION obj/item/clothing/under/mega name = "\improper DRN-001 suit" @@ -191,7 +194,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/proto name = "The Prototype Suit" @@ -202,7 +205,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/megax name = "\improper Maverick Hunter regalia" @@ -213,7 +216,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/joe name = "The Sniper Suit" @@ -224,7 +227,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/roll name = "\improper DRN-002 Dress" @@ -235,7 +238,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/gokugidown name = "turtle hermit undershirt" @@ -246,7 +249,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/gokugi name = "turtle hermit outfit" @@ -257,7 +260,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/doomguy name = "\improper Doomguy's pants" @@ -268,7 +271,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/vault13 name = "vault 13 Jumpsuit" @@ -279,7 +282,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/vault name = "vault jumpsuit" @@ -290,7 +293,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/clownpiece name = "Clownpiece's Pierrot suit" @@ -301,7 +304,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/cia name = "casual IAA outfit" @@ -312,7 +315,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/greaser name = "greaser outfit" @@ -322,7 +325,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/greaser/New() var/greaser_colour = "default" @@ -341,6 +344,8 @@ obj/item/clothing/under/mega item_color = "greaser_[greaser_colour]" can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION + /obj/item/clothing/under/wintercasualwear name = "winter casualwear" @@ -351,8 +356,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/casualwear name = "spring casualwear" @@ -363,7 +367,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/keyholesweater name = "keyhole sweater" @@ -374,7 +378,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/casualhoodie name = "casual hoodie" @@ -385,8 +389,7 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' - - + mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/under/casualhoodie/skirt icon_state = "hoodieskirt" @@ -394,6 +397,8 @@ obj/item/clothing/under/mega item_color = "hoodieskirt" can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION + /* /obj/item/clothing/under/mummy_rags name = "mummy rags" @@ -427,3 +432,5 @@ obj/item/clothing/under/mega can_adjust = 0 icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' alternate_worn_icon = 'modular_citadel/icons/mob/citadel/uniforms.dmi' + mutantrace_variation = NO_MUTANTRACE_VARIATION + diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index c99084fa39..d6c2decb13 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -133,38 +133,32 @@ obj/item/dildo/custom //Suicide acts, by request -obj/item/dildo/suicide_act(mob/user) - user.visible_message("") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - return (OXYLOSS) - -obj/item/dildo/knotted/suicide_act(mob/user) +/obj/item/dildo/knotted/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) -obj/item/dildo/human/suicide_act(mob/user) +/obj/item/dildo/human/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) -obj/item/dildo/plain/suicide_act(mob/user) +/obj/item/dildo/plain/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) -obj/item/dildo/flared/suicide_act(mob/user) +/obj/item/dildo/flared/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) -obj/item/dildo/flared/huge/suicide_act(mob/user) +/obj/item/dildo/flared/huge/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) - -obj/item/dildo/flared/huge/suicide_act(mob/user) +/obj/item/dildo/flared/huge/suicide_act(mob/user) user.visible_message("") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) return (OXYLOSS) From 2292b06ad14ca15c8492475a19490d7c473de673 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 02:45:34 -0500 Subject: [PATCH 08/62] Improved attack verbs on dildos+ suicide improvements Adds a bracket that kept the suicide message from appearing and grants each dildo its own attack message, mostly. --- .../code/modules/arousal/toys/dildos.dm | 69 +++++++++++++------ 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index d6c2decb13..8d41933429 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -1,7 +1,7 @@ ////////// //DILDOS// ////////// -obj/item/dildo +/obj/item/dildo name = "dildo" desc = "Floppy!" icon = 'modular_citadel/icons/obj/genitals/dildo.dmi' @@ -20,7 +20,7 @@ obj/item/dildo var/random_shape = FALSE //Lists moved to _cit_helpers.dm as globals so they're not instanced individually -obj/item/dildo/proc/update_appearance() +/obj/item/dildo/proc/update_appearance() icon_state = "[dildo_type]_[dildo_shape]_[dildo_size]" var/sizeword = "" switch(dildo_size) @@ -35,7 +35,7 @@ obj/item/dildo/proc/update_appearance() name = "[sizeword][dildo_shape] [can_customize ? "custom " : ""][dildo_type]" -obj/item/dildo/AltClick(mob/living/user) +/obj/item/dildo/AltClick(mob/living/user) if(QDELETED(src)) return if(!isliving(user)) @@ -46,7 +46,7 @@ obj/item/dildo/AltClick(mob/living/user) return customize(user) -obj/item/dildo/proc/customize(mob/living/user) +/obj/item/dildo/proc/customize(mob/living/user) if(!can_customize) return FALSE if(src && !user.incapacitated() && in_range(user,src)) @@ -75,7 +75,7 @@ obj/item/dildo/proc/customize(mob/living/user) update_appearance() return TRUE -obj/item/dildo/Initialize() +/obj/item/dildo/Initialize() . = ..() if(random_color == TRUE) var/randcolor = pick(GLOB.dildo_colors) @@ -91,32 +91,36 @@ obj/item/dildo/Initialize() pixel_y = rand(-7,7) pixel_x = rand(-7,7) -obj/item/dildo/examine(mob/user) +/obj/item/dildo/examine(mob/user) ..() if(can_customize) user << "Alt-Click \the [src.name] to customize it." -obj/item/dildo/random//totally random +/obj/item/dildo/random//totally random name = "random dildo"//this name will show up in vendors and shit so you know what you're vending(or don't, i guess :^)) random_color = TRUE random_shape = TRUE random_size = TRUE -obj/item/dildo/knotted +/obj/item/dildo/knotted dildo_shape = "knotted" name = "knotted dildo" + attack_verb = list("penetrated", "knotted", "slapped") obj/item/dildo/human dildo_shape = "human" name = "human dildo" + attack_verb = list("penetrated", "slapped") obj/item/dildo/plain dildo_shape = "plain" name = "plain dildo" + attack_verb = list("penetrated", "slapped") obj/item/dildo/flared dildo_shape = "flared" name = "flared dildo" + attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed") obj/item/dildo/flared/huge name = "literal horse cock" @@ -133,34 +137,57 @@ obj/item/dildo/custom //Suicide acts, by request -/obj/item/dildo/knotted/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/knotted/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) -/obj/item/dildo/human/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/human/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) -/obj/item/dildo/plain/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/plain/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) -/obj/item/dildo/flared/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/flared/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) -/obj/item/dildo/flared/huge/suicide_act(mob/user) - user.visible_message("") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) +/obj/item/dildo/flared/huge/suicide_act(mob/living/user) + user.visible_message("[user] gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? [user.p_theyre()] trying to commit suicide!!") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) return (OXYLOSS) -/obj/item/dildo/flared/huge/suicide_act(mob/user) - user.visible_message("") +/obj/item/dildo/flared/custom/suicide_act(mob/living/user) + user.visible_message("[user] gags as they shove [src] down their throat! It looks like they wanted a custom death message!!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + sleep(15) return (OXYLOSS) From 246d6b391f132cb4bf29718dd9fdcd5e3644eaff Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Fri, 4 Jan 2019 00:47:02 -0800 Subject: [PATCH 09/62] Update medicine_reagents.dm --- code/modules/reagents/chemistry/reagents/medicine_reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 02c5d61643..4e278d2ede 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -553,7 +553,7 @@ M.adjustStaminaLoss(-4.5*REM, 0) M.Jitter(10) if(prob(50)) - M.Confuse(1) + M.confused = max(M.confused, 1) ..() return TRUE From 5f019696bd39bdb627b061a91f34a4731e1925d0 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 06:52:57 -0500 Subject: [PATCH 10/62] Spellcheck 2 Electric Boogaloo statis Misspelling of status. --- code/modules/projectiles/ammunition/ballistic/shotgun.dm | 2 +- code/modules/research/techweb/all_nodes.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 39cf924169..7a8a186072 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -115,7 +115,7 @@ /obj/item/ammo_casing/shotgun/dart/noreact name = "cryostasis shotgun dart" - desc = "A dart for use in shotguns, using similar technology as cryostatis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical." + desc = "A dart for use in shotguns, using similar technology as cryostasis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical." icon_state = "cnrshell" reagent_amount = 10 reagent_react = FALSE diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 826f8d05b8..14d3c02284 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -580,7 +580,7 @@ display_name = "Medical Weaponry" description = "Weapons using medical technology." prereq_ids = list("adv_biotech", "adv_weaponry") - design_ids = list("rapidsyringe", "shotgundartcryostatis") + design_ids = list("rapidsyringe", "shotgundartcryostasis") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 From b3a5b2257846c36c586e33ec49c30f91b9dbf222 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 07:18:28 -0500 Subject: [PATCH 11/62] TRAVIS LEAVE ME ALONE --- modular_citadel/code/modules/arousal/toys/dildos.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 8d41933429..b1fee37d3d 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -189,5 +189,3 @@ obj/item/dildo/custom user.adjust_eye_damage(10) sleep(15) return (OXYLOSS) - - From e390f379983736b6ca0b821db0883a3329e58822 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 07:36:32 -0500 Subject: [PATCH 12/62] Adjusts wording for grammar on cryo shotgun dart Travis is fucking bullying me. --- code/modules/projectiles/ammunition/ballistic/shotgun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 7a8a186072..d57edf154d 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -115,7 +115,7 @@ /obj/item/ammo_casing/shotgun/dart/noreact name = "cryostasis shotgun dart" - desc = "A dart for use in shotguns, using similar technology as cryostasis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical." + desc = "A dart for use in shotguns. Uses technology similar to cryostasis beakers to keep internal reagents from reacting. Can be injected with up to 10 units of any chemical." icon_state = "cnrshell" reagent_amount = 10 reagent_react = FALSE From 6e30048029a47898d5bef1b55d3abde70037f909 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 08:20:27 -0500 Subject: [PATCH 13/62] I guess it didn't like that. I don't know how to fix this so I'm changing it back uwu --- code/modules/research/techweb/all_nodes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 14d3c02284..826f8d05b8 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -580,7 +580,7 @@ display_name = "Medical Weaponry" description = "Weapons using medical technology." prereq_ids = list("adv_biotech", "adv_weaponry") - design_ids = list("rapidsyringe", "shotgundartcryostasis") + design_ids = list("rapidsyringe", "shotgundartcryostatis") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000) export_price = 5000 From 2ab86321c359b1989f0a9f37811878d0fea3bdd9 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Fri, 4 Jan 2019 16:45:06 -0500 Subject: [PATCH 14/62] Conforms with changes requested by the BhjinBot Really cool bot I can't believe we have something so advanced for our codebase. --- .../code/modules/arousal/toys/dildos.dm | 56 ++++++++++--------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index b1fee37d3d..0f73564cad 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -105,22 +105,22 @@ /obj/item/dildo/knotted dildo_shape = "knotted" name = "knotted dildo" - attack_verb = list("penetrated", "knotted", "slapped") + attack_verb = list("penetrated", "knotted", "slapped", "inseminated") obj/item/dildo/human dildo_shape = "human" name = "human dildo" - attack_verb = list("penetrated", "slapped") + attack_verb = list("penetrated", "slapped", "inseminated") obj/item/dildo/plain dildo_shape = "plain" name = "plain dildo" - attack_verb = list("penetrated", "slapped") + attack_verb = list("penetrated", "slapped", "inseminated") obj/item/dildo/flared dildo_shape = "flared" name = "flared dildo" - attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed") + attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") obj/item/dildo/flared/huge name = "literal horse cock" @@ -135,57 +135,63 @@ obj/item/dildo/custom random_shape = TRUE random_size = TRUE -//Suicide acts, by request +// Suicide acts, by request + +/obj/item/dildo/proc/manual_suicide(mob/living/user) + user.visible_message("[user] finally finishes deepthroating the [src], and their life.") + user.adjustOxyLoss(200) + user.death(0) /obj/item/dildo/knotted/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE /obj/item/dildo/human/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE -/obj/item/dildo/plain/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") +/obj/item/dildo/plain/suicide_act(mob/living/user, delay = 150) + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE /obj/item/dildo/flared/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE /obj/item/dildo/flared/huge/suicide_act(mob/living/user) - user.visible_message("[user] gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? [user.p_theyre()] trying to commit suicide!!") + user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) - user.Stun(150) + user.Stun(300) user.adjust_blurriness(8) - user.adjust_eye_damage(10) - return (OXYLOSS) + user.adjust_eye_damage(15) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 22) + return MANUAL_SUICIDE /obj/item/dildo/flared/custom/suicide_act(mob/living/user) user.visible_message("[user] gags as they shove [src] down their throat! It looks like they wanted a custom death message!!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) + user.Stun(50) user.adjust_blurriness(8) user.adjust_eye_damage(10) - sleep(15) - return (OXYLOSS) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 5) + return MANUAL_SUICIDE From eada20a1d9ee147dd2f3fc4826696ee0a916873e Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 5 Jan 2019 23:14:29 -0800 Subject: [PATCH 15/62] Update closed.dm --- code/game/turfs/closed.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/turfs/closed.dm b/code/game/turfs/closed.dm index bcffd728c6..6297cadc63 100644 --- a/code/game/turfs/closed.dm +++ b/code/game/turfs/closed.dm @@ -84,6 +84,7 @@ icon = 'icons/turf/walls/riveted.dmi' icon_state = "riveted" smooth = SMOOTH_TRUE + explosion_block = INFINITY /turf/closed/indestructible/riveted/uranium icon = 'icons/turf/walls/uranium_wall.dmi' From 9824bdb48077996101855f932a599939b4446fef Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 6 Jan 2019 01:26:59 -0800 Subject: [PATCH 16/62] Update RCD.dm --- code/game/objects/items/RCD.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index 82315b8f35..c3569be8b9 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -36,6 +36,7 @@ RLD var/no_ammo_message = "The \'Low Ammo\' light on the device blinks yellow." var/has_ammobar = FALSE //controls whether or not does update_icon apply ammo indicator overlays var/ammo_sections = 10 //amount of divisions in the ammo indicator overlay/number of ammo indicator states + var/custom_range = 7 /obj/item/construction/Initialize() . = ..() @@ -119,7 +120,7 @@ RLD return . /obj/item/construction/proc/range_check(atom/A, mob/user) - if(!(A in view(7, get_turf(user)))) + if(!(A in range(custom_range, get_turf(user)))) to_chat(user, "The \'Out of Range\' light on [src] blinks red.") return FALSE else @@ -519,8 +520,9 @@ RLD icon_state = "rld-5" lefthand_file = 'icons/mob/inhands/equipment/tools_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' - matter = 200 - max_matter = 200 + matter = 500 + max_matter = 500 + sheet_multiplier = 16 var/mode = LIGHT_MODE actions_types = list(/datum/action/item_action/pick_color) @@ -531,7 +533,7 @@ RLD var/walldelay = 10 var/floordelay = 10 - var/decondelay = 15 + var/decondelay = 10 var/color_choice = null From 3ae46ba2da6e5d7ce31d7d0beb92643ce97a0a61 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 6 Jan 2019 04:27:06 -0500 Subject: [PATCH 17/62] Moves RCLD to a proper place --- code/modules/cargo/packs.dm | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index a8874738f7..a6d32c088f 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1493,6 +1493,18 @@ crate_name = "janitor backpack crate" crate_type = /obj/structure/closet/crate/secure +/datum/supply_pack/organic/advlighting + name = "Advanced Lighting crate" + desc = "Thanks to advanced lighting tech we here at the Lamp Factory have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!" + cost = 2500 //Fair + contains = list(/obj/item/construction/rld, + /obj/item/flashlight/lamp, + /obj/item/flashlight/lamp, + /obj/item/flashlight/lamp/green, + /obj/item/storage/box/lights/mixed) + crate_name = "advanced lighting crate" + crate_type = /obj/structure/closet/crate/secure + /datum/supply_pack/service/mule name = "MULEbot Crate" desc = "Pink-haired Quartermaster not doing her job? Replace her with this tireless worker, today!" @@ -1728,18 +1740,6 @@ crate_name = "hydroponics backpack crate" crate_type = /obj/structure/closet/crate/secure -/datum/supply_pack/organic/advlighting - name = "Advanced Lighting crate" - desc = "Thanks to advanced lighting tech we here at the Lamp Factor have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!" - cost = 2500 //Fair - contains = list(/obj/item/construction/rld, - /obj/item/flashlight/lamp, - /obj/item/flashlight/lamp, - /obj/item/flashlight/lamp/green, - /obj/item/storage/box/lights/mixed) - crate_name = "advanced lighting crate" - crate_type = /obj/structure/closet/crate/secure - /datum/supply_pack/organic/pizza name = "Pizza Crate" desc = "Best prices on this side of the galaxy. All deliveries are guaranteed to be 99% anomaly-free!" From a5ba768918f555079c3709315c4c92c6e1cc3019 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 6 Jan 2019 01:51:47 -0800 Subject: [PATCH 18/62] Update RCD.dm --- code/game/objects/items/RCD.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm index c3569be8b9..795871d3b5 100644 --- a/code/game/objects/items/RCD.dm +++ b/code/game/objects/items/RCD.dm @@ -522,7 +522,7 @@ RLD righthand_file = 'icons/mob/inhands/equipment/tools_righthand.dmi' matter = 500 max_matter = 500 - sheet_multiplier = 16 + sheetmultiplier = 16 var/mode = LIGHT_MODE actions_types = list(/datum/action/item_action/pick_color) From 79f4b77b4a4cec89aafd25f43cea27ca938259b3 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 7 Jan 2019 21:27:23 -0500 Subject: [PATCH 19/62] Update engivend.dm --- code/modules/vending/engivend.dm | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index 0e64e0a367..d715b5f4ba 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -4,21 +4,27 @@ icon_state = "engivend" icon_deny = "engivend-deny" req_access = list(ACCESS_ENGINE_EQUIP) - products = list(/obj/item/clothing/glasses/meson/engine = 2, - /obj/item/clothing/glasses/welding = 3, - /obj/item/multitool = 4, + products = list(/obj/item/clothing/glasses/meson/engine = 5, + /obj/item/clothing/glasses/welding = 5, + /obj/item/multitool = 5, /obj/item/construction/rcd/loaded = 3, /obj/item/grenade/chem_grenade/smart_metal_foam = 10, - /obj/item/geiger_counter = 5, + /obj/item/geiger_counter = 6, /obj/item/stock_parts/cell/high = 10, - /obj/item/electronics/airlock = 10, + /obj/item/electronics/airlock = 10, /obj/item/electronics/apc = 10, /obj/item/electronics/airalarm = 10, /obj/item/electronics/firealarm = 10, - /obj/item/electronics/firelock = 10 + /obj/item/electronics/firelock = 10, + /obj/item/rcd_ammo = 3 ) - contraband = list(/obj/item/stock_parts/cell/potato = 3) + contraband = list(/obj/item/stock_parts/cell/potato = 3, + /obj/item/stock_parts/cell/emproof = 5, + /obj/item/rcd_ammo = 2 + ) premium = list(/obj/item/storage/belt/utility = 3, - /obj/item/storage/box/smart_metal_foam = 1) + /obj/item/storage/box/smart_metal_foam = 3, + /obj/item/rcd_ammo/large = 5 + ) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) resistance_flags = FIRE_PROOF From 4a50b86b478d1952690e7dd9b8d7ea4d0848a067 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Tue, 8 Jan 2019 10:09:48 -0800 Subject: [PATCH 20/62] Revert "[Ready] Makes synda paper mask correct eye sight and flash proof (#7858)" This reverts commit 2b68547f8d612acc8a8a4c4d4f4d7bd7a9bd8787. --- .../code/modules/clothing/glasses/phantomthief.dm | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm index e5f58d4082..49eb089afa 100644 --- a/modular_citadel/code/modules/clothing/glasses/phantomthief.dm +++ b/modular_citadel/code/modules/clothing/glasses/phantomthief.dm @@ -1,8 +1,6 @@ /obj/item/clothing/glasses/phantomthief name = "suspicious paper mask" - desc = "A cheap, Syndicate-branded paper face mask with vision correction lens and flash proof! They'll never see it coming. This mask goes over your eyes." - flash_protect = 1 - vision_correction = 1 + desc = "A cheap, Syndicate-branded paper face mask. They'll never see it coming." alternate_worn_icon = 'icons/mob/mask.dmi' icon = 'icons/obj/clothing/masks.dmi' icon_state = "s-ninja" @@ -14,7 +12,7 @@ /obj/item/clothing/glasses/phantomthief/syndicate name = "suspicious plastic mask" - desc = "A cheap, bulky, Syndicate-branded plastic face mask with vision correction lens and flash proof. You have to break in to break out. This mask goes over your eyes." + desc = "A cheap, bulky, Syndicate-branded plastic face mask. You have to break in to break out." var/nextadrenalinepop var/datum/component/redirect/combattoggle_redir From ae8b026cf2f61e2dacde5494225abd4652a31bf1 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 8 Jan 2019 15:17:02 -0500 Subject: [PATCH 21/62] Update packs.dm --- code/modules/cargo/packs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index a6d32c088f..0fae034357 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1493,7 +1493,7 @@ crate_name = "janitor backpack crate" crate_type = /obj/structure/closet/crate/secure -/datum/supply_pack/organic/advlighting +/datum/supply_pack/service/advlighting name = "Advanced Lighting crate" desc = "Thanks to advanced lighting tech we here at the Lamp Factory have be able to produce more lamps and lamp items! This crate has three lamps, a box of lights and a state of the art rapid-light-device!" cost = 2500 //Fair From 104a3406a0ae94b18b6bb5cf2590985af2588d9e Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 8 Jan 2019 16:19:12 -0500 Subject: [PATCH 22/62] Makes the server tagline a config option --- code/controllers/configuration/entries/general.dm | 3 +++ code/game/world.dm | 2 +- config/config.txt | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 53f03ebfff..595e1d9ca0 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -7,6 +7,9 @@ /datum/config_entry/string/servername // server name (the name of the game window) +/datum/config_entry/string/servertagline + config_entry_value = "We forgot to set the server's tagline in config.txt" + /datum/config_entry/string/serversqlname // short form server name used for the DB /datum/config_entry/string/stationname // station name (the name of the station in-game) diff --git a/code/game/world.dm b/code/game/world.dm index e83a01e7f2..d8576206dd 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -263,7 +263,7 @@ GLOBAL_VAR(restart_counter) s += "Citadel" //Replace this with something else. Or ever better, delete it and uncomment the game version. CIT CHANGE - modifies the hub entry link s += "" s += ")\]" //CIT CHANGE - encloses the server title in brackets to make the hub entry fancier - s += "
That furry /TG/code server your mother warned you about.
" //CIT CHANGE - adds a tagline! + s += "
[CONFIG_GET(string/servertagline)]
" //CIT CHANGE - adds a tagline! var/n = 0 for (var/mob/M in GLOB.player_list) diff --git a/config/config.txt b/config/config.txt index 33bff862d9..3bc9f873a9 100644 --- a/config/config.txt +++ b/config/config.txt @@ -16,6 +16,9 @@ $include antag_rep.txt ## Server name: This appears at the top of the screen in-game and in the BYOND hub. Uncomment and replace 'tgstation' with the name of your choice. # SERVERNAME tgstation +## Server tagline: This will appear right below the server's title. +# SERVERTAGLINE A generic TG-based server + ## Server SQL name: This is the name used to identify the server to the SQL DB, distinct from SERVERNAME as it must be at most 32 characters. # SERVERSQLNAME tgstation From ecf2ed5639c67ffd4519b738c2e17e99d346ad32 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 09:36:16 -0500 Subject: [PATCH 23/62] Grammar adjusts for negative traits. Improves grammar, spelling and legibility for Mute and Phobia traits. Also adds verbosity for their descriptions and acquisition/loss messages. --- code/datums/traits/negative.dm | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index da0b811d03..3a104502ef 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -267,14 +267,32 @@ /datum/quirk/phobia name = "Phobia" - desc = "You've had a traumatic past, that has scared you for life while dealing with your greatest fear." + desc = "You've had a traumatic past, one that has scarred you for life, and cripples you when dealing with your greatest fears." value = -2 // It can hardstun you. You can be a job that your phobia targets... - gain_text = "You feel your fears manifest themselfs." - lose_text = "You feel your fears fade away." - medical_record_text = "Patient has an extreme or irrational fear of or aversion to something." + gain_text = "You begin to tremble as an immeasurable fear grips your mind." + lose_text = "Your confidence wipes away the fear that had been plagueing you." + medical_record_text = "Patient has an extreme or irrational fear and aversion to an undefined stimuli." var/datum/brain_trauma/mild/phobia/phobia - + /datum/quirk/phobia/add() var/mob/living/carbon/human/H = quirk_holder phobia = new H.gain_trauma(phobia, TRAUMA_RESILIENCE_SURGERY) + + /datum/quirk/mute + name = "Mute" + desc = "Due to some accident, medical condition, or simply by choice, you are completely unable to speak." + + value = -2 //HALP MAINTS + gain_text = "You find yourself unable to speak!" + lose_text = "You feel a growing strength in your vocal chords." + medical_record_text = "Functionally mute, patient is unable to use their voice in any capacity." + var/datum/brain_trauma/severe/mute + + /datum/quirk/mute/add() + var/mob/living/carbon/human/H = quirk_holder + H.gain_trauma(mute, TRAUMA_RESILIENCE_SURGERY) + + /datum/quirk/mute/on_process() + if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums)) + to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") From 39d75b93b1fcba0c9c4ca1a99ab5d30659f9c47a Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 09:43:24 -0500 Subject: [PATCH 24/62] Git acting fucky --- code/datums/traits/negative.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index a214977bac..f1a4e07e41 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -278,7 +278,7 @@ var/mob/living/carbon/human/H = quirk_holder phobia = new H.gain_trauma(phobia, TRAUMA_RESILIENCE_SURGERY) - + /datum/quirk/mute name = "Mute" desc = "Due to some accident, medical condition, or simply by choice, you are completely unable to speak." From 7cca2e7fe9466f0c7fbc85586d02d5b565c9ecc4 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 10:08:34 -0500 Subject: [PATCH 25/62] uhhh is this something that should be done because i have no idea --- code/datums/traits/negative.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index f1a4e07e41..095f75cb55 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -294,4 +294,4 @@ /datum/quirk/mute/on_process() if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums)) - to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") \ No newline at end of file + to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") qdel(src) From ff51bf470f1a1a5b34f0a37c8e900a0925a5eeca Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 10:10:44 -0500 Subject: [PATCH 26/62] git still being weird --- code/datums/traits/negative.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index 095f75cb55..aced161f48 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -294,4 +294,5 @@ /datum/quirk/mute/on_process() if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums)) - to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") qdel(src) + to_chat(quirk_holder, "Your antagonistic nature has caused your voice to return.") + qdel(src) From 0ba384be86a791f2afc64290726268362b86b65a Mon Sep 17 00:00:00 2001 From: Ghommie Date: Wed, 9 Jan 2019 21:18:25 +0100 Subject: [PATCH 27/62] 1 --- code/modules/hydroponics/hydroitemdefines.dm | 50 ++++---------------- 1 file changed, 9 insertions(+), 41 deletions(-) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index e3ca576944..1ea0068a1a 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -24,10 +24,7 @@ lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' volume = 100 - -/obj/item/reagent_containers/spray/weedspray/Initialize() - . = ..() - reagents.add_reagent("weedkiller", 100) + list_reagents = list("weedkiller" = 100) /obj/item/reagent_containers/spray/weedspray/suicide_act(mob/user) user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -42,10 +39,7 @@ lefthand_file = 'icons/mob/inhands/equipment/hydroponics_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/hydroponics_righthand.dmi' volume = 100 - -/obj/item/reagent_containers/spray/pestspray/Initialize() - . = ..() - reagents.add_reagent("pestkiller", 100) + list_reagents = list("pestkiller" = 100) /obj/item/reagent_containers/spray/pestspray/suicide_act(mob/user) user.visible_message("[user] is huffing [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -157,71 +151,45 @@ /obj/item/reagent_containers/glass/bottle/nutrient name = "bottle of nutrient" - icon = 'icons/obj/chemical.dmi' volume = 50 - w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 possible_transfer_amounts = list(1,2,5,10,15,25,50) /obj/item/reagent_containers/glass/bottle/nutrient/Initialize() . = ..() - src.pixel_x = rand(-5, 5) - src.pixel_y = rand(-5, 5) + pixel_x = rand(-5, 5) + pixel_y = rand(-5, 5) /obj/item/reagent_containers/glass/bottle/nutrient/ez name = "bottle of E-Z-Nutrient" desc = "Contains a fertilizer that causes mild mutations with each harvest." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/nutrient/ez/Initialize() - . = ..() - reagents.add_reagent("eznutriment", 50) + list_reagents = list("eznutriment" = 50) /obj/item/reagent_containers/glass/bottle/nutrient/l4z name = "bottle of Left 4 Zed" desc = "Contains a fertilizer that limits plant yields to no more than one and causes significant mutations in plants." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/nutrient/l4z/Initialize() - . = ..() - reagents.add_reagent("left4zednutriment", 50) + list_reagents = list("left4zednutriment" = 50) /obj/item/reagent_containers/glass/bottle/nutrient/rh name = "bottle of Robust Harvest" desc = "Contains a fertilizer that increases the yield of a plant by 30% while causing no mutations." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/nutrient/rh/Initialize() - . = ..() - reagents.add_reagent("robustharvestnutriment", 50) + list_reagents = list("robustharvestnutriment" = 50) /obj/item/reagent_containers/glass/bottle/nutrient/empty name = "bottle" - icon = 'icons/obj/chemical.dmi' /obj/item/reagent_containers/glass/bottle/killer - name = "bottle" - icon = 'icons/obj/chemical.dmi' volume = 50 - w_class = WEIGHT_CLASS_TINY amount_per_transfer_from_this = 10 possible_transfer_amounts = list(1,2,5,10,15,25,50) /obj/item/reagent_containers/glass/bottle/killer/weedkiller name = "bottle of weed killer" desc = "Contains a herbicide." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/killer/weedkiller/Initialize() - . = ..() - reagents.add_reagent("weedkiller", 50) + list_reagents = list("weedkiller" = 50) /obj/item/reagent_containers/glass/bottle/killer/pestkiller name = "bottle of pest spray" desc = "Contains a pesticide." - icon = 'icons/obj/chemical.dmi' - -/obj/item/reagent_containers/glass/bottle/killer/pestkiller/Initialize() - . = ..() - reagents.add_reagent("pestkiller", 50) + list_reagents = list("pestkiller" = 50) \ No newline at end of file From f981618f7eb6a45ade54899c24c5f2b083a1fd16 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 17:21:58 -0500 Subject: [PATCH 28/62] oops --- code/datums/traits/negative.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm index aced161f48..fad1c8e615 100644 --- a/code/datums/traits/negative.dm +++ b/code/datums/traits/negative.dm @@ -270,7 +270,7 @@ desc = "You've had a traumatic past, one that has scarred you for life, and cripples you when dealing with your greatest fears." value = -2 // It can hardstun you. You can be a job that your phobia targets... gain_text = "You begin to tremble as an immeasurable fear grips your mind." - lose_text = "Your confidence wipes away the fear that had been plagueing you." + lose_text = "Your confidence wipes away the fear that had been plaguing you." medical_record_text = "Patient has an extreme or irrational fear and aversion to an undefined stimuli." var/datum/brain_trauma/mild/phobia/phobia From 77a28abccf80daf8ffa39c774ca39163007fd632 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Wed, 9 Jan 2019 22:07:11 -0500 Subject: [PATCH 29/62] Code improvements Thanks to @Ghommie for the suggestion. --- .../code/modules/arousal/toys/dildos.dm | 36 +++++-------------- 1 file changed, 9 insertions(+), 27 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 0f73564cad..87cc7a73c2 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -142,6 +142,15 @@ obj/item/dildo/custom user.adjustOxyLoss(200) user.death(0) +/obj/item/dildo/suicide_act(mob/living/user) + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) + addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + return MANUAL_SUICIDE + /obj/item/dildo/knotted/suicide_act(mob/living/user) user.visible_message("[user] tears-up and gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) @@ -151,33 +160,6 @@ obj/item/dildo/custom addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) return MANUAL_SUICIDE -/obj/item/dildo/human/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) - return MANUAL_SUICIDE - -/obj/item/dildo/plain/suicide_act(mob/living/user, delay = 150) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) - return MANUAL_SUICIDE - -/obj/item/dildo/flared/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) - return MANUAL_SUICIDE - /obj/item/dildo/flared/huge/suicide_act(mob/living/user) user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) From ab5681e3c8939fb3de5314ff136fa32911751faa Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Thu, 10 Jan 2019 03:00:40 -0800 Subject: [PATCH 30/62] Update brand_intelligence.dm --- code/modules/events/brand_intelligence.dm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index e33cfbd25d..a838b62e0d 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -18,7 +18,14 @@ "Your money can buy happiness!", \ "Engage direct marketing!", \ "Advertising is legalized lying! But don't let that put you off our great deals!", \ - "You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.") + "You don't want to buy anything? Yeah, well, I didn't want to buy your mom either.", + "Gamers, rise up!", + "Ok, now, this is epic.", + "HUMAN FUNNY.", + "But I'm already tracer!", + "How do I vore people?", + "ERP?", + "Not epic bros...") /datum/round_event/brand_intelligence/announce(fake) From 821c6f9db585624342485fa255072bfdf060ec67 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Thu, 10 Jan 2019 08:51:06 -0500 Subject: [PATCH 31/62] Found another one. TRILBYYYYYYYY --- code/game/objects/items/kitchen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index bf50e7546e..11d6f264b8 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -179,7 +179,7 @@ /obj/item/kitchen/knife/scimitar name = "Scimitar knife" - desc = "A knife used to cleanly butcher, its been modifed to be able to cut more meat then a normale knife. Do to the years of use its blade isnt as strong as it once was!" + desc = "A knife used to cleanly butcher. Its razor-sharp edge has been honed for butchering, but has been poorly maintained over the years." attack_verb = list("cleaved", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut") /obj/item/kitchen/knife/scimiar/Initialize() From e3e6a5a96a399320c89594a3e8439938fcdd88a4 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 10 Jan 2019 20:12:54 -0500 Subject: [PATCH 32/62] Ports tgstation/tgstation#41712 - Open storage by alt clicking --- code/datums/components/storage/storage.dm | 28 +++++++++++++++++------ 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 55af26b6b2..bd5702eef4 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -732,16 +732,30 @@ return hide_from(target) /datum/component/storage/proc/on_alt_click(datum/source, mob/user) - if(!isliving(user) || user.incapacitated() || !quickdraw || locked || !user.CanReach(parent)) + if(!isliving(user) || !user.CanReach(parent)) return - var/obj/item/I = locate() in real_location() - if(!I) + if(locked) + to_chat(user, "[parent] seems to be locked!") return - remove_from_storage(I, get_turf(user)) - if(!user.put_in_hands(I)) - to_chat(user, "You fumble for [I] and it falls on the floor.") + + var/atom/A = parent + if(!quickdraw) + A.add_fingerprint(user) + user_show_to_mob(user) + playsound(A, "rustle", 50, 1, -5) + return + + if(!user.incapacitated()) + var/obj/item/I = locate() in real_location() + if(!I) + return + A.add_fingerprint(user) + remove_from_storage(I, get_turf(user)) + if(!user.put_in_hands(I)) + to_chat(user, "You fumble for [I] and it falls on the floor.") + return + user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") return - user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].") /datum/component/storage/proc/action_trigger(datum/signal_source, datum/action/source) gather_mode_switch(source.owner) From 4ed87f0f549b8782a4a00533406d166d29e95be5 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 01:54:47 -0500 Subject: [PATCH 33/62] goonstyle attack animations - makes attacking rotate your character a little in the direction you're attacking --- code/game/atoms_movable.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index ba840d0771..e56f6d366c 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -622,8 +622,12 @@ else if(direction & WEST) pixel_x_diff = -8 - animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, time = 2) - animate(src, pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, time = 2) + var/matrix/OM = matrix(transform) + var/matrix/M = matrix(transform) + M.Turn(pixel_x_diff ? pixel_x_diff*2 : pick(-16, 16)) + + animate(src, pixel_x = pixel_x + pixel_x_diff, pixel_y = pixel_y + pixel_y_diff, transform = M, time = 2) + animate(src, pixel_x = pixel_x - pixel_x_diff, pixel_y = pixel_y - pixel_y_diff, transform = OM, time = 2) /atom/movable/proc/do_item_attack_animation(atom/A, visual_effect_icon, obj/item/used_item) var/image/I From e03cd1e405ca1369f9b5633be4d53dadf0d4d670 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 02:52:15 -0500 Subject: [PATCH 34/62] fancy throws - makes throws perform the attack animation and play a sound --- code/modules/mob/living/carbon/carbon.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 7bc0e281c5..ea13255dfe 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -188,6 +188,8 @@ if(thrown_thing) visible_message("[src] has thrown [thrown_thing].") src.log_message("has thrown [thrown_thing]", LOG_ATTACK) + do_attack_animation(target, no_effect = 1) + playsound(loc, 'sound/weapons/punchmiss.ogg', 50, 1, -1) newtonian_move(get_dir(target, src)) thrown_thing.throw_at(target, thrown_thing.throw_range, thrown_thing.throw_speed, src) From 0dc641f962044a8ddf6f08312342a89daea1cc06 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 03:08:10 -0500 Subject: [PATCH 35/62] noisy flashlights - makes flashlights play a small sound when toggled on/off --- code/game/objects/items/devices/flashlight.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index d22ef23291..cbbd7a387a 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -35,6 +35,7 @@ /obj/item/flashlight/attack_self(mob/user) on = !on update_brightness(user) + playsound(user, on ? 'sound/weapons/magin.ogg' : 'sound/weapons/magout.ogg', 40, 1) for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() From 37d90a780a74d1575e735ec1b8011cf4ee38d47e Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 04:27:53 -0500 Subject: [PATCH 36/62] all items in disposal pipes now make small sounds when they hit corners. all mobs will make very audible sounds when they hit corners --- code/game/sound.dm | 4 ++++ code/modules/recycling/disposal/pipe.dm | 10 ++++++++++ code/modules/recycling/disposal/pipe_sorting.dm | 1 + sound/effects/clang1.ogg | Bin 0 -> 10149 bytes sound/effects/clang2.ogg | Bin 0 -> 12993 bytes sound/effects/clangsmall1.ogg | Bin 0 -> 8753 bytes sound/effects/clangsmall2.ogg | Bin 0 -> 8532 bytes 7 files changed, 15 insertions(+) create mode 100644 sound/effects/clang1.ogg create mode 100644 sound/effects/clang2.ogg create mode 100644 sound/effects/clangsmall1.ogg create mode 100644 sound/effects/clangsmall2.ogg diff --git a/code/game/sound.dm b/code/game/sound.dm index 84351cdb95..b7e4e4131e 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -200,5 +200,9 @@ 'sound/vore/prey/death_04.ogg','sound/vore/prey/death_05.ogg','sound/vore/prey/death_06.ogg', 'sound/vore/prey/death_07.ogg','sound/vore/prey/death_08.ogg','sound/vore/prey/death_09.ogg', 'sound/vore/prey/death_10.ogg') + if("clang") + soundin = pick('sound/effects/clang1.ogg', 'sound/effects/clang2.ogg') + if("clangsmall") + soundin = pick('sound/effects/clangsmall1.ogg', 'sound/effects/clangsmall2.ogg') //END OF CIT CHANGES return soundin diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm index 6c269e44be..9f0fd930d7 100644 --- a/code/modules/recycling/disposal/pipe.dm +++ b/code/modules/recycling/disposal/pipe.dm @@ -1,5 +1,7 @@ // Disposal pipes +#define IFFY 2 + /obj/structure/disposalpipe name = "disposal pipe" desc = "An underfloor disposal pipe." @@ -16,6 +18,7 @@ var/dpdir = NONE // bitmask of pipe directions var/initialize_dirs = NONE // bitflags of pipe directions added on init, see \code\_DEFINES\pipe_construction.dm var/flip_type // If set, the pipe is flippable and becomes this type when flipped + var/canclank = FALSE // Determines if the pipe will cause a clank sound when holders pass by it. use the IFFY define for weird-ass edge cases like the segment subtype var/obj/structure/disposalconstruct/stored @@ -75,6 +78,8 @@ H.merge(H2) H.forceMove(P) + if(P.canclank == TRUE || (P.canclank == IFFY && P.dpdir != 3 && P.dpdir != 12)) + playsound(src, H.hasmob ? "clang" : "clangsmall", H.hasmob ? 50 : 25, 1) return P else // if wasn't a pipe, then they're now in our turf H.forceMove(get_turf(src)) @@ -184,6 +189,7 @@ /obj/structure/disposalpipe/segment icon_state = "pipe" initialize_dirs = DISP_DIR_FLIP + canclank = IFFY // A three-way junction with dir being the dominant direction @@ -191,6 +197,7 @@ icon_state = "pipe-j1" initialize_dirs = DISP_DIR_RIGHT | DISP_DIR_FLIP flip_type = /obj/structure/disposalpipe/junction/flip + canclank = TRUE // next direction to move // if coming in from secondary dirs, then next is primary dir @@ -229,6 +236,7 @@ //a trunk joining to a disposal bin or outlet on the same turf /obj/structure/disposalpipe/trunk icon_state = "pipe-t" + canclank = TRUE var/obj/linked // the linked obj/machinery/disposal or obj/disposaloutlet /obj/structure/disposalpipe/trunk/Initialize() @@ -299,3 +307,5 @@ /obj/structure/disposalpipe/broken/deconstruct() qdel(src) + +#undef IFFY diff --git a/code/modules/recycling/disposal/pipe_sorting.dm b/code/modules/recycling/disposal/pipe_sorting.dm index 5e26e9b767..d85c4bca78 100644 --- a/code/modules/recycling/disposal/pipe_sorting.dm +++ b/code/modules/recycling/disposal/pipe_sorting.dm @@ -5,6 +5,7 @@ desc = "An underfloor disposal pipe with a sorting mechanism." icon_state = "pipe-j1s" initialize_dirs = DISP_DIR_RIGHT | DISP_DIR_FLIP + canclank = TRUE /obj/structure/disposalpipe/sorting/nextdir(obj/structure/disposalholder/H) var/sortdir = dpdir & ~(dir | turn(dir, 180)) diff --git a/sound/effects/clang1.ogg b/sound/effects/clang1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..eef118e4d46d101991b24c7914134b52f697b298 GIT binary patch literal 10149 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 literal 0 HcmV?d00001 diff --git a/sound/effects/clang2.ogg b/sound/effects/clang2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..175fe98fd120f7711470353d09ca1a9df808eb49 GIT binary patch literal 12993 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 GVEupU(tw!& literal 0 HcmV?d00001 diff --git a/sound/effects/clangsmall2.ogg b/sound/effects/clangsmall2.ogg new file mode 100644 index 0000000000000000000000000000000000000000..3211e66b75568f272ae2844d6eabfb74accbef1c GIT binary patch literal 8532 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

-Q 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 pT{s Date: Fri, 11 Jan 2019 04:58:11 -0500 Subject: [PATCH 37/62] makes the sound actually play at the right place --- code/modules/recycling/disposal/pipe.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/recycling/disposal/pipe.dm b/code/modules/recycling/disposal/pipe.dm index 9f0fd930d7..aed2310a7f 100644 --- a/code/modules/recycling/disposal/pipe.dm +++ b/code/modules/recycling/disposal/pipe.dm @@ -79,7 +79,7 @@ H.forceMove(P) if(P.canclank == TRUE || (P.canclank == IFFY && P.dpdir != 3 && P.dpdir != 12)) - playsound(src, H.hasmob ? "clang" : "clangsmall", H.hasmob ? 50 : 25, 1) + playsound(P, H.hasmob ? "clang" : "clangsmall", H.hasmob ? 50 : 25, 1) return P else // if wasn't a pipe, then they're now in our turf H.forceMove(get_turf(src)) From 2fa89d71b36e824046ee76c1d899ad740e6d31b2 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 11:40:46 -0500 Subject: [PATCH 38/62] FIXES A BUG THAT MAKES THE GAME EXTREMELY UNPLAYABLE --- code/__DEFINES/lighting.dm | 1 + code/modules/atmospherics/machinery/airalarm.dm | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 5db5c979e8..13dccc74fe 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -34,6 +34,7 @@ #define LIGHT_COLOR_BLUE "#6496FA" //Cold, diluted blue. rgb(100, 150, 250) #define LIGHT_COLOR_BLUEGREEN "#7DE1AF" //Light blueish green. rgb(125, 225, 175) +#define LIGHT_COLOR_PALEBLUE "#7DAFE1" //A pale blue-ish color. rgb(125, 175, 225) #define LIGHT_COLOR_CYAN "#7DE1E1" //Diluted cyan. rgb(125, 225, 225) #define LIGHT_COLOR_LIGHT_CYAN "#40CEFF" //More-saturated cyan. rgb(64, 206, 255) #define LIGHT_COLOR_DARK_BLUE "#6496FA" //Saturated blue. rgb(51, 117, 248) diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index bcb3752cbf..0a7b76cc79 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -650,7 +650,7 @@ if(0) add_overlay(AALARM_OVERLAY_GREEN) overlay_state = AALARM_OVERLAY_GREEN - light_color = LIGHT_COLOR_BLUEGREEN + light_color = LIGHT_COLOR_PALEBLUE set_light(brightness_on) if(1) add_overlay(AALARM_OVERLAY_WARN) From 236af6ae2bd06d765c37d964ea8991c889476ba7 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Fri, 11 Jan 2019 12:44:27 -0500 Subject: [PATCH 39/62] backpack jiggles - various interactions with backpacks will now make the backpack play an animation --- code/__HELPERS/unsorted.dm | 14 ++++++++++++++ code/datums/components/storage/storage.dm | 11 +++++++++++ 2 files changed, 25 insertions(+) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 620c592d93..87524c4ae6 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1239,6 +1239,20 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) pixel_x = initialpixelx pixel_y = initialpixely +/atom/proc/do_jiggle(targetangle = 45) + var/matrix/OM = matrix(transform) + var/matrix/M = matrix(transform) + M.Turn(pick(-targetangle, targetangle)) + animate(src, transform = M, time = 10, easing = ELASTIC_EASING) + animate(src, transform = OM, time = 10, easing = ELASTIC_EASING) + +/atom/proc/do_squish(squishx = -1, squishy = 2) + var/matrix/OM = matrix(transform) + var/matrix/M = matrix(transform) + M.Scale(squishx, squishy) + animate(src, transform = M, time = 10, easing = ELASTIC_EASING) + animate(src, transform = OM, time = 10, easing = ELASTIC_EASING) + /proc/weightclass2text(var/w_class) switch(w_class) if(WEIGHT_CLASS_TINY) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 55af26b6b2..b969f35972 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -169,10 +169,12 @@ if(locked) to_chat(M, "[parent] seems to be locked!") return FALSE + var/atom/A = parent var/obj/item/I = O if(collection_mode == COLLECT_ONE) if(can_be_inserted(I, null, M)) handle_item_insertion(I, null, M) + A.do_squish() return if(!isturf(I.loc)) return @@ -189,6 +191,7 @@ stoplag(1) qdel(progress) to_chat(M, "You put everything you could [insert_preposition] [parent].") + A.do_squish(-1, 3) /datum/component/storage/proc/handle_mass_item_insertion(list/things, datum/component/storage/src_object, mob/user, datum/progressbar/progress) var/atom/source_real_location = src_object.real_location() @@ -246,6 +249,7 @@ while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) stoplag(1) qdel(progress) + A.do_squish(2, 0) /datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found = TRUE) var/atom/real_location = real_location() @@ -455,6 +459,7 @@ return FALSE if(dump_destination.storage_contents_dump_act(src, M)) playsound(A, "rustle", 50, 1, -5) + A.do_squish(2, 0) return TRUE return FALSE @@ -473,6 +478,8 @@ return TRUE return FALSE handle_item_insertion(I, FALSE, M) + var/atom/A = parent + A.do_squish() /datum/component/storage/proc/return_inv(recursive) var/list/ret = list() @@ -514,6 +521,7 @@ if(A.loc != M) return playsound(A, "rustle", 50, 1, -5) + A.do_jiggle() if(istype(over_object, /obj/screen/inventory/hand)) var/obj/screen/inventory/hand/H = over_object M.putItemFromInventoryInHandIfPossible(A, H.held_index) @@ -539,6 +547,8 @@ if(!L.incapacitated() && I == L.get_active_held_item()) if(!SEND_SIGNAL(I, COMSIG_CONTAINS_STORAGE) && can_be_inserted(I, FALSE)) //If it has storage it should be trying to dump, not insert. handle_item_insertion(I, FALSE, L) + var/atom/A = parent + A.do_squish() //This proc return 1 if the item can be picked up and 0 if it can't. //Set the stop_messages to stop it from printing messages @@ -712,6 +722,7 @@ to_chat(user, "[parent] seems to be locked!") else show_to(user) + A.do_jiggle() /datum/component/storage/proc/signal_on_pickup(datum/source, mob/user) var/atom/A = parent From db0af68bf14da23b04f0121df6b29b6e554e87d1 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 12 Jan 2019 00:29:29 -0500 Subject: [PATCH 40/62] hold on what was i thinking let me adjust these values --- code/__HELPERS/unsorted.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 87524c4ae6..8c9873d8c8 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1246,7 +1246,7 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) animate(src, transform = M, time = 10, easing = ELASTIC_EASING) animate(src, transform = OM, time = 10, easing = ELASTIC_EASING) -/atom/proc/do_squish(squishx = -1, squishy = 2) +/atom/proc/do_squish(squishx = 1.2, squishy = 0.6) var/matrix/OM = matrix(transform) var/matrix/M = matrix(transform) M.Scale(squishx, squishy) @@ -1544,4 +1544,4 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) . = list() for(var/i in L) if(condition.Invoke(i)) - . |= i \ No newline at end of file + . |= i From 27653fe4ac82eff19e6382fb6be3801f18684e40 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 12 Jan 2019 00:31:24 -0500 Subject: [PATCH 41/62] grmbl grmbl --- code/datums/components/storage/storage.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index b969f35972..e2861d0a2b 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -191,7 +191,7 @@ stoplag(1) qdel(progress) to_chat(M, "You put everything you could [insert_preposition] [parent].") - A.do_squish(-1, 3) + A.do_squish(1.4, 0.4) /datum/component/storage/proc/handle_mass_item_insertion(list/things, datum/component/storage/src_object, mob/user, datum/progressbar/progress) var/atom/source_real_location = src_object.real_location() @@ -249,7 +249,7 @@ while (do_after(M, 10, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress))) stoplag(1) qdel(progress) - A.do_squish(2, 0) + A.do_squish(0.8, 1.2) /datum/component/storage/proc/mass_remove_from_storage(atom/target, list/things, datum/progressbar/progress, trigger_on_found = TRUE) var/atom/real_location = real_location() @@ -459,7 +459,7 @@ return FALSE if(dump_destination.storage_contents_dump_act(src, M)) playsound(A, "rustle", 50, 1, -5) - A.do_squish(2, 0) + A.do_squish(0.8, 1.2) return TRUE return FALSE From ee19fa5ea374c8a3ee75158228e3f466a6fa9abf Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 12 Jan 2019 00:49:07 -0500 Subject: [PATCH 42/62] OH THERE WE GO --- code/__HELPERS/unsorted.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 8c9873d8c8..2f69b63ae9 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1250,8 +1250,8 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) var/matrix/OM = matrix(transform) var/matrix/M = matrix(transform) M.Scale(squishx, squishy) - animate(src, transform = M, time = 10, easing = ELASTIC_EASING) - animate(src, transform = OM, time = 10, easing = ELASTIC_EASING) + animate(src, transform = M, time = 10, easing = BOUNCE_EASING) + animate(src, transform = OM, time = 10, easing = BOUNCE_EASING) /proc/weightclass2text(var/w_class) switch(w_class) From 18d2572e57b01b5358f27753942c21629a70fb15 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Sat, 12 Jan 2019 02:31:25 -0500 Subject: [PATCH 43/62] Code Improvements (again) Knowing what I know now makes me wanna go revamp every instance of suicide code but geez. --- .../code/modules/arousal/toys/dildos.dm | 63 ++++++++----------- 1 file changed, 25 insertions(+), 38 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 87cc7a73c2..f69b0b1935 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -105,7 +105,7 @@ /obj/item/dildo/knotted dildo_shape = "knotted" name = "knotted dildo" - attack_verb = list("penetrated", "knotted", "slapped", "inseminated") + attack_verb = list("penetrated", "knotted", "slapped", "inseminated") obj/item/dildo/human dildo_shape = "human" @@ -115,17 +115,18 @@ obj/item/dildo/human obj/item/dildo/plain dildo_shape = "plain" name = "plain dildo" - attack_verb = list("penetrated", "slapped", "inseminated") + attack_verb = list("penetrated", "slapped", "inseminated") obj/item/dildo/flared dildo_shape = "flared" name = "flared dildo" - attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") + attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") obj/item/dildo/flared/huge - name = "literal horse cock" - desc = "THIS THING IS HUGE!" - dildo_size = 4 + dildo_shape ="horse" + name = "literal horse cock" + desc = "THIS THING IS HUGE!" + dildo_size = 4 obj/item/dildo/custom name = "customizable dildo" @@ -137,43 +138,29 @@ obj/item/dildo/custom // Suicide acts, by request +var/is_knotted = (dildo_shape == knotted) ? "They swallowed the knot" : "Their face is turning blue" +var/is_horse = (dildo_shape == horse ) ? " + /obj/item/dildo/proc/manual_suicide(mob/living/user) - user.visible_message("[user] finally finishes deepthroating the [src], and their life.") - user.adjustOxyLoss(200) - user.death(0) + user.visible_message("[user] finally finishes deepthroating the [src], and their life.") + user.adjustOxyLoss(200) + user.death(0) /obj/item/dildo/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! Their face is turning blue! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) - return MANUAL_SUICIDE - -/obj/item/dildo/knotted/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! They swallowed the knot! It looks like [user.p_theyre()] trying to commit suicide!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(150) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 15) + if(do_after(user,17,target=src)) + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! [is_knotted]! It looks like [user.p_theyre()] trying to commit suicide!") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) + user.Stun(150) + user.adjust_blurriness(8) + user.adjust_eye_damage(10) return MANUAL_SUICIDE /obj/item/dildo/flared/huge/suicide_act(mob/living/user) - user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) - user.Stun(300) - user.adjust_blurriness(8) - user.adjust_eye_damage(15) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 22) + if(do_after(user,35,target=src)) + user.visible_message("[user] tears-up and gags as they try to deepthroat the [src]! WHY WOULD THEY DO THAT? It looks like [user.p_theyre()] trying to commit suicide!!") + playsound(loc, 'sound/weapons/gagging.ogg', 50, 2, -1) + user.Stun(300) + user.adjust_blurriness(8) + user.adjust_eye_damage(15) return MANUAL_SUICIDE -/obj/item/dildo/flared/custom/suicide_act(mob/living/user) - user.visible_message("[user] gags as they shove [src] down their throat! It looks like they wanted a custom death message!!") - playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) - user.Stun(50) - user.adjust_blurriness(8) - user.adjust_eye_damage(10) - addtimer(CALLBACK(src, .proc/manual_suicide, user), 5) - return MANUAL_SUICIDE From 1fd7bfe969eab189da464b8a906d487c315bf882 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Sat, 12 Jan 2019 02:50:03 -0500 Subject: [PATCH 44/62] oh whoops --- modular_citadel/code/modules/arousal/toys/dildos.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index f69b0b1935..885f6efc69 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -139,7 +139,6 @@ obj/item/dildo/custom // Suicide acts, by request var/is_knotted = (dildo_shape == knotted) ? "They swallowed the knot" : "Their face is turning blue" -var/is_horse = (dildo_shape == horse ) ? " /obj/item/dildo/proc/manual_suicide(mob/living/user) user.visible_message("[user] finally finishes deepthroating the [src], and their life.") From 245b2c1968fefeb6fc4ea28bacc5900051b823f7 Mon Sep 17 00:00:00 2001 From: Ragolution Date: Sat, 12 Jan 2019 03:45:25 -0500 Subject: [PATCH 45/62] Removed knot conditionals whatever --- modular_citadel/code/modules/arousal/toys/dildos.dm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/modules/arousal/toys/dildos.dm b/modular_citadel/code/modules/arousal/toys/dildos.dm index 885f6efc69..4b0a7ad919 100644 --- a/modular_citadel/code/modules/arousal/toys/dildos.dm +++ b/modular_citadel/code/modules/arousal/toys/dildos.dm @@ -18,6 +18,7 @@ var/random_color = TRUE var/random_size = FALSE var/random_shape = FALSE + var/is_knotted = FALSE //Lists moved to _cit_helpers.dm as globals so they're not instanced individually /obj/item/dildo/proc/update_appearance() @@ -123,7 +124,6 @@ obj/item/dildo/flared attack_verb = list("penetrated", "slapped", "neighed", "gaped", "prolapsed", "inseminated") obj/item/dildo/flared/huge - dildo_shape ="horse" name = "literal horse cock" desc = "THIS THING IS HUGE!" dildo_size = 4 @@ -138,16 +138,15 @@ obj/item/dildo/custom // Suicide acts, by request -var/is_knotted = (dildo_shape == knotted) ? "They swallowed the knot" : "Their face is turning blue" - /obj/item/dildo/proc/manual_suicide(mob/living/user) user.visible_message("[user] finally finishes deepthroating the [src], and their life.") user.adjustOxyLoss(200) user.death(0) /obj/item/dildo/suicide_act(mob/living/user) +// is_knotted = ((src.dildo_shape == "knotted")?"They swallowed the knot":"Their face is turning blue") if(do_after(user,17,target=src)) - user.visible_message("[user] tears-up and gags as they shove [src] down their throat! [is_knotted]! It looks like [user.p_theyre()] trying to commit suicide!") + user.visible_message("[user] tears-up and gags as they shove [src] down their throat! It looks like [user.p_theyre()] trying to commit suicide!") playsound(loc, 'sound/weapons/gagging.ogg', 50, 1, -1) user.Stun(150) user.adjust_blurriness(8) From e485dfc8124883ebc7739dea7c0fddf28ae34274 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sat, 12 Jan 2019 17:02:58 -0800 Subject: [PATCH 46/62] Update brain.dm --- code/modules/mob/living/brain/brain.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/brain/brain.dm b/code/modules/mob/living/brain/brain.dm index e8a15d70ae..76b416772e 100644 --- a/code/modules/mob/living/brain/brain.dm +++ b/code/modules/mob/living/brain/brain.dm @@ -15,7 +15,6 @@ OB.brainmob = src forceMove(OB) - /mob/living/brain/proc/create_dna() stored_dna = new /datum/dna/stored(src) if(!stored_dna.species) @@ -28,6 +27,7 @@ death(1) //Brains can die again. AND THEY SHOULD AHA HA HA HA HA HA if(mind) //You aren't allowed to return to brains that don't exist mind.current = null + mind.active = FALSE //No one's using it anymore. ghostize() //Ghostize checks for key so nothing else is necessary. container = null return ..() From 6d9c76ce3aa54e24f898c241fbcb520251e9512e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 13 Jan 2019 01:31:20 -0500 Subject: [PATCH 47/62] Update engivend.dm --- code/modules/vending/engivend.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index d715b5f4ba..b66195151d 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -19,7 +19,6 @@ /obj/item/rcd_ammo = 3 ) contraband = list(/obj/item/stock_parts/cell/potato = 3, - /obj/item/stock_parts/cell/emproof = 5, /obj/item/rcd_ammo = 2 ) premium = list(/obj/item/storage/belt/utility = 3, From 913de5376076b030fa75f47374e89d48c24b7ccf Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 13 Jan 2019 01:42:11 -0500 Subject: [PATCH 48/62] Update engivend.dm --- code/modules/vending/engivend.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/vending/engivend.dm b/code/modules/vending/engivend.dm index b66195151d..9358d1652f 100644 --- a/code/modules/vending/engivend.dm +++ b/code/modules/vending/engivend.dm @@ -19,7 +19,9 @@ /obj/item/rcd_ammo = 3 ) contraband = list(/obj/item/stock_parts/cell/potato = 3, - /obj/item/rcd_ammo = 2 + /obj/item/rcd_ammo = 2, + /obj/item/circuitboard/computer/slot_machine = 1, + /obj/item/tank/internals/emergency_oxygen/double = 3 ) premium = list(/obj/item/storage/belt/utility = 3, /obj/item/storage/box/smart_metal_foam = 3, From f5382b4ff6562473733708d8da7a8e2620fb792f Mon Sep 17 00:00:00 2001 From: nik707 <38332985+nik707@users.noreply.github.com> Date: Sun, 13 Jan 2019 02:04:46 -0600 Subject: [PATCH 49/62] absolutely tested --- code/modules/power/generator.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/generator.dm b/code/modules/power/generator.dm index f3f960c0ee..8e121dc809 100644 --- a/code/modules/power/generator.dm +++ b/code/modules/power/generator.dm @@ -65,7 +65,7 @@ if(delta_temperature > 0 && cold_air_heat_capacity > 0 && hot_air_heat_capacity > 0) - var/efficiency = 0.65 + var/efficiency = 0.45 var/energy_transfer = delta_temperature*hot_air_heat_capacity*cold_air_heat_capacity/(hot_air_heat_capacity+cold_air_heat_capacity) From 0015e806abf01097b5d7dbe9f152dfa50c5a7920 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 13 Jan 2019 02:36:15 -0600 Subject: [PATCH 50/62] donation item --- .../code/datums/components/souldeath.dm | 35 ++++++++++++++++++ .../effects/temporary_visuals/souldeath.dm | 5 +++ modular_citadel/code/modules/clothing/neck.dm | 23 ++++++++++++ modular_citadel/icons/effects/souldeath.dmi | Bin 0 -> 1914 bytes modular_citadel/icons/mob/clothing/necks.dmi | Bin 0 -> 292 bytes .../icons/obj/clothing/cit_neck.dmi | Bin 526 -> 1016 bytes sound/misc/souldeath.ogg | Bin 0 -> 32643 bytes tgstation.dme | 1 + 8 files changed, 64 insertions(+) create mode 100644 modular_citadel/code/datums/components/souldeath.dm create mode 100644 modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm create mode 100644 modular_citadel/code/modules/clothing/neck.dm create mode 100644 modular_citadel/icons/effects/souldeath.dmi create mode 100644 modular_citadel/icons/mob/clothing/necks.dmi create mode 100644 sound/misc/souldeath.ogg diff --git a/modular_citadel/code/datums/components/souldeath.dm b/modular_citadel/code/datums/components/souldeath.dm new file mode 100644 index 0000000000..5beddf3529 --- /dev/null +++ b/modular_citadel/code/datums/components/souldeath.dm @@ -0,0 +1,35 @@ +/datum/component/souldeath + var/mob/living/wearer + var/equip_slot + var/signal = FALSE + +/datum/component/souldeath/Initialize() + if(!isitem(parent)) + return COMPONENT_INCOMPATIBLE + RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/equip) + RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/unequip) + +/datum/component/souldeath/proc/equip(datum/source, mob/living/equipper, slot) + if(!slot || equip_slot == slot) + wearer = equipper + RegisterSignal(wearer, COMSIG_MOB_DEATH, .proc/die, TRUE) + signal = TRUE + else + if(signal) + UnregisterSignal(wearer, COMSIG_MOB_DEATH) + signal = FALSE + return + +/datum/component/souldeath/proc/unequip() + UnregisterSignal(wearer, COMSIG_MOB_DEATH) + wearer = null + signal = FALSE + +/datum/component/souldeath/proc/die() + if(!wearer) + return //idfk + new/obj/effect/temp_visual/souldeath(wearer.loc, wearer) + playsound(wearer, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE) + +/datum/component/souldeath/neck + equip_slot = SLOT_NECK diff --git a/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm b/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm new file mode 100644 index 0000000000..1ebf6fb2a6 --- /dev/null +++ b/modular_citadel/code/game/objects/effects/temporary_visuals/souldeath.dm @@ -0,0 +1,5 @@ +/obj/effect/temp_visual/souldeath + name = "soul death" + icon = 'modular_citadel/icons/effects/souldeath.dmi' + icon_state = "souldeath" + duration = 30 \ No newline at end of file diff --git a/modular_citadel/code/modules/clothing/neck.dm b/modular_citadel/code/modules/clothing/neck.dm new file mode 100644 index 0000000000..8d7d4747b7 --- /dev/null +++ b/modular_citadel/code/modules/clothing/neck.dm @@ -0,0 +1,23 @@ +/datum/action/item_action/zanderlocket + name = "Activate the locket" + +/obj/item/clothing/neck/undertale + name = "Sylphaen Heart Locket" + desc = "A heart shaped locket...The name: 'Zander Sylphaen is inscribed on the front. Something about this necklace fills you with determination." + icon = 'modular_citadel/icons/obj/clothing/cit_neck.dmi' + item_state = "undertale" + icon_state = "undertale" + alternate_worn_icon = 'modular_citadel/icons/mob/clothing/necks.dmi' + resistance_flags = FIRE_PROOF + actions_types = list(/datum/action/item_action/zanderlocket) + var/toggled = FALSE + var/obj/effect/heart/heart + +/datum/action/item_action/zanderlocket/Trigger() + new/obj/effect/temp_visual/souldeath(owner.loc, owner) + playsound(owner, 'modular_citadel/sound/misc/souldeath.ogg', 100, FALSE) + + +/obj/item/clothing/neck/undertale/Initialize() + ..() + AddComponent(/datum/component/souldeath/neck) diff --git a/modular_citadel/icons/effects/souldeath.dmi b/modular_citadel/icons/effects/souldeath.dmi new file mode 100644 index 0000000000000000000000000000000000000000..f225bd5321951b1a366d20449f46cb180bbf0a73 GIT binary patch literal 1914 zcma)7X*3%O7EX{vkf4-UDnmzFPo)@IwKVq9TC1_tPAx%E`;wAq=~GIywWRho#b|By zY}F-}6s2}*PfC;5_C4DOQW9QXf4nnuW`4|%yPtdRIrqEgyO|Dl7hodtA^-pYW^HAD znQtrjLJ$V?b+*5s0^i(Ay5bsR9uVyxg^P^AMT7$Y2_>HWT5thn3CmB9&e6&j3lNU- zSvWBTv!-Oo5ldw^8X)A=>-2mUmacH4#4d$cY-IGb)g#nC(e%Q+OO2#PpeGxohJcG4yfn64JBoas@W4A6rc z!WDrmBHgph^K?B1YUufQZ=p3o7mqUD(I=$wh=vprkSLY@MVw|dNWD-$v6}f>2oF~T zI}>xW_TPvPdGBR@yA#({O}rGQu!Go;+mP8%+OSZDHv;eiuat_~*izG{uLC`+_l1{u z5HR`}=sYMeW1$tW08=BdCw|n*79j`6ZX}kCp}e3!lH#jrE`k%=&2B47Ur$saL#Q-) zke=(0z#_ioxtA;OG*H7FO zNs!^lCrBs2Tw@dCnxX=ANh!%}Gx6hMQL^h?RjyC;2j*<)qeN?rFYl^Gg+$XR@ycIV zXjf=jfTgScH&FjwG)u;=SAt)Q6FH5}tq zB&a$n^^O$L1hK;^Zj$w!zSUdiUI19}*Ci)T%~!~#uL24VLh;z_ z!2(~)fTUVZyc}IRcQCahq>@se!|z`I6r_I#l7d{`iNz0*tP2Dw^eEm7GzYi=)I@}_ zqLdql9*R{#GY?J z9x3?}m$&B07$hcV+&sRlxFH_7$eit!)PG73=P?-OG%q@oq0ZgyF7xkn=3eEdLT9p@ zAZk1v_A{ZHS44WjcZoyE`xe}vIAbd1g_|ua&cS6^Qi{R0`kf&DK5pP`^}2UHMjn9A zBzfB}T%yp?H)#;*sxQX1|2MRkcSFf4k{;Fj8xH>*Z1#mX+#1g|)%f!?!T|LXi{Byw zYQ4$@)S1>9PqqlKisxCy6wzO*CJEPb?LSJ-g_zPHV(NDiWnBYnQRI5$pV0+%_i~d{ z2XMY$ap)@+`t^Oi%XD-36&n~o)B9M|rt5Zq=oogThX$7ntb2P4M;>L)+Kk}&(;hj; z2W#OS@YI_ZAN1YF@*RLutEJN!3lY?*P+;=rCop+^U(RBP6XU#R5R?JU9;mvvEa*%b zx~=xX$G?I@UG1y6+s9#m+^Kpe;^5 zX*n2_77KDC%>0v6d%5s$ol+%}}-VRoB00!OXQx~nB?{7l~D9S&^< zb8S(*I}LhoHQ*Sha#bU5#wnwXFm;bI`%8_*L$}D^C;C*5O-4bT0=ssw-Ka8Osm-E% z;B8g$PM>FT&jW{XE1f=MV}zFa7W9&isLa0;gbl1l*UC50m~2lNb1oS=kyI2;b89fE zRhjXBar7hdmL1Bfn9{aGe3`kp<+&OSV2+g_bgE*^OD1+3uhlR#7d>M3Bq*%lYcZoVFT=id(wF$cMaqCS`*^xIhFJ6_CrEf5Xk>L# zU*V9k?1BMD@-?0nU8ed9Caal48vZlPl00Kld{;vv;{ijmfz!*C28kSl=S#150nKIbboFyt=akR{02Tph{{R30 literal 0 HcmV?d00001 diff --git a/modular_citadel/icons/obj/clothing/cit_neck.dmi b/modular_citadel/icons/obj/clothing/cit_neck.dmi index ce115c2aa71e4ea76ce14e2da64d07419b0cf76d..abccd4a1153c9d282fc6b3d65bc22603f634ea21 100644 GIT binary patch literal 1016 zcmVV=-0C=2r$~y|fFc3x2TC<9W-G}^IH9;n*u=gOWNhG3JFq*{McVS4E?p`=O zZo}PAaHFR$OUreE#r1F`v*xG?7MC-b#QB+YpQb?>7F|nqe$BO%ARU>QrNQDv<{{zD zd;jcbi7Xll|C2q2$-#}DHu=se0yQh@BLDycGD$>1RA_?W1R_^0 zMd2_P1iud9u2FMo&ZKP$_nVIUzWcuSdG5LQ?!d>#$H&LV$19qq2~E?)?c@Iq$;;$a zDkT7Rc6Lw{1pw1D0ZHA2^QXO3YQb=PYL^~8CNzRg3o0n4&DKR+iB2rxJ}2tcV+ayBWI zO3qx{gj!;;n1HHjb_&{o9rJn#uzP|RTn$iFm2fyrp-_-&#WqWA+@sN`P*v~6)v~rV zEY-$b^gR_vZ}bpAWcA7Aiw2KJBN{frv9U2Ckw{AoY-VOgOifL-vV?;z?ESarKvj5T z^~q)JIj@g`YXZvUGNDk2cs!0Q%K{*m%Qe0D!oq?87#bSFvMkEwvX{DCS=$ z^u~>mP6`rR!=Be`Xn;*T9tS{GRROTOyDQcE^vz^4($dnBBOHEx546hw8|kDV*(OLQ zg?qnUTn(s)ZN$~pl~5FgVz}sx4SXL!(=;(MG6LXy5dBG75pLt!17ullcwsSIWc;zt z_+y>JmCrZKs7I?!@K52IfbH#VX>@c{M59sHi{HMg#`^WU#%AU7dG_}9I`W^O;aeb= z%SqX6mTWeAXYBavF>}j7K7E3h&&nKsJ-#z1pU-!+cxa*r9334=0J1C#S(cqX0I)n~ zvGO5!=bFRALoCZ;V`HOZh1+;8aB*=_7>0qOD11Eq=$xPEoxn6r`uqD?UtjNd;Wqa! m)a^CcS~)&GK0ZD^f0Liv-**Kd-y<{t0000fFDZ*Bkpc$`yKaB_9` z^iy#0_2eo`Eh^5;&r`5fFwryM;w;ZhDainGjE%TBGg33tGfE(w;*!LYR3KBSI3qtf zJ2^imC$UJ0i!&v&s2C_}$i0MAK8K~y-6 z<(Wqc3v%=|$Jv9&O7VLK3

wDn=$qsWYJy6NCu6OsQY0JvnL8e{T_hv&ABIPi&B?Mp`0hLk+k4FG12h=pp$^mZ& zQadoulLODg)~vQbFYBr;XfWtaUcCY9vKSznaBTAi)LJ9R^YPYZtNDBR0A{TX7AD6u QIsgCw07*qoM6N<$g6q1B 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index b17ba9363f..c6f9251c63 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2798,6 +2798,7 @@ #include "modular_citadel\code\game\objects\items.dm" #include "modular_citadel\code\game\objects\tools.dm" #include "modular_citadel\code\game\objects\effects\spawner\spawners.dm" +#include "modular_citadel\code\game\objects\effects\temporary_visuals\souldeath.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\impact.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\muzzle.dm" #include "modular_citadel\code\game\objects\effects\temporary_visuals\projectiles\tracer.dm" From a99a7fb937a75f5542270f79e9321ebf19b174a1 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Sun, 13 Jan 2019 23:38:30 -0600 Subject: [PATCH 51/62] update --- modular_citadel/code/modules/client/loadout/__donator.dm | 8 +++++++- tgstation.dme | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/client/loadout/__donator.dm b/modular_citadel/code/modules/client/loadout/__donator.dm index fac53fee5b..a3df7d9f8e 100644 --- a/modular_citadel/code/modules/client/loadout/__donator.dm +++ b/modular_citadel/code/modules/client/loadout/__donator.dm @@ -361,4 +361,10 @@ datum/gear/darksabresheath name = "Mime's Overalls" category = SLOT_WEAR_SUIT path = /obj/item/clothing/under/mimeoveralls - ckeywhitelist = list("pireamaineach") \ No newline at end of file + ckeywhitelist = list("pireamaineach") + +/datum/gear/soulneck + name = "Soul Necklace" + category = SLOT_IN_BACKPACK + path = /obj/item/clothing/neck/undertale + ckeywhitelist = list("twilightic") \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index c6f9251c63..bca5c7512b 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2871,6 +2871,7 @@ #include "modular_citadel\code\modules\client\loadout\uniform.dm" #include "modular_citadel\code\modules\client\verbs\who.dm" #include "modular_citadel\code\modules\clothing\clothing.dm" +#include "modular_citadel\code\modules\clothing\neck.dm" #include "modular_citadel\code\modules\clothing\glasses\phantomthief.dm" #include "modular_citadel\code\modules\clothing\head\head.dm" #include "modular_citadel\code\modules\clothing\spacesuits\cydonian_armor.dm" From 0c4164459cebd826c635ac18c95795ecb1a6c757 Mon Sep 17 00:00:00 2001 From: LetterJay Date: Mon, 14 Jan 2019 02:55:16 -0600 Subject: [PATCH 52/62] cheat codes --- {sound => modular_citadel/sound}/misc/souldeath.ogg | Bin tgstation.dme | 1 + 2 files changed, 1 insertion(+) rename {sound => modular_citadel/sound}/misc/souldeath.ogg (100%) diff --git a/sound/misc/souldeath.ogg b/modular_citadel/sound/misc/souldeath.ogg similarity index 100% rename from sound/misc/souldeath.ogg rename to modular_citadel/sound/misc/souldeath.ogg diff --git a/tgstation.dme b/tgstation.dme index bca5c7512b..268d4f1ff9 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2772,6 +2772,7 @@ #include "modular_citadel\code\datums\uplink_items_cit.dm" #include "modular_citadel\code\datums\components\material_container.dm" #include "modular_citadel\code\datums\components\phantomthief.dm" +#include "modular_citadel\code\datums\components\souldeath.dm" #include "modular_citadel\code\datums\mood_events\generic_negative_events.dm" #include "modular_citadel\code\datums\mood_events\generic_positive_events.dm" #include "modular_citadel\code\datums\mood_events\moodular.dm" From 6e01f1920e101e2d277f48d94948fdb041c81310 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 20:52:05 -0600 Subject: [PATCH 53/62] Automatic changelog generation for PR #7914 [ci skip] --- html/changelogs/AutoChangeLog-pr-7914.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7914.yml diff --git a/html/changelogs/AutoChangeLog-pr-7914.yml b/html/changelogs/AutoChangeLog-pr-7914.yml new file mode 100644 index 0000000000..aac983d7ea --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7914.yml @@ -0,0 +1,4 @@ +author: "Ghom" +delete-after: True +changes: + - code_imp: "minor clean up on hydroponics reagent containers." From d15dcc1e3e2661b7c9579b9bd824d42ff256d615 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 21:09:45 -0600 Subject: [PATCH 54/62] Automatic changelog generation for PR #7930 [ci skip] --- html/changelogs/AutoChangeLog-pr-7930.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7930.yml diff --git a/html/changelogs/AutoChangeLog-pr-7930.yml b/html/changelogs/AutoChangeLog-pr-7930.yml new file mode 100644 index 0000000000..221a2af942 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7930.yml @@ -0,0 +1,4 @@ +author: "nicc" +delete-after: True +changes: + - balance: "teg less gay maybe" From 71d6ddd1a9fdba421137ee09c6e52db4bb1d3a19 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:21:05 -0600 Subject: [PATCH 55/62] Automatic changelog generation for PR #7921 [ci skip] --- html/changelogs/AutoChangeLog-pr-7921.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7921.yml diff --git a/html/changelogs/AutoChangeLog-pr-7921.yml b/html/changelogs/AutoChangeLog-pr-7921.yml new file mode 100644 index 0000000000..66a245257f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7921.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Things in disposals will now emit sounds every single time they hit corners. This increases immersion." From 9478e28d5a0f43c066cbf39b3af5f6c3bcdd6ddc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:21:23 -0600 Subject: [PATCH 56/62] Automatic changelog generation for PR #7920 [ci skip] --- html/changelogs/AutoChangeLog-pr-7920.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7920.yml diff --git a/html/changelogs/AutoChangeLog-pr-7920.yml b/html/changelogs/AutoChangeLog-pr-7920.yml new file mode 100644 index 0000000000..08b0ec1f13 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7920.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "flashlights will now make sounds when toggled on/off" From 566f54e60336d9b37691fc9c944a85455a089d09 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:21:45 -0600 Subject: [PATCH 57/62] Automatic changelog generation for PR #7919 [ci skip] --- html/changelogs/AutoChangeLog-pr-7919.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7919.yml diff --git a/html/changelogs/AutoChangeLog-pr-7919.yml b/html/changelogs/AutoChangeLog-pr-7919.yml new file mode 100644 index 0000000000..a62cc838c3 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7919.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Throwing items will now perform the attack animation and play a sound" From 94304200b24b947a22f8140b6f5c66faa3be1ed5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:22:02 -0600 Subject: [PATCH 58/62] Automatic changelog generation for PR #7918 [ci skip] --- html/changelogs/AutoChangeLog-pr-7918.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7918.yml diff --git a/html/changelogs/AutoChangeLog-pr-7918.yml b/html/changelogs/AutoChangeLog-pr-7918.yml new file mode 100644 index 0000000000..b2340c2f67 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7918.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Attack animations will now rotate your character slightly, similar to Goon." From 0ed4591e843765ae77838b556faf12d6c9a0f86f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:22:19 -0600 Subject: [PATCH 59/62] Automatic changelog generation for PR #7916 [ci skip] --- html/changelogs/AutoChangeLog-pr-7916.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7916.yml diff --git a/html/changelogs/AutoChangeLog-pr-7916.yml b/html/changelogs/AutoChangeLog-pr-7916.yml new file mode 100644 index 0000000000..888f327f72 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7916.yml @@ -0,0 +1,4 @@ +author: "Skoglol" +delete-after: True +changes: + - rscadd: "You can now alt click storage (bags, boxes, etc) to open it." From 4147b5767c641b8d9fe4c22207bf697003d28b3d Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:23:31 -0600 Subject: [PATCH 60/62] Automatic changelog generation for PR #7912 [ci skip] --- html/changelogs/AutoChangeLog-pr-7912.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7912.yml diff --git a/html/changelogs/AutoChangeLog-pr-7912.yml b/html/changelogs/AutoChangeLog-pr-7912.yml new file mode 100644 index 0000000000..834ad80091 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7912.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - server: "The server's tagline is now a config option. People can now stop confusing us with BR cit" From 1816577ac8bf1087581f3316b82f9fbad76e09f7 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:24:10 -0600 Subject: [PATCH 61/62] Automatic changelog generation for PR #7923 [ci skip] --- html/changelogs/AutoChangeLog-pr-7923.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7923.yml diff --git a/html/changelogs/AutoChangeLog-pr-7923.yml b/html/changelogs/AutoChangeLog-pr-7923.yml new file mode 100644 index 0000000000..5cf6527dad --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7923.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - rscadd: "Backpacks and other storage items will now jiggle and squish when you interact with them, similar to the animations seen on Goon." From cbc2af1b4b630a4b8a400b2acc4be07c70bfe404 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 14 Jan 2019 22:24:24 -0600 Subject: [PATCH 62/62] Automatic changelog generation for PR #7922 [ci skip] --- html/changelogs/AutoChangeLog-pr-7922.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-7922.yml diff --git a/html/changelogs/AutoChangeLog-pr-7922.yml b/html/changelogs/AutoChangeLog-pr-7922.yml new file mode 100644 index 0000000000..08f06d7053 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-7922.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - bugfix: "Air alarms now actually emit the proper light color when their status is okay."