From 8a3b7d29d35e735da4d40136e39733916316350d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 10 Mar 2019 13:30:45 -0400 Subject: [PATCH 001/180] Update tiny_prick.dm --- code/modules/antagonists/changeling/powers/tiny_prick.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 6c9e0c6599..95ecb06409 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -68,7 +68,7 @@ sting_icon = "sting_transform" chemical_cost = 50 dna_cost = 3 - loudness = 1 + loudness = 3 var/datum/changelingprofile/selected_dna = null /obj/effect/proc_holder/changeling/sting/transformation/Click() From aafbbad2af65b4cee7914391c38e0121c7a2267b Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 10 Mar 2019 13:33:56 -0400 Subject: [PATCH 002/180] Update tiny_prick.dm --- code/modules/antagonists/changeling/powers/tiny_prick.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 95ecb06409..885a081e68 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -64,7 +64,7 @@ /obj/effect/proc_holder/changeling/sting/transformation name = "Transformation Sting" desc = "We silently sting a human, injecting a retrovirus that forces them to transform." - helptext = "The victim will transform much like a changeling would. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." + helptext = "The victim will transform much like a changeling would. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human. This ability is somewhat loud, and carries a larg risk of our blood gaining violent sensitivity to heat." sting_icon = "sting_transform" chemical_cost = 50 dna_cost = 3 From ec030144d248c7f62fde9e5132c25dbdff246fe8 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 10 Mar 2019 17:03:45 -0400 Subject: [PATCH 003/180] Update tiny_prick.dm --- code/modules/antagonists/changeling/powers/tiny_prick.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 885a081e68..5a9707357c 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -64,11 +64,11 @@ /obj/effect/proc_holder/changeling/sting/transformation name = "Transformation Sting" desc = "We silently sting a human, injecting a retrovirus that forces them to transform." - helptext = "The victim will transform much like a changeling would. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human. This ability is somewhat loud, and carries a larg risk of our blood gaining violent sensitivity to heat." + helptext = "The victim will transform much like a changeling would. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." sting_icon = "sting_transform" chemical_cost = 50 dna_cost = 3 - loudness = 3 + loudness = 2 var/datum/changelingprofile/selected_dna = null /obj/effect/proc_holder/changeling/sting/transformation/Click() From e13c8a8d7dc4e49c362fa3b2fa8456be0a2f3214 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 21 Mar 2019 20:00:43 -0400 Subject: [PATCH 004/180] fixed? --- code/modules/antagonists/changeling/powers/tiny_prick.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 5a9707357c..83f711f40c 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -64,7 +64,7 @@ /obj/effect/proc_holder/changeling/sting/transformation name = "Transformation Sting" desc = "We silently sting a human, injecting a retrovirus that forces them to transform." - helptext = "The victim will transform much like a changeling would. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human. This ability is somewhat loud, and carries a small risk of our blood gaining violent sensitivity to heat." + helptext = "The victim will transform much like a changeling would. Does not provide a warning to others. Mutations will not be transferred, and monkeys will become human. This ability is loud, and might cause our blood to react violently to heat." sting_icon = "sting_transform" chemical_cost = 50 dna_cost = 3 From 627f72595869c7feaf40b660c0ab57dbce5532aa Mon Sep 17 00:00:00 2001 From: deathride58 Date: Sat, 30 Mar 2019 23:44:56 -0400 Subject: [PATCH 005/180] Optimizes get_hearers_in_view by caching the results of view() --- code/__HELPERS/game.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index ad29125d95..899ef16306 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -221,9 +221,10 @@ else // A variation of get_hear inlined here to take advantage of the compiler's fastpath for obj/mob in view var/lum = T.luminosity T.luminosity = 6 // This is the maximum luminosity - for(var/mob/M in view(R, T)) + var/list/cachedview = view(R, T) + for(var/mob/M in cachedview) processing_list += M - for(var/obj/O in view(R, T)) + for(var/obj/O in cachedview) processing_list += O T.luminosity = lum From 45499a7b2d8a29bbee18d219251be249075334ae Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 15:35:12 -0400 Subject: [PATCH 006/180] Delete food.dmi --- modular_citadel/icons/obj/food/food.dmi | Bin 3363 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_citadel/icons/obj/food/food.dmi diff --git a/modular_citadel/icons/obj/food/food.dmi b/modular_citadel/icons/obj/food/food.dmi deleted file mode 100644 index ea66b3d48a3a077b4650b248bbad226947f71adc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3363 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 From f07cdc1046d152a288f8753d1b92117bd3a78718 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 15:35:45 -0400 Subject: [PATCH 007/180] Add files via upload --- modular_citadel/icons/obj/food.dmi | Bin 0 -> 4184 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modular_citadel/icons/obj/food.dmi diff --git a/modular_citadel/icons/obj/food.dmi b/modular_citadel/icons/obj/food.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d205b29b8b2969c0f7c114450a742f5329b6697d GIT binary patch literal 4184 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 Date: Fri, 5 Apr 2019 16:04:28 -0400 Subject: [PATCH 008/180] properly --- modular_citadel/icons/obj/food/food.dmi | Bin 0 -> 4184 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modular_citadel/icons/obj/food/food.dmi diff --git a/modular_citadel/icons/obj/food/food.dmi b/modular_citadel/icons/obj/food/food.dmi new file mode 100644 index 0000000000000000000000000000000000000000..d205b29b8b2969c0f7c114450a742f5329b6697d GIT binary patch literal 4184 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 Date: Fri, 5 Apr 2019 16:05:04 -0400 Subject: [PATCH 009/180] not the correct one --- modular_citadel/icons/obj/food.dmi | Bin 4184 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_citadel/icons/obj/food.dmi diff --git a/modular_citadel/icons/obj/food.dmi b/modular_citadel/icons/obj/food.dmi deleted file mode 100644 index d205b29b8b2969c0f7c114450a742f5329b6697d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4184 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 Date: Fri, 5 Apr 2019 16:08:46 -0400 Subject: [PATCH 010/180] Update snacks_other.dm --- code/modules/food_and_drinks/food/snacks_other.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index af7a8c06f4..d1eb495579 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -207,6 +207,16 @@ tastes = list("cobwebs" = 1, "sugar" = 2) foodtype = JUNKFOOD | SUGAR +/obj/item/reagent_containers/food/snacks/tobiko + name = "Tobiko" + desc = "Spider eggs wrapped in a thin salted Kudzu pod" + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_egg" + list_reagents = list("nutriment" = 3, "vitamin" = 2) + filling_color = "#FF3333" // R225 G051 B051 + tastes = list("seaweed" = 1, "salty" = 2) + foodtype = MEAT | VEGETABLES + /obj/item/reagent_containers/food/snacks/chococoin name = "chocolate coin" desc = "A completely edible but nonflippable festive coin." From c79502b3e6347ed8df594d16044d8096514cefa6 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 16:32:09 -0400 Subject: [PATCH 011/180] Update snacks_meat.dm --- .../food_and_drinks/food/snacks_meat.dm | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index d3466caa5e..b073e4be21 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -54,6 +54,43 @@ tastes = list("fish" = 1, "chips" = 1) foodtype = MEAT | VEGETABLES | FRIED +/obj/item/reagent_containers/food/snacks/sushie_basic // You get 8 + name = "Funa Hosomaki" + desc = "A small cylindrical filled with rice and fish." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_basic" + bonus_reagents = list("vitamin" = 2) + list_reagents = list("nutriment" = 1) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/sushie_adv // You get 3 + name = "Funa Nigiri" + desc = "A pice of carp lightly placed on some rice." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_adv" + bonus_reagents = list("vitamin" = 2) + list_reagents = list("nutriment" = 2) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/sushie_pro // You get 1! + name = "Funa Nigiri" + desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_adv" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 8, "vitamin" = 1) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + + ////////////////////////////////////////////MEATS AND ALIKE//////////////////////////////////////////// /obj/item/reagent_containers/food/snacks/tofu From c927fd48127db424ae97753aa412b03677567e76 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 16:40:19 -0400 Subject: [PATCH 012/180] Update snacks_other.dm --- code/modules/food_and_drinks/food/snacks_other.dm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index d1eb495579..2daabfac17 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -579,3 +579,12 @@ filling_color = "#A0522D" tastes = list("chocolate" = 1) foodtype = JUNKFOOD | SUGAR + +/obj/item/reagent_containers/food/snacks/riceball + name = "Onigiri" + desc = "A ball of rice with some light salt and a wrap of Kudzu skin." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "riceball" + list_reagents = list("nutriment" = 5, "sodiumchloride" = 2) + tastes = list("rice" = 4, "salt" = 1) + foodtype = GRAIN From 54ac2424549df203317c6b11b44fd8d8163edbbc Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 16:57:28 -0400 Subject: [PATCH 013/180] Update recipes_meat.dm --- .../recipes/tablecraft/recipes_meat.dm | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index b33d6a520b..94f9487c4b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -81,6 +81,37 @@ result = /obj/item/reagent_containers/food/snacks/sashimi subcategory = CAT_MEAT +/datum/crafting_recipe/food/sushie_basic + name = "Funa Hosomaki" + reqs = list( + /datum/reagent/consumable/soysauce = 3, + /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 2, + /obj/item/reagent_containers/food/snacks/grown/kudzupod = 3, + ) + result = /obj/item/reagent_containers/food/snacks/sushie_basic = 8 + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/sushie_adv + name = "Funa Nigiri" + reqs = list( + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/sushie_adv = 3 + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/sushie_pro + name = "Well made Funa Nigiri" + reqs = list( + /datum/reagent/consumable/soysauce = 10, + /obj/item/reagent_containers/food/snacks/salad/ricebowl = 2, + /obj/item/reagent_containers/food/snacks/carpmeat = 5 + ) + result = /obj/item/reagent_containers/food/snacks/sushie_pro + subcategory = CAT_MEAT + ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// /datum/crafting_recipe/food/spidereggsham @@ -93,6 +124,16 @@ result = /obj/item/reagent_containers/food/snacks/spidereggsham subcategory = CAT_MEAT +/datum/crafting_recipe/food/sushie_egg + name = "Tobiko" + reqs = list( + /datum/reagent/consumable/soysauce = 6, + /obj/item/reagent_containers/food/snacks/spidereggs = 1, + /obj/item/reagent_containers/food/snacks/grown/kudzupod = 2, + ) + result = /obj/item/reagent_containers/food/snacks/sushie_egg = 3 + subcategory = CAT_MEAT + ////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// /datum/crafting_recipe/food/cornedbeef From 9cb9da788e297ab11795eda2cd03e28af32b49a7 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 16:59:43 -0400 Subject: [PATCH 014/180] Update recipes_misc.dm --- .../food_and_drinks/recipes/tablecraft/recipes_misc.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 3925416560..3dd27ddd01 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -345,3 +345,13 @@ ) result = /obj/item/reagent_containers/food/snacks/salad/ricepudding subcategory = CAT_MISCFOOD + +/datum/crafting_recipe/food/riceball + name = "Onigiri" + reqs = list( + /datum/reagent/consumable/soysauce = 1, + /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, + /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1 + ) + result = /obj/item/reagent_containers/food/snacks/riceball + subcategory = CAT_MISCFOOD From 870b0d6cd8cb60d5d14cf0a938a3d7dfaca38c26 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 17:29:12 -0400 Subject: [PATCH 015/180] Update recipes_meat.dm --- .../recipes/tablecraft/recipes_meat.dm | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index 94f9487c4b..c4194ee1e6 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -89,7 +89,10 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 2, /obj/item/reagent_containers/food/snacks/grown/kudzupod = 3, ) - result = /obj/item/reagent_containers/food/snacks/sushie_basic = 8 + result = list( + /obj/item/reagent_containers/food/snacks/sushie_basic = 8 + /obj/item/reagent_containers/glass/bowl = 1 + ) subcategory = CAT_MEAT /datum/crafting_recipe/food/sushie_adv @@ -99,7 +102,10 @@ /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) - result = /obj/item/reagent_containers/food/snacks/sushie_adv = 3 + result = list( + /obj/item/reagent_containers/food/snacks/sushie_adv = 3 + /obj/item/reagent_containers/glass/bowl = 1 + ) subcategory = CAT_MEAT /datum/crafting_recipe/food/sushie_pro @@ -110,6 +116,7 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 5 ) result = /obj/item/reagent_containers/food/snacks/sushie_pro + /obj/item/reagent_containers/glass/bowl subcategory = CAT_MEAT ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// @@ -131,7 +138,7 @@ /obj/item/reagent_containers/food/snacks/spidereggs = 1, /obj/item/reagent_containers/food/snacks/grown/kudzupod = 2, ) - result = /obj/item/reagent_containers/food/snacks/sushie_egg = 3 + result = =/obj/item/reagent_containers/food/snacks/tobiko = 3 subcategory = CAT_MEAT ////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// From 8036f25ad9bf806e831a443c59f7cace89b2aba7 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 17:30:39 -0400 Subject: [PATCH 016/180] Update recipes_misc.dm --- .../food_and_drinks/recipes/tablecraft/recipes_misc.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 3dd27ddd01..6aab0644c6 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -353,5 +353,8 @@ /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1 ) - result = /obj/item/reagent_containers/food/snacks/riceball + result = list( + /obj/item/reagent_containers/food/snacks/riceball + /obj/item/reagent_containers/glass/bowl + ) subcategory = CAT_MISCFOOD From 9a4a3151183d22cf4257879fc0f31cd625b07045 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 17:44:18 -0400 Subject: [PATCH 017/180] Update recipes_meat.dm --- .../food_and_drinks/recipes/tablecraft/recipes_meat.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index c4194ee1e6..812cdbf1ca 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -90,7 +90,7 @@ /obj/item/reagent_containers/food/snacks/grown/kudzupod = 3, ) result = list( - /obj/item/reagent_containers/food/snacks/sushie_basic = 8 + /obj/item/reagent_containers/food/snacks/sushie_basic = 8, /obj/item/reagent_containers/glass/bowl = 1 ) subcategory = CAT_MEAT @@ -103,7 +103,7 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) result = list( - /obj/item/reagent_containers/food/snacks/sushie_adv = 3 + /obj/item/reagent_containers/food/snacks/sushie_adv = 3, /obj/item/reagent_containers/glass/bowl = 1 ) subcategory = CAT_MEAT From 8098cd8fd79f2c8d68804cbdb03b5b685ba71c10 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 17:58:55 -0400 Subject: [PATCH 018/180] Update recipes_meat.dm --- .../food_and_drinks/recipes/tablecraft/recipes_meat.dm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index 812cdbf1ca..0ce5f6b24b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -115,8 +115,10 @@ /obj/item/reagent_containers/food/snacks/salad/ricebowl = 2, /obj/item/reagent_containers/food/snacks/carpmeat = 5 ) - result = /obj/item/reagent_containers/food/snacks/sushie_pro - /obj/item/reagent_containers/glass/bowl + result = list( + /obj/item/reagent_containers/food/snacks/sushie_pro = 1, + /obj/item/reagent_containers/glass/bowl = 1 + ) subcategory = CAT_MEAT ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// From 78caec991a0ea0cd4a7510b3171c6024b338e4bf Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 18:08:05 -0400 Subject: [PATCH 019/180] 15 is 3 x 5 more lucky? --- code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index 0ce5f6b24b..f961f3f2cc 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -140,7 +140,7 @@ /obj/item/reagent_containers/food/snacks/spidereggs = 1, /obj/item/reagent_containers/food/snacks/grown/kudzupod = 2, ) - result = =/obj/item/reagent_containers/food/snacks/tobiko = 3 + result = /obj/item/reagent_containers/food/snacks/tobiko = 3 subcategory = CAT_MEAT ////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// From e6ff7f811bff1b318e155b5daa50786cf5bd2564 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 18:27:59 -0400 Subject: [PATCH 020/180] Update recipes_misc.dm --- .../food_and_drinks/recipes/tablecraft/recipes_misc.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 6aab0644c6..5e739ba1d1 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -354,7 +354,7 @@ /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1 ) result = list( - /obj/item/reagent_containers/food/snacks/riceball - /obj/item/reagent_containers/glass/bowl + /obj/item/reagent_containers/food/snacks/riceball = 1, + /obj/item/reagent_containers/glass/bowl = 1 ) subcategory = CAT_MISCFOOD From 6b9e9e23bf6dcfd44a38df59981adad2a6b38023 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 5 Apr 2019 18:44:02 -0400 Subject: [PATCH 021/180] Update recipes_meat.dm --- .../food_and_drinks/recipes/tablecraft/recipes_meat.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index f961f3f2cc..7eff00cfa6 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -140,7 +140,9 @@ /obj/item/reagent_containers/food/snacks/spidereggs = 1, /obj/item/reagent_containers/food/snacks/grown/kudzupod = 2, ) - result = /obj/item/reagent_containers/food/snacks/tobiko = 3 + result = list( + /obj/item/reagent_containers/food/snacks/tobiko = 3 + ) subcategory = CAT_MEAT ////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// From 62e711f69d4305e121efa959717cc9d6975f460a Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 6 Apr 2019 13:03:01 -0400 Subject: [PATCH 022/180] Update snacks_meat.dm --- code/modules/food_and_drinks/food/snacks_meat.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index b073e4be21..a66fb6973e 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -82,7 +82,7 @@ name = "Funa Nigiri" desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "sushie_adv" + icon_state = "sushie_pro" bonus_reagents = list("nutriment" = 1, "vitamin" = 2) list_reagents = list("nutriment" = 8, "vitamin" = 1) bitesize = 1 From 94f97ba58d0c53c2905484272a8533d9018a195d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 6 Apr 2019 15:15:55 -0400 Subject: [PATCH 023/180] 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 4d631691d0..c2abc2f2c5 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -963,7 +963,7 @@ prereq_ids = list("biotech","engineering") boost_item_paths = list(/obj/item/gun/energy/alien, /obj/item/scalpel/alien, /obj/item/hemostat/alien, /obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/cautery/alien, /obj/item/surgicaldrill/alien, /obj/item/screwdriver/abductor, /obj/item/wrench/abductor, /obj/item/crowbar/abductor, /obj/item/multitool/abductor, - /obj/item/weldingtool/abductor, /obj/item/wirecutters/abductor, /obj/item/circuitboard/machine/abductor, /obj/item/abductor_baton, /obj/item/abductor) + /obj/item/weldingtool/abductor, /obj/item/wirecutters/abductor, /obj/item/circuitboard/machine/abductor, /obj/item/abductor_baton, /obj/item/abductor, /obj/item/stack/sheet/mineral/abductor) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000) export_price = 20000 hidden = TRUE From 4bb465a7d8bea11d0cbe76574645ef4eafc8fa9c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 7 Apr 2019 19:42:27 -0400 Subject: [PATCH 024/180] reblance --- code/modules/food_and_drinks/food/snacks_meat.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index a66fb6973e..f31d9962a5 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -54,37 +54,37 @@ tastes = list("fish" = 1, "chips" = 1) foodtype = MEAT | VEGETABLES | FRIED -/obj/item/reagent_containers/food/snacks/sushie_basic // You get 8 +/obj/item/reagent_containers/food/snacks/sushie_basic name = "Funa Hosomaki" desc = "A small cylindrical filled with rice and fish." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_basic" bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 1) + list_reagents = list("nutriment" = 4) bitesize = 1 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 1, "salt" = 1) foodtype = MEAT | VEGETABLES -/obj/item/reagent_containers/food/snacks/sushie_adv // You get 3 +/obj/item/reagent_containers/food/snacks/sushie_adv name = "Funa Nigiri" desc = "A pice of carp lightly placed on some rice." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_adv" bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 2) + list_reagents = list("nutriment" = 6) bitesize = 1 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 1, "salt" = 1) foodtype = MEAT | VEGETABLES -/obj/item/reagent_containers/food/snacks/sushie_pro // You get 1! +/obj/item/reagent_containers/food/snacks/sushie_pro name = "Funa Nigiri" desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_pro" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 8, "vitamin" = 1) + bonus_reagents = list("nutriment" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 8, "vitamin" = 2) bitesize = 1 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 1, "salt" = 1) From d7b37fcf838b5263c28464f79e0a18fa85887b46 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 7 Apr 2019 19:43:59 -0400 Subject: [PATCH 025/180] reblance --- code/modules/food_and_drinks/food/snacks_other.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index 2daabfac17..ac6e0bfd44 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -212,7 +212,7 @@ desc = "Spider eggs wrapped in a thin salted Kudzu pod" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_egg" - list_reagents = list("nutriment" = 3, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "vitamin" = 2) filling_color = "#FF3333" // R225 G051 B051 tastes = list("seaweed" = 1, "salty" = 2) foodtype = MEAT | VEGETABLES @@ -585,6 +585,6 @@ desc = "A ball of rice with some light salt and a wrap of Kudzu skin." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "riceball" - list_reagents = list("nutriment" = 5, "sodiumchloride" = 2) + list_reagents = list("nutriment" = 6, "sodiumchloride" = 4) tastes = list("rice" = 4, "salt" = 1) foodtype = GRAIN From b4b9e570580b561ea57870a2bb6864e7d6b6a6ad Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 7 Apr 2019 19:50:09 -0400 Subject: [PATCH 026/180] Update recipes_meat.dm --- .../recipes/tablecraft/recipes_meat.dm | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index 7eff00cfa6..d86d6c2e5b 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -89,10 +89,7 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 2, /obj/item/reagent_containers/food/snacks/grown/kudzupod = 3, ) - result = list( - /obj/item/reagent_containers/food/snacks/sushie_basic = 8, - /obj/item/reagent_containers/glass/bowl = 1 - ) + result = /obj/item/reagent_containers/food/snacks/sushie_basic subcategory = CAT_MEAT /datum/crafting_recipe/food/sushie_adv @@ -102,10 +99,7 @@ /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) - result = list( - /obj/item/reagent_containers/food/snacks/sushie_adv = 3, - /obj/item/reagent_containers/glass/bowl = 1 - ) + result = /obj/item/reagent_containers/food/snacks/sushie_adv subcategory = CAT_MEAT /datum/crafting_recipe/food/sushie_pro @@ -115,10 +109,7 @@ /obj/item/reagent_containers/food/snacks/salad/ricebowl = 2, /obj/item/reagent_containers/food/snacks/carpmeat = 5 ) - result = list( - /obj/item/reagent_containers/food/snacks/sushie_pro = 1, - /obj/item/reagent_containers/glass/bowl = 1 - ) + result = /obj/item/reagent_containers/food/snacks/sushie_pro subcategory = CAT_MEAT ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// @@ -140,9 +131,7 @@ /obj/item/reagent_containers/food/snacks/spidereggs = 1, /obj/item/reagent_containers/food/snacks/grown/kudzupod = 2, ) - result = list( - /obj/item/reagent_containers/food/snacks/tobiko = 3 - ) + result = /obj/item/reagent_containers/food/snacks/tobiko subcategory = CAT_MEAT ////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// From 47e0f5b94671f54bc75f00e3c20b8576fd49d0ff Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 7 Apr 2019 19:50:52 -0400 Subject: [PATCH 027/180] Update recipes_misc.dm --- .../food_and_drinks/recipes/tablecraft/recipes_misc.dm | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm index 5e739ba1d1..3dd27ddd01 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_misc.dm @@ -353,8 +353,5 @@ /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1 ) - result = list( - /obj/item/reagent_containers/food/snacks/riceball = 1, - /obj/item/reagent_containers/glass/bowl = 1 - ) + result = /obj/item/reagent_containers/food/snacks/riceball subcategory = CAT_MISCFOOD From 4772f12d54f2d45a04a772bd8594b21a2b2d69d9 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 7 Apr 2019 19:52:48 -0400 Subject: [PATCH 028/180] Update drinnerware.dm --- code/modules/vending/drinnerware.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/drinnerware.dm index 151da9bc2f..1ec454c82a 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/drinnerware.dm @@ -13,7 +13,7 @@ /obj/item/reagent_containers/food/condiment/pack/hotsauce = 5, /obj/item/reagent_containers/food/condiment/saltshaker = 5, /obj/item/reagent_containers/food/condiment/peppermill = 5, - /obj/item/reagent_containers/glass/bowl = 20) + /obj/item/reagent_containers/glass/bowl = 50) contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) From 7d3b71938fb75d9c8a86d10eaef273aa534d9ee8 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 8 Apr 2019 02:25:22 -0400 Subject: [PATCH 029/180] grammar and "Bitsize fix" --- .../food_and_drinks/food/snacks_meat.dm | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index f31d9962a5..73d4598147 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -54,40 +54,40 @@ tastes = list("fish" = 1, "chips" = 1) foodtype = MEAT | VEGETABLES | FRIED -/obj/item/reagent_containers/food/snacks/sushie_basic - name = "Funa Hosomaki" +/obj/item/reagent_containers/food/snacks/sushi_basic + name = "funa hosomaki" desc = "A small cylindrical filled with rice and fish." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_basic" bonus_reagents = list("vitamin" = 2) list_reagents = list("nutriment" = 4) - bitesize = 1 + bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 1, "salt" = 1) foodtype = MEAT | VEGETABLES -/obj/item/reagent_containers/food/snacks/sushie_adv - name = "Funa Nigiri" +/obj/item/reagent_containers/food/snacks/sushi_adv + name = "funa nigiri" desc = "A pice of carp lightly placed on some rice." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_adv" bonus_reagents = list("vitamin" = 2) list_reagents = list("nutriment" = 6) - bitesize = 1 + bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 1, "rice" = 1, "salt" = 1) foodtype = MEAT | VEGETABLES -/obj/item/reagent_containers/food/snacks/sushie_pro - name = "Funa Nigiri" +/obj/item/reagent_containers/food/snacks/sushi_pro + name = "funa nigiri" desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_pro" bonus_reagents = list("nutriment" = 2, "vitamin" = 2) list_reagents = list("nutriment" = 8, "vitamin" = 2) - bitesize = 1 + bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) - tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + tastes = list("fish" = 3, "rice" = 2, "salt" = 1) foodtype = MEAT | VEGETABLES From e615038836cd177044fa1b1b59a4384aabbcc5a1 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 8 Apr 2019 02:35:27 -0400 Subject: [PATCH 030/180] Update snacks_other.dm Traditionally, an onigiri is filled with pickled salted salmon, katsuobushi, kombu, tarako, or any other salty or sour ingredient as a natural preservative. --- code/modules/food_and_drinks/food/snacks_other.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index ac6e0bfd44..5213cc96e1 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -208,13 +208,13 @@ foodtype = JUNKFOOD | SUGAR /obj/item/reagent_containers/food/snacks/tobiko - name = "Tobiko" + name = "tobiko" desc = "Spider eggs wrapped in a thin salted Kudzu pod" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_egg" list_reagents = list("nutriment" = 6, "vitamin" = 2) filling_color = "#FF3333" // R225 G051 B051 - tastes = list("seaweed" = 1, "salty" = 2) + tastes = list("seaweed" = 1, "cobwebs" = 1, "salty" = 2) foodtype = MEAT | VEGETABLES /obj/item/reagent_containers/food/snacks/chococoin @@ -581,10 +581,10 @@ foodtype = JUNKFOOD | SUGAR /obj/item/reagent_containers/food/snacks/riceball - name = "Onigiri" + name = "onigiri" desc = "A ball of rice with some light salt and a wrap of Kudzu skin." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "riceball" - list_reagents = list("nutriment" = 6, "sodiumchloride" = 4) - tastes = list("rice" = 4, "salt" = 1) + list_reagents = list("nutriment" = 6, "sodiumchloride" = 2) + tastes = list("rice" = 3, "salt" = 1) foodtype = GRAIN From 7f526242c3bebfb276a1d122991cdd090cc8c690 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 8 Apr 2019 02:39:17 -0400 Subject: [PATCH 031/180] grammar and lowering of Well made 5 -> 2 --- .../recipes/tablecraft/recipes_meat.dm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index d86d6c2e5b..e401e08062 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -81,7 +81,7 @@ result = /obj/item/reagent_containers/food/snacks/sashimi subcategory = CAT_MEAT -/datum/crafting_recipe/food/sushie_basic +/datum/crafting_recipe/food/sushi_basic name = "Funa Hosomaki" reqs = list( /datum/reagent/consumable/soysauce = 3, @@ -89,27 +89,27 @@ /obj/item/reagent_containers/food/snacks/carpmeat = 2, /obj/item/reagent_containers/food/snacks/grown/kudzupod = 3, ) - result = /obj/item/reagent_containers/food/snacks/sushie_basic + result = /obj/item/reagent_containers/food/snacks/sushi_basic subcategory = CAT_MEAT -/datum/crafting_recipe/food/sushie_adv +/datum/crafting_recipe/food/sushi_adv name = "Funa Nigiri" reqs = list( /datum/reagent/consumable/soysauce = 5, /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, /obj/item/reagent_containers/food/snacks/carpmeat = 1 ) - result = /obj/item/reagent_containers/food/snacks/sushie_adv + result = /obj/item/reagent_containers/food/snacks/sushi_adv subcategory = CAT_MEAT -/datum/crafting_recipe/food/sushie_pro +/datum/crafting_recipe/food/sushi_pro name = "Well made Funa Nigiri" reqs = list( /datum/reagent/consumable/soysauce = 10, /obj/item/reagent_containers/food/snacks/salad/ricebowl = 2, - /obj/item/reagent_containers/food/snacks/carpmeat = 5 + /obj/item/reagent_containers/food/snacks/carpmeat = 2 ) - result = /obj/item/reagent_containers/food/snacks/sushie_pro + result = /obj/item/reagent_containers/food/snacks/sushi_pro subcategory = CAT_MEAT ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// @@ -124,7 +124,7 @@ result = /obj/item/reagent_containers/food/snacks/spidereggsham subcategory = CAT_MEAT -/datum/crafting_recipe/food/sushie_egg +/datum/crafting_recipe/food/sushi_egg name = "Tobiko" reqs = list( /datum/reagent/consumable/soysauce = 6, From f315250fc435dba6d05fa25caf8e62eb1a5f7c2e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 8 Apr 2019 02:39:37 -0400 Subject: [PATCH 032/180] Update drinnerware.dm --- code/modules/vending/drinnerware.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/vending/drinnerware.dm b/code/modules/vending/drinnerware.dm index 1ec454c82a..33e839c039 100644 --- a/code/modules/vending/drinnerware.dm +++ b/code/modules/vending/drinnerware.dm @@ -13,7 +13,7 @@ /obj/item/reagent_containers/food/condiment/pack/hotsauce = 5, /obj/item/reagent_containers/food/condiment/saltshaker = 5, /obj/item/reagent_containers/food/condiment/peppermill = 5, - /obj/item/reagent_containers/glass/bowl = 50) + /obj/item/reagent_containers/glass/bowl = 30) contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2) armor = list("melee" = 100, "bullet" = 100, "laser" = 100, "energy" = 100, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 50) From d9d2f4de7aad9abd32d80d14dd66cc6a9d465c7d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 8 Apr 2019 02:46:39 -0400 Subject: [PATCH 033/180] grammar and balance --- code/modules/food_and_drinks/food/snacks_meat.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 73d4598147..2ef632350e 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -56,7 +56,7 @@ /obj/item/reagent_containers/food/snacks/sushi_basic name = "funa hosomaki" - desc = "A small cylindrical filled with rice and fish." + desc = "A small cylindrical kudzu skin, filled with rice and fish." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_basic" bonus_reagents = list("vitamin" = 2) @@ -84,7 +84,7 @@ icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_pro" bonus_reagents = list("nutriment" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 8, "vitamin" = 2) + list_reagents = list("nutriment" = 6, "vitamin" = 2) bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) tastes = list("fish" = 3, "rice" = 2, "salt" = 1) From bff53530f454f3f8f2afb4a23ce4b4c54d47c467 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 8 Apr 2019 02:49:48 -0400 Subject: [PATCH 034/180] tastes --- code/modules/food_and_drinks/food/snacks_meat.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 2ef632350e..78aae3f29e 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -63,7 +63,7 @@ list_reagents = list("nutriment" = 4) bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) - tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + tastes = list("fish" = 1, "rice" = 2, "salt" = 1) foodtype = MEAT | VEGETABLES /obj/item/reagent_containers/food/snacks/sushi_adv @@ -75,7 +75,7 @@ list_reagents = list("nutriment" = 6) bitesize = 10 filling_color = "#F2EEEA" //rgb(242, 238, 234) - tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + tastes = list("fish" = 2, "rice" = 2, "salt" = 1) foodtype = MEAT | VEGETABLES /obj/item/reagent_containers/food/snacks/sushi_pro From 8fec3e3d1c63f4e84cdae7b2998954cf8dab3eea Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 8 Apr 2019 15:32:23 -0400 Subject: [PATCH 035/180] fixed more grammar --- code/modules/food_and_drinks/food/snacks_meat.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index 78aae3f29e..cf99bd78d9 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -68,7 +68,7 @@ /obj/item/reagent_containers/food/snacks/sushi_adv name = "funa nigiri" - desc = "A pice of carp lightly placed on some rice." + desc = "A peace of carp lightly placed on some rice." icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_adv" bonus_reagents = list("vitamin" = 2) @@ -80,7 +80,7 @@ /obj/item/reagent_containers/food/snacks/sushi_pro name = "funa nigiri" - desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" + desc = "A well prepared peace of the best of the carp fillet placed on rice. Looks fancy and fresh!" icon = 'modular_citadel/icons/obj/food/food.dmi' icon_state = "sushie_pro" bonus_reagents = list("nutriment" = 2, "vitamin" = 2) From 079dd582b80ac996d48d4f680a4cdea8a181f9aa Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 9 Apr 2019 01:26:32 -0400 Subject: [PATCH 036/180] Update magweapon.dm --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 017a9dd52d..0ab5b9bffd 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -55,9 +55,9 @@ /obj/item/projectile/bullet/nlmags //non-lethal boolets icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-nl" - damage = 0 + damage = 25 knockdown = 0 - stamina = 25 + damage_type = STAMINA armour_penetration = -10 light_range = 2 speed = 0.7 @@ -210,9 +210,9 @@ /obj/item/projectile/bullet/nlmagrifle //non-lethal boolets icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-large-nl" - damage = 0 + damage = 25 knockdown = 0 - stamina = 25 + damage_type = STAMINA armour_penetration = -10 light_range = 3 speed = 0.65 From 02f8f89a79779641972dacef3c715adfd01511fa Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 9 Apr 2019 09:52:05 -0400 Subject: [PATCH 037/180] Update magweapon.dm --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 0ab5b9bffd..ba73398a05 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -55,9 +55,9 @@ /obj/item/projectile/bullet/nlmags //non-lethal boolets icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-nl" - damage = 25 + damage = 5 knockdown = 0 - damage_type = STAMINA + stamina = 25 armour_penetration = -10 light_range = 2 speed = 0.7 @@ -210,9 +210,9 @@ /obj/item/projectile/bullet/nlmagrifle //non-lethal boolets icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-large-nl" - damage = 25 + damage = 5 knockdown = 0 - damage_type = STAMINA + stamina = 25 armour_penetration = -10 light_range = 3 speed = 0.65 From b3e61f02bc415f11fd761af802e9a5142448efbe Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:11:18 -0400 Subject: [PATCH 038/180] brown from green --- modular_citadel/code/modules/mentor/mentorpm.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/mentor/mentorpm.dm b/modular_citadel/code/modules/mentor/mentorpm.dm index 4184a4abef..34ace6f002 100644 --- a/modular_citadel/code/modules/mentor/mentorpm.dm +++ b/modular_citadel/code/modules/mentor/mentorpm.dm @@ -70,16 +70,16 @@ else //recipient is an mentor but sender is not to_chat(C, "Reply PM from-[key_name_mentor(src, C, 1, 0, show_char)]: [msg]") - to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, 0)]: [msg]") + to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, 0)]: [msg]") else if(is_mentor()) //sender is an mentor but recipient is not. to_chat(C, "Mentor PM from-[key_name_mentor(src, C, 1, 0, 0)]: [msg]") - to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, show_char)]: [msg]") + to_chat(src, "Mentor PM to-[key_name_mentor(C, C, 1, 0, show_char)]: [msg]") //we don't use message_Mentors here because the sender/receiver might get it too var/show_char_sender = !is_mentor() && CONFIG_GET(flag/mentors_mobname_only) var/show_char_recip = !C.is_mentor() && CONFIG_GET(flag/mentors_mobname_only) for(var/client/X in GLOB.mentors | GLOB.admins) if(X.key!=key && X.key!=C.key) //check client/X is an Mentor and isn't the sender or recipient - to_chat(X, "Mentor PM: [key_name_mentor(src, X, 0, 0, show_char_sender)]->[key_name_mentor(C, X, 0, 0, show_char_recip)]: [msg]") //inform X \ No newline at end of file + to_chat(X, "Mentor PM: [key_name_mentor(src, X, 0, 0, show_char_sender)]->[key_name_mentor(C, X, 0, 0, show_char_recip)]: [msg]") //inform X From 0b58285b539d1fe3d31e070ba772e56b059488b2 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 11 Apr 2019 00:36:31 -0400 Subject: [PATCH 039/180] 5 - > 2 --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index ba73398a05..df41a79592 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -55,7 +55,7 @@ /obj/item/projectile/bullet/nlmags //non-lethal boolets icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-nl" - damage = 5 + damage = 2 knockdown = 0 stamina = 25 armour_penetration = -10 @@ -210,7 +210,7 @@ /obj/item/projectile/bullet/nlmagrifle //non-lethal boolets icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-large-nl" - damage = 5 + damage = 2 knockdown = 0 stamina = 25 armour_penetration = -10 From 3c3399ea5071ba17fe039cce4eb8cd480de28ddc Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 14 Apr 2019 17:37:26 -0400 Subject: [PATCH 040/180] Update shield.dm --- code/modules/antagonists/blob/blob/blobs/shield.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/blob/blob/blobs/shield.dm b/code/modules/antagonists/blob/blob/blobs/shield.dm index a83f4294b2..fef3c3ab85 100644 --- a/code/modules/antagonists/blob/blob/blobs/shield.dm +++ b/code/modules/antagonists/blob/blob/blobs/shield.dm @@ -8,7 +8,7 @@ explosion_block = 3 point_return = 4 atmosblock = TRUE - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) + armor = list("melee" = 15, "bullet" = 15, "laser" = 5, "energy" = 0, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) /obj/structure/blob/shield/scannerreport() if(atmosblock) From 6674aae78c14c76b5c64efefa092e227a76d0bcd Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 14 Apr 2019 17:40:11 -0400 Subject: [PATCH 041/180] Update factory.dm --- code/modules/antagonists/blob/blob/blobs/factory.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/antagonists/blob/blob/blobs/factory.dm b/code/modules/antagonists/blob/blob/blobs/factory.dm index 3d955036b0..284a43562e 100644 --- a/code/modules/antagonists/blob/blob/blobs/factory.dm +++ b/code/modules/antagonists/blob/blob/blobs/factory.dm @@ -6,6 +6,7 @@ max_integrity = 200 health_regen = 1 point_return = 25 + armor = list("melee" = 10, "bullet" = 20, "laser" = 15, "energy" = 10, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) var/list/spores = list() var/mob/living/simple_animal/hostile/blob/blobbernaut/naut = null var/max_spores = 3 From 85ab924d72d079060e43854b06d9c178247a2af5 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 14 Apr 2019 17:41:15 -0400 Subject: [PATCH 042/180] Update core.dm --- code/modules/antagonists/blob/blob/blobs/core.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/blob/blob/blobs/core.dm b/code/modules/antagonists/blob/blob/blobs/core.dm index e048aa7665..d8cece8b81 100644 --- a/code/modules/antagonists/blob/blob/blobs/core.dm +++ b/code/modules/antagonists/blob/blob/blobs/core.dm @@ -4,7 +4,7 @@ icon_state = "blank_blob" desc = "A huge, pulsating yellow mass." max_integrity = 400 - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 90) + armor = list("melee" = 40, "bullet" = 30, "laser" = 20, "energy" = 5, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 90) // Last stand explosion_block = 6 point_return = -1 health_regen = 0 //we regen in Life() instead of when pulsed From 3a67385bded75b71100e4a45e72fc3bc0fd54e23 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 14 Apr 2019 17:41:54 -0400 Subject: [PATCH 043/180] Update resource.dm --- code/modules/antagonists/blob/blob/blobs/resource.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/antagonists/blob/blob/blobs/resource.dm b/code/modules/antagonists/blob/blob/blobs/resource.dm index 5024d0984c..76aecf717d 100644 --- a/code/modules/antagonists/blob/blob/blobs/resource.dm +++ b/code/modules/antagonists/blob/blob/blobs/resource.dm @@ -5,6 +5,7 @@ desc = "A thin spire of slightly swaying tendrils." max_integrity = 60 point_return = 15 + armor = list("melee" = 10, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) var/resource_delay = 0 /obj/structure/blob/resource/scannerreport() From 25d77bac91f639e6f893186bf46ff5f406542cd4 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 15 Apr 2019 01:01:16 -0500 Subject: [PATCH 044/180] Adds a can_inject check to IV Drips Syringes and hyposprays check, so too do IV needles. --- code/game/machinery/iv_drip.dm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 03c60be91c..15b27a4ee1 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -80,7 +80,13 @@ if(!target.has_dna()) to_chat(usr, "The drip beeps: Warning, incompatible creature!") return - + + var/mob/living/L + if(isliving(target)) + L = target + if(!L.can_inject(user, 1)) + return + if(Adjacent(target) && usr.Adjacent(target)) if(beaker) usr.visible_message("[usr] attaches [src] to [target].", "You attach [src] to [target].") From 295918d77c66f49745c394437fbe0bd7d1749676 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 15 Apr 2019 08:10:31 -0500 Subject: [PATCH 045/180] siiigh. tg NPC code is so bad --- .../mob/living/simple_animal/hostile/hostile.dm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index ec858fdff5..0a8c0431bc 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -345,13 +345,14 @@ /mob/living/simple_animal/hostile/proc/AttackingTarget() in_melee = TRUE - if(isliving(target)) - var/mob/living/L = target - if(L.Adjacent(src) && vore_active && L.devourable) // aggressive check to ensure vore attacks can be made - if(prob(voracious_chance)) - vore_attack(src,L,src) - else - return L.attack_animal(src) + if(vore_active) + if(isliving(target)) + var/mob/living/L = target + if(L.Adjacent(src) && L.devourable) // aggressive check to ensure vore attacks can be made + if(prob(voracious_chance)) + vore_attack(src,L,src) + else + return L.attack_animal(src) else return target.attack_animal(src) From 12d17f6f525f1aa127222075a29038857ddedd22 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 15 Apr 2019 11:28:42 -0500 Subject: [PATCH 046/180] usr --- code/game/machinery/iv_drip.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index 15b27a4ee1..7284b3c738 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -80,13 +80,13 @@ if(!target.has_dna()) to_chat(usr, "The drip beeps: Warning, incompatible creature!") return - + var/mob/living/L if(isliving(target)) L = target - if(!L.can_inject(user, 1)) + if(!L.can_inject(usr, 1)) return - + if(Adjacent(target) && usr.Adjacent(target)) if(beaker) usr.visible_message("[usr] attaches [src] to [target].", "You attach [src] to [target].") From f767069dc27b1801c515d65c70c4926d572af68f Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 15 Apr 2019 13:50:21 -0500 Subject: [PATCH 047/180] Custom Species names --- code/datums/dna.dm | 5 +- code/game/objects/items/devices/scanners.dm | 123 ++++++++++-------- code/modules/client/preferences.dm | 11 ++ code/modules/client/preferences_savefile.dm | 4 +- .../mob/living/carbon/human/examine.dm | 10 ++ .../mob/living/carbon/human/human_defines.dm | 2 + 6 files changed, 96 insertions(+), 59 deletions(-) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index b3f3f7efa1..938515625d 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -9,6 +9,7 @@ var/list/features = list("FFF") //first value is mutant color var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings, var/nameless = FALSE + var/custom_species //siiiiigh I guess this is important var/list/mutations = list() //All mutations are from now on here var/list/temporary_mutations = list() //Timers for temporary mutations var/list/previous = list() //For temporary name/ui/ue/blood_type modifications @@ -45,6 +46,7 @@ destination.dna.features = features.Copy() destination.dna.real_name = real_name destination.dna.nameless = nameless + destination.dna.custom_species = custom_species destination.dna.temporary_mutations = temporary_mutations.Copy() if(ishuman(destination)) var/mob/living/carbon/human/H = destination @@ -62,6 +64,7 @@ new_dna.species = new species.type new_dna.real_name = real_name new_dna.nameless = nameless + new_dna.custom_species = custom_species new_dna.mutations = mutations.Copy() /datum/dna/proc/add_mutation(mutation_name) @@ -202,7 +205,7 @@ /datum/dna/proc/is_same_as(datum/dna/D) - if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name && nameless == D.nameless) + if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name && nameless == D.nameless && custom_species == D.custom_species) if(species.type == D.species.type && features == D.features && blood_type == D.blood_type) return 1 return 0 diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 5a68a8423a..79b04c771b 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -98,10 +98,12 @@ SLIME SCANNER if ((user.has_trait(TRAIT_CLUMSY) || user.has_trait(TRAIT_DUMB)) && prob(50)) to_chat(user, "You stupidly try to analyze the floor's vitals!") user.visible_message("[user] has analyzed the floor's vitals!") - to_chat(user, "Analyzing results for The floor:\n\tOverall status: Healthy") - to_chat(user, "Key: Suffocation/Toxin/Burn/Brute") - to_chat(user, "\tDamage specifics: 0-0-0-0") - to_chat(user, "Body temperature: ???") + var/msg = "*---------*\nAnalyzing results for The floor:\n\tOverall status: Healthy\n" + msg += "Key: Suffocation/Toxin/Burn/Brute\n" + msg += "\tDamage specifics: 0-0-0-0\n" + msg += "Body temperature: ???\n" + msg += "*---------*" + to_chat(user, msg) return user.visible_message("[user] has analyzed [M]'s vitals.") @@ -136,31 +138,31 @@ SLIME SCANNER if(H.undergoing_liver_failure() && H.stat != DEAD) to_chat(user, "Subject is suffering from liver failure: Apply Corazone and begin a liver transplant immediately!") - to_chat(user, "Analyzing results for [M]:\n\tOverall status: [mob_status]") + var/msg = "*---------*\nAnalyzing results for [M]:\n\tOverall status: [mob_status]\n" // Damage descriptions if(brute_loss > 10) - to_chat(user, "\t[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected.") + msg += "\t[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected.\n" if(fire_loss > 10) - to_chat(user, "\t[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected.") + msg += "\t[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected.\n" if(oxy_loss > 10) - to_chat(user, "\t[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected.") + msg += "\t[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected.\n" if(tox_loss > 10) - to_chat(user, "\t[tox_loss > 50 ? "Severe" : "Minor"] amount of toxin damage detected.") + msg += "\t[tox_loss > 50 ? "Severe" : "Minor"] amount of toxin damage detected.\n" if(M.getStaminaLoss()) - to_chat(user, "\tSubject appears to be suffering from fatigue.") + msg += "\tSubject appears to be suffering from fatigue.\n" if(advanced) - to_chat(user, "\tFatigue Level: [M.getStaminaLoss()]%.") + msg += "\tFatigue Level: [M.getStaminaLoss()]%.\n" if (M.getCloneLoss()) - to_chat(user, "\tSubject appears to have [M.getCloneLoss() > 30 ? "Severe" : "Minor"] cellular damage.") + msg += "\tSubject appears to have [M.getCloneLoss() > 30 ? "Severe" : "Minor"] cellular damage.\n" if(advanced) - to_chat(user, "\tCellular Damage Level: [M.getCloneLoss()].") + msg += "\tCellular Damage Level: [M.getCloneLoss()].\n" if (M.getBrainLoss() >= 200 || !M.getorgan(/obj/item/organ/brain)) - to_chat(user, "\tSubject's brain function is non-existent.") + msg += "\tSubject's brain function is non-existent.\n" else if (M.getBrainLoss() >= 120) - to_chat(user, "\tSevere brain damage detected. Subject likely to have mental traumas.") + msg += "\tSevere brain damage detected. Subject likely to have mental traumas.\n" else if (M.getBrainLoss() >= 45) - to_chat(user, "\tBrain damage detected.") + msg += "\tBrain damage detected.\n" if(iscarbon(M)) var/mob/living/carbon/C = M if(LAZYLEN(C.get_traumas())) @@ -176,83 +178,83 @@ SLIME SCANNER trauma_desc += "permanent " trauma_desc += B.scan_desc trauma_text += trauma_desc - to_chat(user, "\tCerebral traumas detected: subject appears to be suffering from [english_list(trauma_text)].") + msg += "\tCerebral traumas detected: subject appears to be suffering from [english_list(trauma_text)].\n" if(C.roundstart_quirks.len) - to_chat(user, "\tSubject has the following physiological traits: [C.get_trait_string()].") + msg += "\tSubject has the following physiological traits: [C.get_trait_string()].\n" if(advanced) - to_chat(user, "\tBrain Activity Level: [(200 - M.getBrainLoss())/2]%.") + msg += "\tBrain Activity Level: [(200 - M.getBrainLoss())/2]%.\n" if (M.radiation) - to_chat(user, "\tSubject is irradiated.") + msg += "\tSubject is irradiated.\n" if(advanced) - to_chat(user, "\tRadiation Level: [M.radiation]%.") + msg += "\tRadiation Level: [M.radiation]%.\n" if(advanced && M.hallucinating()) - to_chat(user, "\tSubject is hallucinating.") + msg += "\tSubject is hallucinating.\n" //Eyes and ears if(advanced) if(iscarbon(M)) var/mob/living/carbon/C = M var/obj/item/organ/ears/ears = C.getorganslot(ORGAN_SLOT_EARS) - to_chat(user, "\t==EAR STATUS==") + msg += "\t==EAR STATUS==\n" if(istype(ears)) var/healthy = TRUE if(C.has_trait(TRAIT_DEAF, GENETIC_MUTATION)) healthy = FALSE - to_chat(user, "\tSubject is genetically deaf.") + msg += "\tSubject is genetically deaf.\n" else if(C.has_trait(TRAIT_DEAF)) healthy = FALSE - to_chat(user, "\tSubject is deaf.") + msg += "\tSubject is deaf.\n" else if(ears.ear_damage) - to_chat(user, "\tSubject has [ears.ear_damage > UNHEALING_EAR_DAMAGE? "permanent ": "temporary "]hearing damage.") + msg += "\tSubject has [ears.ear_damage > UNHEALING_EAR_DAMAGE? "permanent ": "temporary "]hearing damage.\n" healthy = FALSE if(ears.deaf) - to_chat(user, "\tSubject is [ears.ear_damage > UNHEALING_EAR_DAMAGE ? "permanently ": "temporarily "] deaf.") + msg += "\tSubject is [ears.ear_damage > UNHEALING_EAR_DAMAGE ? "permanently ": "temporarily "] deaf.\n" healthy = FALSE if(healthy) - to_chat(user, "\tHealthy.") + msg += "\tHealthy.\n" else - to_chat(user, "\tSubject does not have ears.") + msg += "\tSubject does not have ears.\n" var/obj/item/organ/eyes/eyes = C.getorganslot(ORGAN_SLOT_EYES) - to_chat(user, "\t==EYE STATUS==") + msg += "\t==EYE STATUS==\n" if(istype(eyes)) var/healthy = TRUE if(C.has_trait(TRAIT_BLIND)) - to_chat(user, "\tSubject is blind.") + msg += "\tSubject is blind.\n" healthy = FALSE if(C.has_trait(TRAIT_NEARSIGHT)) - to_chat(user, "\tSubject is nearsighted.") + msg += "\tSubject is nearsighted.\n" healthy = FALSE if(eyes.eye_damage > 30) - to_chat(user, "\tSubject has severe eye damage.") + msg += "\tSubject has severe eye damage.\n" healthy = FALSE else if(eyes.eye_damage > 20) - to_chat(user, "\tSubject has significant eye damage.") + msg += "\tSubject has significant eye damage.\n" healthy = FALSE else if(eyes.eye_damage) - to_chat(user, "\tSubject has minor eye damage.") + msg += "\tSubject has minor eye damage.\n" healthy = FALSE if(healthy) - to_chat(user, "\tHealthy.") + msg += "\tHealthy.\n" else - to_chat(user, "\tSubject does not have eyes.") + msg += "\tSubject does not have eyes.\n" if(ishuman(M)) var/mob/living/carbon/human/H = M var/ldamage = H.return_liver_damage() if(ldamage > 10) - to_chat(user, "\t[ldamage > 45 ? "Severe" : "Minor"] liver damage detected.") + msg += "\t[ldamage > 45 ? "Severe" : "Minor"] liver damage detected.\n" // Body part damage report if(iscarbon(M) && mode == 1) var/mob/living/carbon/C = M var/list/damaged = C.get_damaged_bodyparts(1,1) if(length(damaged)>0 || oxy_loss>0 || tox_loss>0 || fire_loss>0) - to_chat(user, "\tDamage: Brute-Burn-Toxin-Suffocation\n\t\tSpecifics: [brute_loss]-[fire_loss]-[tox_loss]-[oxy_loss]") + msg += "\tDamage: Brute-Burn-Toxin-Suffocation\n\t\tSpecifics: [brute_loss]-[fire_loss]-[tox_loss]-[oxy_loss]\n" for(var/obj/item/bodypart/org in damaged) - to_chat(user, "\t\t[capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : "0"]-[(org.burn_dam > 0) ? "[org.burn_dam]" : "0"]") + msg += "\t\t[capitalize(org.name)]: [(org.brute_dam > 0) ? "[org.brute_dam]" : "0"]-[(org.burn_dam > 0) ? "[org.burn_dam]" : "0"]\n" // Species and body temperature if(ishuman(M)) @@ -282,20 +284,22 @@ SLIME SCANNER else if (S.mutantstomach != initial(S.mutantstomach)) mutant = TRUE - to_chat(user, "Species: [S.name][mutant ? "-derived mutant" : ""]") - to_chat(user, "Body temperature: [round(M.bodytemperature-T0C,0.1)] °C ([round(M.bodytemperature*1.8-459.67,0.1)] °F)") + msg += "Species: [H.dna.custom_species ? H.dna.custom_species : S.name] Base: [S.name]\n" + if(mutant) + msg += "Subject has mutations present." + msg += "Body temperature: [round(M.bodytemperature-T0C,0.1)] °C ([round(M.bodytemperature*1.8-459.67,0.1)] °F)\n" // Time of death if(M.tod && (M.stat == DEAD || ((M.has_trait(TRAIT_FAKEDEATH)) && !advanced))) - to_chat(user, "Time of Death: [M.tod]") + msg += "Time of Death: [M.tod]\n" var/tdelta = round(world.time - M.timeofdeath) if(tdelta < (DEFIB_TIME_LIMIT * 10)) - to_chat(user, "Subject died [DisplayTimeText(tdelta)] ago, defibrillation may be possible!") + msg += "Subject died [DisplayTimeText(tdelta)] ago, defibrillation may be possible!\n" for(var/thing in M.diseases) var/datum/disease/D = thing if(!(D.visibility_flags & HIDDEN_SCANNER)) - to_chat(user, "Warning: [D.form] detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]") + msg += "Warning: [D.form] detected\nName: [D.name].\nType: [D.spread_text].\nStage: [D.stage]/[D.max_stages].\nPossible Cure: [D.cure_text]\n" // Blood Level if(M.has_dna()) @@ -305,7 +309,7 @@ SLIME SCANNER if(ishuman(C)) var/mob/living/carbon/human/H = C if(H.bleed_rate) - to_chat(user, "Subject is bleeding!") + msg += "Subject is bleeding!\n" var/blood_percent = round((C.blood_volume / BLOOD_VOLUME_NORMAL)*100) var/blood_type = C.dna.blood_type if(blood_id != "blood")//special blood substance @@ -315,36 +319,41 @@ SLIME SCANNER else blood_type = blood_id if(C.blood_volume <= BLOOD_VOLUME_SAFE && C.blood_volume > BLOOD_VOLUME_OKAY) - to_chat(user, "LOW blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") + msg += "LOW blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]\n" else if(C.blood_volume <= BLOOD_VOLUME_OKAY) - to_chat(user, "CRITICAL blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") + msg += "CRITICAL blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]\n" else - to_chat(user, "Blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]") + msg += "Blood level [blood_percent] %, [C.blood_volume] cl, type: [blood_type]\n" var/cyberimp_detect for(var/obj/item/organ/cyberimp/CI in C.internal_organs) if(CI.status == ORGAN_ROBOTIC && !CI.syndicate_implant) cyberimp_detect += "[C.name] is modified with a [CI.name].
" if(cyberimp_detect) - to_chat(user, "Detected cybernetic modifications:") - to_chat(user, "[cyberimp_detect]") + msg += "Detected cybernetic modifications:\n" + msg += "[cyberimp_detect]\n" + msg += "*---------*
" + to_chat(user, msg) SEND_SIGNAL(M, COMSIG_NANITE_SCAN, user, FALSE) /proc/chemscan(mob/living/user, mob/living/M) if(istype(M)) if(M.reagents) + var/msg = "*---------*\n" if(M.reagents.reagent_list.len) - to_chat(user, "Subject contains the following reagents:") + msg += "Subject contains the following reagents:\n" for(var/datum/reagent/R in M.reagents.reagent_list) - to_chat(user, "[R.volume] units of [R.name][R.overdosed == 1 ? " - OVERDOSING" : "."]") + msg += "[R.volume] units of [R.name][R.overdosed == 1 ? " - OVERDOSING" : ".
"]\n" else - to_chat(user, "Subject contains no reagents.") + msg += "Subject contains no reagents.\n" if(M.reagents.addiction_list.len) - to_chat(user, "Subject is addicted to the following reagents:") + msg += "Subject is addicted to the following reagents:\n" for(var/datum/reagent/R in M.reagents.addiction_list) - to_chat(user, "[R.name]") + msg += "[R.name]\n" else - to_chat(user, "Subject is not addicted to any reagents.") + msg += "Subject is not addicted to any reagents.\n" + msg += "*---------*
" + to_chat(user, msg) /obj/item/healthanalyzer/verb/toggle_mode() set name = "Switch Verbosity" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index bb3a4442b3..4d4eb8019c 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -82,6 +82,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/list/custom_names = list() var/prefered_security_department = SEC_DEPT_RANDOM + var/custom_species = null //Quirk list var/list/positive_quirks = list() @@ -269,6 +270,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

Body

" dat += "Gender:
[gender == MALE ? "Male" : (gender == FEMALE ? "Female" : (gender == PLURAL ? "Non-binary" : "Object"))]
" dat += "Species:[pref_species.id]
" + dat += "Custom Species Name:[custom_species ? custom_species : "None"]
" dat += "Random Body
" dat += "Always Random Body:[be_random_body ? "Yes" : "No"]
" dat += "
Cycle background:[bgstate]
" @@ -1477,6 +1479,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(features["mcolor3"] == "#000" || (!(MUTCOLORS_PARTSONLY in pref_species.species_traits) && ReadHSV(temp_hsv)[3] < ReadHSV("#202020")[3])) features["mcolor3"] = pref_species.default_color + if("custom_species") + var/new_species = reject_bad_name(input(user, "Choose your species subtype, if unique. This will show up on examinations and health scans. Do not abuse this:", "Character Preference", custom_species) as null|text) + if(new_species) + custom_species = new_species + else + custom_species = null + if("mutant_color") var/new_mutantcolor = input(user, "Choose your character's alien/mutant color:", "Character Preference","#"+features["mcolor"]) as color|null if(new_mutantcolor) @@ -2115,6 +2124,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.real_name = nameless ? "[real_name] #[rand(10000, 99999)]" : real_name character.name = character.real_name character.nameless = nameless + character.custom_species = custom_species character.gender = gender character.age = age @@ -2149,6 +2159,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.dna.features = features.Copy() character.dna.real_name = character.real_name character.dna.nameless = character.nameless + character.dna.custom_species = character.custom_species if("tail_lizard" in pref_species.default_features) character.dna.species.mutant_bodyparts |= "tail_lizard" diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index b6210d94b8..6d165bc531 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -236,6 +236,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //Character S["real_name"] >> real_name S["nameless"] >> nameless + S["custom_species"] >> custom_species S["name_is_always_random"] >> be_random_name S["body_is_always_random"] >> be_random_body S["gender"] >> gender @@ -350,7 +351,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car gender = sanitize_gender(gender, TRUE, TRUE) if(!real_name) real_name = random_unique_name(gender) - + custom_species = reject_bad_name(custom_species) for(var/custom_name_id in GLOB.preferences_custom_names) var/namedata = GLOB.preferences_custom_names[custom_name_id] custom_names[custom_name_id] = reject_bad_name(custom_names[custom_name_id],namedata["allow_numbers"]) @@ -427,6 +428,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //Character WRITE_FILE(S["real_name"] , real_name) WRITE_FILE(S["nameless"] , nameless) + WRITE_FILE(S["custom_species"] , custom_species) WRITE_FILE(S["name_is_always_random"] , be_random_name) WRITE_FILE(S["body_is_always_random"] , be_random_body) WRITE_FILE(S["gender"] , gender) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index c6ba900b13..26e19ff376 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -18,6 +18,16 @@ var/list/obscured = check_obscured_slots() var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)) + if(ishuman(src)) //user just returned, y'know, the user's own species. dumb. + var/mob/living/carbon/human/H = src + var/datum/species/pref_species = H.dna.species + if(get_visible_name() == "Unknown") // same as flavor text, but hey it works. + msg += "You can't make out what species they are.\n" + else if(skipface) + msg += "You can't make out what species they are.\n" + else + msg += "[t_He] [t_is] a [H.dna.custom_species ? H.dna.custom_species : pref_species.name]!\n" + //uniform if(w_uniform && !(SLOT_W_UNIFORM in obscured)) //accessory diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 4f168d97fc..d1ec7f3e4b 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -47,6 +47,8 @@ var/nameless = FALSE //For drones of both the insectoid and robotic kind. And other types of nameless critters. + var/custom_species = null + var/datum/personal_crafting/handcrafting var/datum/physiology/physiology From e7bac925dc763e940d05d50f56b1bae4709598cf Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 15 Apr 2019 15:05:11 -0400 Subject: [PATCH 048/180] Update core.dm --- code/modules/antagonists/blob/blob/blobs/core.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/blob/blob/blobs/core.dm b/code/modules/antagonists/blob/blob/blobs/core.dm index d8cece8b81..81792ca4f6 100644 --- a/code/modules/antagonists/blob/blob/blobs/core.dm +++ b/code/modules/antagonists/blob/blob/blobs/core.dm @@ -4,7 +4,7 @@ icon_state = "blank_blob" desc = "A huge, pulsating yellow mass." max_integrity = 400 - armor = list("melee" = 40, "bullet" = 30, "laser" = 20, "energy" = 5, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 90) // Last stand + armor = list("melee" = 30, "bullet" = 30, "laser" = 20, "energy" = 5, "bomb" = 70, "bio" = 0, "rad" = 0, "fire" = 75, "acid" = 90) // Last stand explosion_block = 6 point_return = -1 health_regen = 0 //we regen in Life() instead of when pulsed From ce7a42c5cd2853e7d95c0a3ba0ef26692da3e8b3 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 15 Apr 2019 14:12:45 -0500 Subject: [PATCH 049/180] Custom Species we'll ensure it's set to null upon changing, just in case --- code/modules/client/preferences.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 4d4eb8019c..68fa630f6d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1458,6 +1458,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/newtype = GLOB.species_list[result] pref_species = new newtype() //let's ensure that no weird shit happens on species swapping. + custom_species = null if(!("body_markings" in pref_species.default_features)) features["body_markings"] = "None" if(!("mam_body_markings" in pref_species.default_features)) From 499078fb1056503d8f8c10f8bd44f2bc2b451da9 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Mon, 15 Apr 2019 22:04:37 -0500 Subject: [PATCH 050/180] Headgear is more aggressive in setting normal style stuff I swear byond's gotten a lot more dumb about if statements... --- code/modules/clothing/head/_head.dm | 7 ++++++- code/modules/clothing/masks/_masks.dm | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/code/modules/clothing/head/_head.dm b/code/modules/clothing/head/_head.dm index f47361e794..8bd7065c1f 100644 --- a/code/modules/clothing/head/_head.dm +++ b/code/modules/clothing/head/_head.dm @@ -27,14 +27,19 @@ if("mam_snouts" in pref_species.default_features) if(H.dna.features["mam_snouts"] != "None") muzzle_var = ALT_STYLE + else + muzzle_var = NORMAL_STYLE else if("snout" in pref_species.default_features) if(H.dna.features["snout"] != "None") muzzle_var = ALT_STYLE + else + muzzle_var = NORMAL_STYLE else muzzle_var = NORMAL_STYLE - H.update_inv_head() + + H.update_inv_head() /obj/item/clothing/head/worn_overlays(isinhands = FALSE) . = list() diff --git a/code/modules/clothing/masks/_masks.dm b/code/modules/clothing/masks/_masks.dm index ea4c9e16b7..8f10184f86 100644 --- a/code/modules/clothing/masks/_masks.dm +++ b/code/modules/clothing/masks/_masks.dm @@ -30,10 +30,15 @@ if("mam_snouts" in pref_species.default_features) if(H.dna.features["mam_snouts"] != "None") muzzle_var = ALT_STYLE + else + muzzle_var = NORMAL_STYLE else if("snout" in pref_species.default_features) if(H.dna.features["snout"] != "None") muzzle_var = ALT_STYLE + else + muzzle_var = NORMAL_STYLE + else muzzle_var = NORMAL_STYLE From 5c0c8aa4c98a65ba12368e3c430b19aadaec88d0 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 15 Apr 2019 23:43:36 -0400 Subject: [PATCH 051/180] Update PDA.dm --- code/game/objects/items/devices/PDA/PDA.dm | 92 ++++++++++++++-------- 1 file changed, 60 insertions(+), 32 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 9ff717816c..94b7617022 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -391,7 +391,7 @@ GLOBAL_LIST_EMPTY(PDAs) //BASIC FUNCTIONS=================================== if("Refresh")//Refresh, goes to the end of the proc. - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if ("Toggle_Font") //CODE REVISION 2 @@ -406,16 +406,19 @@ GLOBAL_LIST_EMPTY(PDAs) font_mode = FONT_ORBITRON if (MODE_VT) font_mode = FONT_VT - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if ("Change_Color") var/new_color = input("Please enter a color name or hex value (Default is \'#808000\').",background_color)as color background_color = new_color - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if ("Toggle_Underline") underline_flag = !underline_flag - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("Return")//Return if(mode<=9) @@ -424,7 +427,8 @@ GLOBAL_LIST_EMPTY(PDAs) mode = round(mode/10) if(mode==4 || mode == 5)//Fix for cartridges. Redirects to hub. mode = 0 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if ("Authenticate")//Checks for ID id_check(U) @@ -434,8 +438,9 @@ GLOBAL_LIST_EMPTY(PDAs) if(istype(id, /obj/item/card/id/syndicate)) owner = id.registered_name update_label() - playsound(src, 'sound/machines/terminal_processing.ogg', 50, 1) - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/machines/terminal_success.ogg', 50, 1), 13) + if (!silent) + playsound(src, 'sound/machines/terminal_processing.ogg', 15, 1) + addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/machines/terminal_success.ogg', 15, 1), 13) if("Eject")//Ejects the cart, only done from hub. if (!isnull(cartridge)) @@ -445,65 +450,76 @@ GLOBAL_LIST_EMPTY(PDAs) cartridge.host_pda = null cartridge = null update_icon() - playsound(src, 'sound/machines/terminal_eject_disc.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_eject_disc.ogg', 15, 1) //MENU FUNCTIONS=================================== if("0")//Hub mode = 0 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("1")//Notes mode = 1 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("2")//Messenger mode = 2 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("21")//Read messeges mode = 21 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("3")//Atmos scan mode = 3 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("4")//Redirects to hub mode = 0 - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) //MAIN FUNCTIONS=================================== if("Light") toggle_light() - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("Medical Scan") if(scanmode == PDA_SCANNER_MEDICAL) scanmode = PDA_SCANNER_NONE else if((!isnull(cartridge)) && (cartridge.access & CART_MEDICAL)) scanmode = PDA_SCANNER_MEDICAL - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("Reagent Scan") if(scanmode == PDA_SCANNER_REAGENT) scanmode = PDA_SCANNER_NONE else if((!isnull(cartridge)) && (cartridge.access & CART_REAGENT_SCANNER)) scanmode = PDA_SCANNER_REAGENT - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("Halogen Counter") if(scanmode == PDA_SCANNER_HALOGEN) scanmode = PDA_SCANNER_NONE else if((!isnull(cartridge)) && (cartridge.access & CART_ENGINE)) scanmode = PDA_SCANNER_HALOGEN - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("Honk") if ( !(last_noise && world.time < last_noise + 20) ) - playsound(src, 'sound/items/bikehorn.ogg', 50, 1) + playsound(src, 'sound/items/bikehorn.ogg', 15, 1) last_noise = world.time if("Trombone") if ( !(last_noise && world.time < last_noise + 20) ) - playsound(src, 'sound/misc/sadtrombone.ogg', 50, 1) + playsound(src, 'sound/misc/sadtrombone.ogg', 15, 1) last_noise = world.time if("Gas Scan") @@ -511,7 +527,8 @@ GLOBAL_LIST_EMPTY(PDAs) scanmode = PDA_SCANNER_NONE else if((!isnull(cartridge)) && (cartridge.access & CART_ATMOS)) scanmode = PDA_SCANNER_GAS - playsound(src, 'sound/machines/terminal_select.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if("Drone Phone") var/alert_s = input(U,"Alert severity level","Ping Drones",null) as null|anything in list("Low","Medium","High","Critical") @@ -520,7 +537,8 @@ GLOBAL_LIST_EMPTY(PDAs) var/msg = "NON-DRONE PING: [U.name]: [alert_s] priority alert in [A.name]!" _alert_drones(msg, TRUE, U) to_chat(U, msg) - playsound(src, 'sound/machines/terminal_success.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_success.ogg', 15, 1) //NOTEKEEPER FUNCTIONS=================================== @@ -672,7 +690,8 @@ GLOBAL_LIST_EMPTY(PDAs) if (!signal.data["done"]) to_chat(user, "ERROR: Server isn't responding.") return - playsound(src, 'sound/machines/terminal_error.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_error.ogg', 15, 1) var/target_text = signal.format_target() // Log it in our logs @@ -685,7 +704,8 @@ GLOBAL_LIST_EMPTY(PDAs) // Log in the talk log user.log_talk(message, LOG_PDA, tag="PDA: [initial(name)] to [target_text]") to_chat(user, "Message sent to [target_text]: \"[message]\"") - playsound(src, 'sound/machines/terminal_success.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_success.ogg', 15, 1) // Reset the photo picture = null last_text = world.time @@ -696,7 +716,7 @@ GLOBAL_LIST_EMPTY(PDAs) tnote += "← From [signal.data["name"]] ([signal.data["job"]]):
[signal.format_message()]
" if (!silent) - playsound(src, 'sound/machines/twobeep.ogg', 50, 1) + playsound(src, 'sound/machines/twobeep.ogg', 15, 1) audible_message("[icon2html(src, hearers(src))] *[ttone]*", null, 3) //Search for holder of the PDA. var/mob/living/L = null @@ -732,10 +752,12 @@ GLOBAL_LIST_EMPTY(PDAs) if(id) remove_id() - playsound(src, 'sound/machines/terminal_eject_disc.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_eject_disc.ogg', 15, 1) else remove_pen() - playsound(src, 'sound/machines/button4.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/button4.ogg', 15, 1) /obj/item/pda/CtrlClick() ..() @@ -811,7 +833,8 @@ GLOBAL_LIST_EMPTY(PDAs) if(old_id) user.put_in_hands(old_id) update_icon() - playsound(src, 'sound/machines/button.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/button.ogg', 15, 1) return TRUE // access to status display signals @@ -823,21 +846,24 @@ GLOBAL_LIST_EMPTY(PDAs) cartridge.host_pda = src to_chat(user, "You insert [cartridge] into [src].") update_icon() - playsound(src, 'sound/machines/button.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/button.ogg', 15, 1) else if(istype(C, /obj/item/card/id)) var/obj/item/card/id/idcard = C if(!idcard.registered_name) to_chat(user, "\The [src] rejects the ID!") return - playsound(src, 'sound/machines/terminal_error.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_error.ogg', 15, 1) if(!owner) owner = idcard.registered_name ownjob = idcard.assignment update_label() to_chat(user, "Card scanned.") - playsound(src, 'sound/machines/terminal_success.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_success.ogg', 15, 1) else //Basic safety check. If either both objects are held by user or PDA is on ground and card is in hand. if(((src in user.contents) || (isturf(loc) && in_range(src, user))) && (C in user.contents)) @@ -863,7 +889,8 @@ GLOBAL_LIST_EMPTY(PDAs) to_chat(user, "You slide \the [C] into \the [src].") inserted_item = C update_icon() - playsound(src, 'sound/machines/button.ogg', 50, 1) + if (!silent) + playsound(src, 'sound/machines/button.ogg', 15, 1) else if(istype(C, /obj/item/photo)) var/obj/item/photo/P = C @@ -1053,3 +1080,4 @@ GLOBAL_LIST_EMPTY(PDAs) #undef PDA_SCANNER_HALOGEN #undef PDA_SCANNER_GAS #undef PDA_SPAM_DELAY + From dba2b6deaf62cf35c1e3cedf1888bff385eb9305 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Tue, 16 Apr 2019 11:55:54 -0700 Subject: [PATCH 052/180] Tweaks Electric Stimulator + Adds Bonermeter --- .../integrated_electronics/subtypes/input.dm | 29 +++++++++ .../subtypes/manipulation.dm | 60 +++++++++++++------ tgstation.dme | 1 + 3 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 modular_citadel/code/modules/integrated_electronics/subtypes/input.dm diff --git a/modular_citadel/code/modules/integrated_electronics/subtypes/input.dm b/modular_citadel/code/modules/integrated_electronics/subtypes/input.dm new file mode 100644 index 0000000000..8dd13c618e --- /dev/null +++ b/modular_citadel/code/modules/integrated_electronics/subtypes/input.dm @@ -0,0 +1,29 @@ +/obj/item/integrated_circuit/input/bonermeter + name = "bonermeter" + desc = "Detects the target's arousal and various statistics about the target's arousal levels. Invasive!" + icon_state = "medscan" + complexity = 4 + inputs = list("target" = IC_PINTYPE_REF) + outputs = list( + "current arousal" = IC_PINTYPE_NUMBER, + "minimum arousal" = IC_PINTYPE_NUMBER, + "maximum arousal" = IC_PINTYPE_NUMBER, + "can be aroused" = IC_PINTYPE_BOOLEAN + ) + activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT) + spawn_flags = IC_SPAWN_RESEARCH + power_draw_per_use = 40 + +/obj/item/integrated_circuit/input/bonermeter/do_work() + + var/mob/living/L = get_pin_data_as_type(IC_INPUT, 1, /mob/living) + + if(!istype(L) || !L.Adjacent(get_turf(src)) ) //Invalid input + return + + set_pin_data(IC_OUTPUT, 1, L.getArousalLoss()) + set_pin_data(IC_OUTPUT, 2, L.min_arousal) + set_pin_data(IC_OUTPUT, 3, L.max_arousal) + set_pin_data(IC_OUTPUT, 4, L.canbearoused) + push_data() + activate_pin(2) \ No newline at end of file diff --git a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm index 79d229c757..d60b641dfa 100644 --- a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -1,33 +1,59 @@ /obj/item/integrated_circuit/manipulation/electric_stimulator name = "electronic stimulation module" - desc = "Used to induce sexual stimulation with electricity." + desc = "Used to induce a target with sexual stimulation with electricity." icon_state = "power_relay" - extended_desc = "The circuit accepts a reference to a person and upon activation, attempts to stimulate them to orgasm." - complexity = 10 - size = 3 - inputs = list("target" = IC_PINTYPE_REF) - outputs = list() - activators = list("fire" = IC_PINTYPE_PULSE_IN) + extended_desc = "The circuit accepts a reference to a person, as well as a number representing the strength of the shock, and upon activation, attempts to stimulate them to orgasm. The number ranges from -100 to 100, with negative numbers reducing arousal and positive numbers increasing it." + complexity = 15 + size = 2 + inputs = list("target" = IC_PINTYPE_REF, "strength" = IC_PINTYPE_NUMBER) + outputs = list("arousal gain"=IC_PINTYPE_NUMBER) + activators = list("fire" = IC_PINTYPE_PULSE_IN, "on success" = IC_PINTYPE_PULSE_OUT, "on fail" = IC_PINTYPE_PULSE_OUT, "on orgasm" = IC_PINTYPE_PULSE_OUT) spawn_flags = IC_SPAWN_RESEARCH power_draw_per_use = 500 cooldown_per_use = 50 + ext_cooldown = 25 /obj/item/integrated_circuit/manipulation/electric_stimulator/do_work() ..() + set_pin_data(IC_OUTPUT, 1, 0) var/mob/living/M = get_pin_data_as_type(IC_INPUT, 1, /mob/living) if(!check_target(M)) return - if(ismob(M) && M.canbearoused) - if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna()) - var/mob/living/carbon/human/H = M - var/orgasm_message = pick("A sharp pulse of electricity pushes you to orgasm!", "You feel a jolt of electricity force you into orgasm!") - H.visible_message("\The [assembly] electrodes shock [H]!", "[orgasm_message]") - playsound(src, "sound/effects/light_flicker.ogg", 30, 1) - H.mob_climax(forced_climax=TRUE) + + var/arousal_gain = CLAMP(get_pin_data(IC_INPUT, 2)*(35/100),-35,35) + set_pin_data(IC_OUTPUT, 1, arousal_gain) + + if(ismob(M) && M.canbearoused && arousal_gain != 0) + var/orgasm = FALSE + if(arousal_gain > 0) + if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna()) + var/mob/living/carbon/human/H = M + var/orgasm_message = pick("A sharp pulse of electricity pushes you to orgasm!", "You feel a jolt of electricity force you into orgasm!") + H.visible_message("\The [assembly] electrodes shock [H]!", "[orgasm_message]") + playsound(src, "sound/effects/light_flicker.ogg", 30, 1) + H.mob_climax(forced_climax=TRUE) + orgasm = TRUE + else + M.adjustArousalLoss(arousal_gain) + var/stimulate_message = pick("You feel a sharp warming tingle of electricity through your body!", "A burst of arousing electricity flows through your body!") + M.visible_message("\The [assembly] electrodes shock [M]!", "[stimulate_message]") + else - M.adjustArousalLoss(35) - var/stimulate_message = pick("You feel a sharp warming tingle of electricity through your body!", "A burst of arousing electricity flows through your body!") + var/stimulate_message = pick("You feel a dull prickle of electricity through your body!", "A burst of dull electricity flows through your body!") M.visible_message("\The [assembly] electrodes shock [M]!", "[stimulate_message]") - playsound(src, "sound/effects/light_flicker.ogg", 30, 1) + M.adjustArousalLoss(arousal_gain) + + playsound(src, "sound/effects/light_flicker.ogg", 30, 1) + push_data() + activate_pin(2) + if(orgasm) activate_pin(4) + else visible_message("\The [assembly] electrodes fail to shock [M]!") + push_data() + activate_pin(3) + + +/* +{"assembly":{"type":"type-a electronic mechanism"},"components":[{"type":"bonermeter"},{"type":"electronic stimulation module"},{"type":"number pad"},{"type":"local locator"},{"type":"text-to-speech circuit","inputs":[[1,0,"Orgasm"]]},{"type":"text-to-speech circuit","inputs":[[1,0,"Scanned"]]},{"type":"text-to-speech circuit"}],"wires":[[[1,"I",1],[4,"O",1]],[[1,"A",1],[2,"A",2]],[[1,"A",2],[6,"A",1]],[[2,"I",1],[4,"O",1]],[[2,"I",2],[3,"O",1]],[[2,"A",1],[4,"A",2]],[[2,"A",4],[5,"A",1]],[[3,"A",1],[4,"A",1]]]} +/* \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 5b4c4eabe5..4f1cda7c23 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2897,6 +2897,7 @@ #include "modular_citadel\code\modules\events\blob.dm" #include "modular_citadel\code\modules\events\wizard\magicarp.dm" #include "modular_citadel\code\modules\food_and_drinks\snacks\meat.dm" +#include "modular_citadel\code\modules\integrated_electronics\subtypes\input.dm" #include "modular_citadel\code\modules\integrated_electronics\subtypes\manipulation.dm" #include "modular_citadel\code\modules\jobs\dresscode_values.dm" #include "modular_citadel\code\modules\jobs\job_types\captain.dm" From 2b57db57ab5cf793b84fa41cb2758d38585866f4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 16 Apr 2019 15:07:51 -0400 Subject: [PATCH 053/180] Update PDA.dm --- code/game/objects/items/devices/PDA/PDA.dm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 94b7617022..24e350b47e 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -391,7 +391,8 @@ GLOBAL_LIST_EMPTY(PDAs) //BASIC FUNCTIONS=================================== if("Refresh")//Refresh, goes to the end of the proc. - playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if ("Toggle_Font") //CODE REVISION 2 @@ -451,7 +452,7 @@ GLOBAL_LIST_EMPTY(PDAs) cartridge = null update_icon() if (!silent) - playsound(src, 'sound/machines/terminal_eject_disc.ogg', 15, 1) + playsound(src, 'sound/machines/terminal_eject_disc.ogg', 50, 1) //MENU FUNCTIONS=================================== @@ -514,12 +515,12 @@ GLOBAL_LIST_EMPTY(PDAs) if("Honk") if ( !(last_noise && world.time < last_noise + 20) ) - playsound(src, 'sound/items/bikehorn.ogg', 15, 1) + playsound(src, 'sound/items/bikehorn.ogg', 50, 1) last_noise = world.time if("Trombone") if ( !(last_noise && world.time < last_noise + 20) ) - playsound(src, 'sound/misc/sadtrombone.ogg', 15, 1) + playsound(src, 'sound/misc/sadtrombone.ogg', 50, 1) last_noise = world.time if("Gas Scan") @@ -716,7 +717,7 @@ GLOBAL_LIST_EMPTY(PDAs) tnote += "← From [signal.data["name"]] ([signal.data["job"]]):
[signal.format_message()]
" if (!silent) - playsound(src, 'sound/machines/twobeep.ogg', 15, 1) + playsound(src, 'sound/machines/twobeep.ogg', 50, 1) audible_message("[icon2html(src, hearers(src))] *[ttone]*", null, 3) //Search for holder of the PDA. var/mob/living/L = null @@ -753,11 +754,11 @@ GLOBAL_LIST_EMPTY(PDAs) if(id) remove_id() if (!silent) - playsound(src, 'sound/machines/terminal_eject_disc.ogg', 15, 1) + playsound(src, 'sound/machines/terminal_eject_disc.ogg', 50, 1) else remove_pen() if (!silent) - playsound(src, 'sound/machines/button4.ogg', 15, 1) + playsound(src, 'sound/machines/button4.ogg', 50, 1) /obj/item/pda/CtrlClick() ..() @@ -890,7 +891,7 @@ GLOBAL_LIST_EMPTY(PDAs) inserted_item = C update_icon() if (!silent) - playsound(src, 'sound/machines/button.ogg', 15, 1) + playsound(src, 'sound/machines/button.ogg', 50, 1) else if(istype(C, /obj/item/photo)) var/obj/item/photo/P = C From 1b970e7ce0600f5c56ea526caafa223425ea15f0 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 16 Apr 2019 15:08:45 -0400 Subject: [PATCH 054/180] Update PDA.dm --- code/game/objects/items/devices/PDA/PDA.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index 24e350b47e..fccaa50002 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -392,7 +392,7 @@ GLOBAL_LIST_EMPTY(PDAs) if("Refresh")//Refresh, goes to the end of the proc. if (!silent) - playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if ("Toggle_Font") //CODE REVISION 2 From d49178fd84f7847ae045b0ac88edcb03841eab49 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Tue, 16 Apr 2019 12:10:03 -0700 Subject: [PATCH 055/180] Removed debug code, made the arousal input just be a flat value. --- .../integrated_electronics/subtypes/manipulation.dm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm index d60b641dfa..548d0b7c64 100644 --- a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -2,7 +2,7 @@ name = "electronic stimulation module" desc = "Used to induce a target with sexual stimulation with electricity." icon_state = "power_relay" - extended_desc = "The circuit accepts a reference to a person, as well as a number representing the strength of the shock, and upon activation, attempts to stimulate them to orgasm. The number ranges from -100 to 100, with negative numbers reducing arousal and positive numbers increasing it." + extended_desc = "The circuit accepts a reference to a person, as well as a number representing the strength of the shock, and upon activation, attempts to stimulate them to orgasm. The number ranges from -35 to 35, with negative numbers reducing arousal and positive numbers increasing it by that amount." complexity = 15 size = 2 inputs = list("target" = IC_PINTYPE_REF, "strength" = IC_PINTYPE_NUMBER) @@ -20,7 +20,7 @@ if(!check_target(M)) return - var/arousal_gain = CLAMP(get_pin_data(IC_INPUT, 2)*(35/100),-35,35) + var/arousal_gain = CLAMP(get_pin_data(IC_INPUT, 2),-35,35) set_pin_data(IC_OUTPUT, 1, arousal_gain) if(ismob(M) && M.canbearoused && arousal_gain != 0) @@ -51,9 +51,4 @@ else visible_message("\The [assembly] electrodes fail to shock [M]!") push_data() - activate_pin(3) - - -/* -{"assembly":{"type":"type-a electronic mechanism"},"components":[{"type":"bonermeter"},{"type":"electronic stimulation module"},{"type":"number pad"},{"type":"local locator"},{"type":"text-to-speech circuit","inputs":[[1,0,"Orgasm"]]},{"type":"text-to-speech circuit","inputs":[[1,0,"Scanned"]]},{"type":"text-to-speech circuit"}],"wires":[[[1,"I",1],[4,"O",1]],[[1,"A",1],[2,"A",2]],[[1,"A",2],[6,"A",1]],[[2,"I",1],[4,"O",1]],[[2,"I",2],[3,"O",1]],[[2,"A",1],[4,"A",2]],[[2,"A",4],[5,"A",1]],[[3,"A",1],[4,"A",1]]]} -/* \ No newline at end of file + activate_pin(3) \ No newline at end of file From df880c67235e5dea05a68f7f73b5d7dd0077205d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 16 Apr 2019 16:07:52 -0400 Subject: [PATCH 056/180] Update PDA.dm --- code/game/objects/items/devices/PDA/PDA.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index fccaa50002..ee949105f9 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -391,8 +391,8 @@ GLOBAL_LIST_EMPTY(PDAs) //BASIC FUNCTIONS=================================== if("Refresh")//Refresh, goes to the end of the proc. - if (!silent) - playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) + if (!silent) + playsound(src, 'sound/machines/terminal_select.ogg', 15, 1) if ("Toggle_Font") //CODE REVISION 2 From fdd0eb4b17dfb9943f8a5e68df4a8091e85b20ba Mon Sep 17 00:00:00 2001 From: deathride58 Date: Tue, 16 Apr 2019 15:40:55 -0700 Subject: [PATCH 057/180] Update modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm Co-Authored-By: BurgerLUA --- .../modules/integrated_electronics/subtypes/manipulation.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm index 548d0b7c64..246205f7b6 100644 --- a/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/modular_citadel/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -1,6 +1,6 @@ /obj/item/integrated_circuit/manipulation/electric_stimulator name = "electronic stimulation module" - desc = "Used to induce a target with sexual stimulation with electricity." + desc = "Used to induce sexual stimulation in a target via electricity." icon_state = "power_relay" extended_desc = "The circuit accepts a reference to a person, as well as a number representing the strength of the shock, and upon activation, attempts to stimulate them to orgasm. The number ranges from -35 to 35, with negative numbers reducing arousal and positive numbers increasing it by that amount." complexity = 15 @@ -51,4 +51,4 @@ else visible_message("\The [assembly] electrodes fail to shock [M]!") push_data() - activate_pin(3) \ No newline at end of file + activate_pin(3) From ed608ac32cf45de7cc6d24e4cc6e3792c7667aad Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 16 Apr 2019 20:26:24 -0400 Subject: [PATCH 058/180] Bhijn... --- code/game/objects/items/devices/PDA/PDA.dm | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm index ee949105f9..7d3d36c5b2 100644 --- a/code/game/objects/items/devices/PDA/PDA.dm +++ b/code/game/objects/items/devices/PDA/PDA.dm @@ -753,12 +753,10 @@ GLOBAL_LIST_EMPTY(PDAs) if(id) remove_id() - if (!silent) - playsound(src, 'sound/machines/terminal_eject_disc.ogg', 50, 1) + playsound(src, 'sound/machines/terminal_eject_disc.ogg', 50, 1) else remove_pen() - if (!silent) - playsound(src, 'sound/machines/button4.ogg', 50, 1) + playsound(src, 'sound/machines/button4.ogg', 50, 1) /obj/item/pda/CtrlClick() ..() @@ -834,8 +832,7 @@ GLOBAL_LIST_EMPTY(PDAs) if(old_id) user.put_in_hands(old_id) update_icon() - if (!silent) - playsound(src, 'sound/machines/button.ogg', 15, 1) + playsound(src, 'sound/machines/button.ogg', 50, 1) return TRUE // access to status display signals @@ -847,8 +844,7 @@ GLOBAL_LIST_EMPTY(PDAs) cartridge.host_pda = src to_chat(user, "You insert [cartridge] into [src].") update_icon() - if (!silent) - playsound(src, 'sound/machines/button.ogg', 15, 1) + playsound(src, 'sound/machines/button.ogg', 50, 1) else if(istype(C, /obj/item/card/id)) var/obj/item/card/id/idcard = C @@ -890,8 +886,7 @@ GLOBAL_LIST_EMPTY(PDAs) to_chat(user, "You slide \the [C] into \the [src].") inserted_item = C update_icon() - if (!silent) - playsound(src, 'sound/machines/button.ogg', 50, 1) + playsound(src, 'sound/machines/button.ogg', 50, 1) else if(istype(C, /obj/item/photo)) var/obj/item/photo/P = C From 795558ee996f0be60c1a86a8d87b5a73db0bccb8 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Tue, 16 Apr 2019 21:57:05 -0500 Subject: [PATCH 059/180] Fixes missing EVA helmet states --- modular_citadel/icons/mob/muzzled_helmet.dmi | Bin 75800 -> 75949 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/modular_citadel/icons/mob/muzzled_helmet.dmi b/modular_citadel/icons/mob/muzzled_helmet.dmi index 3c0a229d588a66798d6e6ac326629584e2a56d3b..36313cce66cdc62d5f4c8e63ccee39feec777412 100644 GIT binary patch literal 75949 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�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 V&O+itxWUgM2wfAMa_t8%{{t@P+VB7X literal 75800 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%0DSD;Iu&psuQ{#% z;2Yp4KrX3yZ;S%!0kIr&xM$D)3pEKK1O;GtvDp4>285-AVfxa@!r*^&*3fd(cmI=s z&~Ai}ZD0D2+e*@S>;HR^sj?(=cy@MnNkxSQb@_Eg*uhyz312n}+N%yd;o{=bS5u=* zI{4e-N;KDwV&(){%rgR}4KAEhWyTMYV%P57T$NSCLRDHC%Ttz|9OS*>w4t#x_E;zH z<*Vjg#|o>t_ID^K^aLs_{xPu9k_V1000UAd(5v$UwJop?qF^U+cfK(WTtm0@b!#ncZO*%Q z2|$oH*7WDk%iFZHV5}qxtmp&lsEmz`0RRexYU$|U0k>}uf|WbjI>oL#(?SB4;12(e zDT*k8mUbU*XD-6ziaxdl@c;xcFfizl4pmlGek|nkrB+r}Hcto)=m=Qqf%SRCk2k-j zcv6lRsP{LxuI74zmR7=L3GitrNGHM zL_pjC!<#p6rq2&nD?N{_fsTJY&m86(ZVI;SgGr!~Y{ezaop^8pL9ht{)a5WDZ{EIj z{Wro1bObk}`oP(3i2Q&?c;jMNq(W1jTWNvVq$CwgdmkEycCWV_EG7o7nl9y>7iDyG zb;E;$@r=Nk1owluDKMRGlWp;sJZ%5gMrzM z3uOv>LfH19ft8U_8X$io6U>#x!_7%n{`P;sCw5s5sH-t@{;2@#qe{`=U@@*rn*DCq z;QupAi#Jc4J)#%SJ>s*y@xkZJxHv9;W+4j#ol*lrRG>OCPUTK_GwngKZn<@fSO0b3 zcVP;h_eAn+AoBQD59qz|0zkBpk*R^f7tq&q%Iqt|wO-1t>^0x?`KKRv`21ZisFC2G zD=x($5rgs*G0sLb7;x;U`>Cx&>UI1&0DolW;}F#l!)r z*G!T-V1XY=3U$S}*Mf`BkImdCN~JnnQc~X!lK%@aL@E3DP=t*+#?}mtO@+}}7K=Pt z?AiAP*Xy&M@anHQA$%)Mc1g3Usc+iI`31Pe<`Z}!~ z)1o5YhKtZH#Wl`Sdm+)B*18){o;>+kT)D=mA;p6VgU%o_I&0t_eL9f)?O;=S-- zpFVJWT5e!N8Fc5@C=P_)4@|-8lV+@`QN|CQ;%v}-$y+}q4xqb=mG=%*@#pa~2_tAa z3S7s3)1XClNWdpBrX>4o+(}k2BV$VHRfQ8`rrKszLAlIKEH$s4QBvyHElJKF1EaNE zJkLC4h>WXeBFPvVyLM)(cl+)}e@#LVW{ksY@ni+t$z=Llaeg75VHmCH*6ANFzX}v| z?bR9%tAf#MP@$;V7)b%WT02^{*DCVqgW)K`o4BM-`=_8zRDN=EO=N6)C3Q;*DBKMM?$)#9ZE<8!0))}fC! zH*lpn+B!OS1OzB2*J@u@&yXKHwlew=8ymY+kunk*N+1SanHjFG2>4(HCB%-ycpZ>w zbg?GE=b#3*=Lhg9T?HC$)BualKscu7%F`W1Zr#DvzCyibQ8`S;yQ z$!O*OcGvO+EPQIJtAJlTtL=_l8~F3&_QsnYMBuC&z7MfH@Sgo&)VDAJ5V?~xi;;sR ze)lMh!M4FxFDRy*SE^KmDT-QfRi#n#3In~mFWy zU(Sw>RBuArAHVx$wbrisgp{;G4nOF8e;M4v9x;&rEG&HL?k;>57u(g`im;PfBn&sgN=-#q2cHhsP6P}HJq(RErbB2G~>&F zN8%n+s-iMd+Fe;sLmv6;n{A=y7Zx=2^nUF=yFVvv#`VJkRQK+!@dDT7fa}TM z2OvN5eP9iPcr1|y>6o|8A+R|{oRXin9U|7!LPeH<+4=d%MFw+q3BegIV1J17s8w6#GXEsaRGs31tG zbcbM(3W7AKsB||oG)k$UAdQHKv~&(3CEd+{bayke-;4Wxe(&@C_5JZ3$M+oX=Yhj! z*UVh8u63?;u5;5nFLpNk)Xw~&! z2-I0P()7T#T^B76mcB1uO?$WQPmB6d9-!?9k*nzAvw}+4f`kAC;$n}gzk7zF>sJ2* zjq*R^!nv*#_8{YE<@`HH(#iq?0}UJN0Sq89(6>F~ABJ5EJ{7 zEa@C_ii~tp!BziHxm%k8#qs~0ivEA0!~g#Qf>fR za1VLlLKfFbc3@Vj5#-cKESx91vl3-F*A=_8@RcZfdW*~-o%<0LqkIW1qDK6q@)2rP5{h& zsNPJN6M&k9`FWDb_Y>6Oze7Wbq5GCQ07QV3jap`wmWb=C@^W%=8U|5JuY~nE_CZx~ zTX*-OAKYxhuWU^HUMrUK*&!~P;{C=D60}IEm3w>t#YW^Rd8>Z3KGeM;UkJS_W>Wb4 z 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�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 Date: Tue, 16 Apr 2019 21:06:57 -0700 Subject: [PATCH 060/180] No more seperate whatever --- .../integrated_electronics/subtypes/input.dm | 31 +++++++++++++++++++ .../integrated_electronics/subtypes/input.dm | 29 ----------------- tgstation.dme | 1 - 3 files changed, 31 insertions(+), 30 deletions(-) delete mode 100644 modular_citadel/code/modules/integrated_electronics/subtypes/input.dm diff --git a/code/modules/integrated_electronics/subtypes/input.dm b/code/modules/integrated_electronics/subtypes/input.dm index 6e8b0cb777..a7c58e8669 100644 --- a/code/modules/integrated_electronics/subtypes/input.dm +++ b/code/modules/integrated_electronics/subtypes/input.dm @@ -1309,4 +1309,35 @@ set_pin_data(IC_OUTPUT, 2, regurgitated_contents) push_data() + activate_pin(2) + +//Degens +/obj/item/integrated_circuit/input/bonermeter + name = "bonermeter" + desc = "Detects the target's arousal and various statistics about the target's arousal levels. Invasive!" + icon_state = "medscan" + complexity = 4 + inputs = list("target" = IC_PINTYPE_REF) + outputs = list( + "current arousal" = IC_PINTYPE_NUMBER, + "minimum arousal" = IC_PINTYPE_NUMBER, + "maximum arousal" = IC_PINTYPE_NUMBER, + "can be aroused" = IC_PINTYPE_BOOLEAN + ) + activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT) + spawn_flags = IC_SPAWN_RESEARCH + power_draw_per_use = 40 + +/obj/item/integrated_circuit/input/bonermeter/do_work() + + var/mob/living/L = get_pin_data_as_type(IC_INPUT, 1, /mob/living) + + if(!istype(L) || !L.Adjacent(get_turf(src)) ) //Invalid input + return + + set_pin_data(IC_OUTPUT, 1, L.getArousalLoss()) + set_pin_data(IC_OUTPUT, 2, L.min_arousal) + set_pin_data(IC_OUTPUT, 3, L.max_arousal) + set_pin_data(IC_OUTPUT, 4, L.canbearoused) + push_data() activate_pin(2) \ No newline at end of file diff --git a/modular_citadel/code/modules/integrated_electronics/subtypes/input.dm b/modular_citadel/code/modules/integrated_electronics/subtypes/input.dm deleted file mode 100644 index 8dd13c618e..0000000000 --- a/modular_citadel/code/modules/integrated_electronics/subtypes/input.dm +++ /dev/null @@ -1,29 +0,0 @@ -/obj/item/integrated_circuit/input/bonermeter - name = "bonermeter" - desc = "Detects the target's arousal and various statistics about the target's arousal levels. Invasive!" - icon_state = "medscan" - complexity = 4 - inputs = list("target" = IC_PINTYPE_REF) - outputs = list( - "current arousal" = IC_PINTYPE_NUMBER, - "minimum arousal" = IC_PINTYPE_NUMBER, - "maximum arousal" = IC_PINTYPE_NUMBER, - "can be aroused" = IC_PINTYPE_BOOLEAN - ) - activators = list("scan" = IC_PINTYPE_PULSE_IN, "on scanned" = IC_PINTYPE_PULSE_OUT) - spawn_flags = IC_SPAWN_RESEARCH - power_draw_per_use = 40 - -/obj/item/integrated_circuit/input/bonermeter/do_work() - - var/mob/living/L = get_pin_data_as_type(IC_INPUT, 1, /mob/living) - - if(!istype(L) || !L.Adjacent(get_turf(src)) ) //Invalid input - return - - set_pin_data(IC_OUTPUT, 1, L.getArousalLoss()) - set_pin_data(IC_OUTPUT, 2, L.min_arousal) - set_pin_data(IC_OUTPUT, 3, L.max_arousal) - set_pin_data(IC_OUTPUT, 4, L.canbearoused) - push_data() - activate_pin(2) \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index 4f1cda7c23..5b4c4eabe5 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2897,7 +2897,6 @@ #include "modular_citadel\code\modules\events\blob.dm" #include "modular_citadel\code\modules\events\wizard\magicarp.dm" #include "modular_citadel\code\modules\food_and_drinks\snacks\meat.dm" -#include "modular_citadel\code\modules\integrated_electronics\subtypes\input.dm" #include "modular_citadel\code\modules\integrated_electronics\subtypes\manipulation.dm" #include "modular_citadel\code\modules\jobs\dresscode_values.dm" #include "modular_citadel\code\modules\jobs\job_types\captain.dm" From 1f65b1ebdd1ecc2d9b897425cd563cbca57b4a8d Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 17 Apr 2019 01:27:08 -0500 Subject: [PATCH 061/180] clears blindness on vore OOC escape --- modular_citadel/code/modules/vore/eating/belly_obj_vr.dm | 9 +++++---- modular_citadel/code/modules/vore/eating/living_vr.dm | 3 +-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm index e931f37520..22085d520c 100644 --- a/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm +++ b/modular_citadel/code/modules/vore/eating/belly_obj_vr.dm @@ -232,10 +232,11 @@ M.forceMove(drop_location()) // Move the belly contents into the same location as belly's owner. items_preserved -= M - for(var/mob/H in get_hearers_in_view(2, get_turf(owner))) - if(H.client && (H.client.prefs.cit_toggles & EATING_NOISES)) - var/sound/releasement = GLOB.release_sounds[release_sound] - playsound(get_turf(owner),releasement,50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) + if(!silent) + for(var/mob/H in get_hearers_in_view(2, get_turf(owner))) + if(H.client && (H.client.prefs.cit_toggles & EATING_NOISES)) + var/sound/releasement = GLOB.release_sounds[release_sound] + playsound(get_turf(owner),releasement,50,0,-5,0,ignore_walls = FALSE,channel=CHANNEL_PRED) if(istype(M,/mob/living)) var/mob/living/ML = M diff --git a/modular_citadel/code/modules/vore/eating/living_vr.dm b/modular_citadel/code/modules/vore/eating/living_vr.dm index b1d2a46ff2..a8a77895c8 100644 --- a/modular_citadel/code/modules/vore/eating/living_vr.dm +++ b/modular_citadel/code/modules/vore/eating/living_vr.dm @@ -289,8 +289,7 @@ if(!confirm == "Okay" || loc != B) return //Actual escaping - forceMove(get_turf(src)) //Just move me up to the turf, let's not cascade through bellies, there's been a problem, let's just leave. - src.cure_blind("belly_[REF(src)]") + B.release_specific_contents(src,TRUE) //we might as well take advantage of that specific belly's handling. Else we stay blinded forever. src.stop_sound_channel(CHANNEL_PREYLOOP) SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "fedprey", /datum/mood_event/fedprey) for(var/mob/living/simple_animal/SA in range(10)) From 0f838e3e2b38b6b515c03f57383f6e49fa3a92dd Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Tue, 16 Apr 2019 23:37:48 -0700 Subject: [PATCH 062/180] Improved the layout of the Loadout UI to be more fitting --- code/modules/client/preferences.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index bb3a4442b3..4f17f5d762 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -816,10 +816,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "
" dat += "
[gear_tab]
" dat += "
" - dat += "Name" - dat += "Cost" - dat += "Restrictions" - dat += "Description" + dat += "Name" + dat += "Cost" + dat += "Restrictions" + dat += "Description" for(var/j in GLOB.loadout_items[gear_tab]) var/datum/gear/gear = GLOB.loadout_items[gear_tab][j] var/donoritem From 97fb78d07e23e0f1c776691152f245bbdb9f0524 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Thu, 18 Apr 2019 18:00:19 -0700 Subject: [PATCH 063/180] Reworked the Vent Clog event to shoot out smoke instead of foam; also made the foam shoot out one at a time over a long period of time to prevent lag. --- code/modules/events/vent_clog.dm | 84 ++++++++++++++++++++++++-------- 1 file changed, 63 insertions(+), 21 deletions(-) diff --git a/code/modules/events/vent_clog.dm b/code/modules/events/vent_clog.dm index 86ede7f255..75833fc086 100644 --- a/code/modules/events/vent_clog.dm +++ b/code/modules/events/vent_clog.dm @@ -13,16 +13,49 @@ var/list/vents = list() var/randomProbability = 1 var/reagentsAmount = 100 - var/list/saferChems = list("water","carbon","flour","cleaner","nutriment","condensedcapsaicin","mushroomhallucinogen","lube","pink_glitter","cryptobiolin", - "plantbgone","blood","charcoal","space_drugs","morphine","holywater","ethanol","hot_coco","sacid","mindbreaker","rotatium","bluespace", - "pax","laughter","concentrated_barbers_aid","colorful_reagent","dizzysolution","tiresolution","sodiumchloride","beer","hair_dye","sugar","white_glitter","growthserum") + var/list/saferChems = list( + "water", + "carbon", + "flour", + "cleaner", + "nutriment", + "condensedcapsaicin", + "mushroomhallucinogen", + "lube", + "pink_glitter", + "cryptobiolin", + "plantbgone", + "blood", + "charcoal", + "space_drugs", + "morphine", + "holywater", + "ethanol", + "hot_coco", + "sacid", + "mindbreaker", + "rotatium", + "bluespace", + "pax", + "laughter", + "concentrated_barbers_aid", + "colorful_reagent", + "dizzysolution", + "tiresolution", + "sodiumchloride", + "beer", + "hair_dye", + "sugar", + "white_glitter", + "growthserum" + ) //needs to be chemid unit checked at some point /datum/round_event/vent_clog/announce() priority_announce("The scrubbers network is experiencing a backpressure surge. Some ejection of contents may occur.", "Atmospherics alert") /datum/round_event/vent_clog/setup() - endWhen = rand(25, 100) + endWhen = rand(120, 180) for(var/obj/machinery/atmospherics/components/unary/vent_scrubber/temp_vent in GLOB.machines) var/turf/T = get_turf(temp_vent) if(T && is_station_level(T.z) && !temp_vent.welded) @@ -30,25 +63,34 @@ if(!vents.len) return kill() -/datum/round_event/vent_clog/start() - for(var/obj/machinery/atmospherics/components/unary/vent in vents) - if(vent && vent.loc) - var/datum/reagents/R = new/datum/reagents(1000) - R.my_atom = vent - if (prob(randomProbability)) - R.add_reagent(get_random_reagent_id(), reagentsAmount) - else - R.add_reagent(pick(saferChems), reagentsAmount) +/datum/round_event/vent_clog/tick() - var/datum/effect_system/foam_spread/foam = new - foam.set_up(200, get_turf(vent), R) - foam.start() + if(!vents.len) + return kill() - var/cockroaches = prob(33) ? 3 : 0 - while(cockroaches) - new /mob/living/simple_animal/cockroach(get_turf(vent)) - cockroaches-- - CHECK_TICK + CHECK_TICK + + var/obj/machinery/atmospherics/components/unary/vent = pick(vents) + vents -= vent + + if(!vent) + return + + var/turf/T = get_turf(vent) + if(!T) + return + + var/datum/reagents/R = new/datum/reagents(1000) + R.my_atom = vent + if (prob(randomProbability)) + R.add_reagent(get_random_reagent_id(), reagentsAmount) + else + R.add_reagent(pick(saferChems), reagentsAmount) + + var/datum/effect_system/smoke_spread/chem/C = new + C.set_up(R,16,T,TRUE) + C.start() + playsound(T, 'sound/effects/smoke.ogg', 50, 1, -3) /datum/round_event_control/vent_clog/threatening name = "Clogged Vents: Threatening" From 8f021d4143e1fa5818153e5266adcc2cdb54ecc9 Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 18 Apr 2019 21:44:43 -0400 Subject: [PATCH 064/180] Minor circuit balance tweaks - limits locomotion circuits to jogging speed and doubles the complexity of mmi/pai connector circuits --- code/modules/integrated_electronics/subtypes/manipulation.dm | 2 +- code/modules/integrated_electronics/subtypes/smart.dm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/integrated_electronics/subtypes/manipulation.dm b/code/modules/integrated_electronics/subtypes/manipulation.dm index f63d58b707..c187f49473 100644 --- a/code/modules/integrated_electronics/subtypes/manipulation.dm +++ b/code/modules/integrated_electronics/subtypes/manipulation.dm @@ -144,7 +144,7 @@ w_class = WEIGHT_CLASS_SMALL complexity = 10 cooldown_per_use = 1 - ext_cooldown = 1 + ext_cooldown = 2 inputs = list("direction" = IC_PINTYPE_DIR) outputs = list("obstacle" = IC_PINTYPE_REF) activators = list("step towards dir" = IC_PINTYPE_PULSE_IN,"on step"=IC_PINTYPE_PULSE_OUT,"blocked"=IC_PINTYPE_PULSE_OUT) diff --git a/code/modules/integrated_electronics/subtypes/smart.dm b/code/modules/integrated_electronics/subtypes/smart.dm index b9bd4627c4..1959fb55c7 100644 --- a/code/modules/integrated_electronics/subtypes/smart.dm +++ b/code/modules/integrated_electronics/subtypes/smart.dm @@ -125,7 +125,7 @@ name = "man-machine interface tank" desc = "This circuit is just a jar filled with an artificial liquid mimicking the cerebrospinal fluid." extended_desc = "This jar can hold 1 man-machine interface and let it take control of some basic functions of the assembly." - complexity = 29 + complexity = 60 inputs = list("laws" = IC_PINTYPE_LIST) outputs = list( "man-machine interface" = IC_PINTYPE_REF, @@ -254,7 +254,7 @@ name = "pAI connector circuit" desc = "This circuit lets you fit in a personal artificial intelligence to give it some form of control over the bot." extended_desc = "You can wire various functions to it." - complexity = 29 + complexity = 60 inputs = list("laws" = IC_PINTYPE_LIST) outputs = list( "personal artificial intelligence" = IC_PINTYPE_REF, From 5d4917bf48ed47100e52650a7b14802439f24a99 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 19 Apr 2019 13:37:56 -0400 Subject: [PATCH 065/180] Add files via upload --- modular_citadel/icons/obj/food/cake.dmi | Bin 0 -> 4607 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modular_citadel/icons/obj/food/cake.dmi diff --git a/modular_citadel/icons/obj/food/cake.dmi b/modular_citadel/icons/obj/food/cake.dmi new file mode 100644 index 0000000000000000000000000000000000000000..840bfe714d0548af38f5bf820132a03bc470906b GIT binary patch literal 4607 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 N20Hhl)mruu{{vfU%%}hW literal 0 HcmV?d00001 From fe5e68710fee5b9d2d5e1d3da0fa44e5332c0d32 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 19 Apr 2019 13:48:10 -0400 Subject: [PATCH 066/180] Update snacks_cake.dm --- .../food_and_drinks/food/snacks_cake.dm | 103 ++++++++++++++++-- 1 file changed, 96 insertions(+), 7 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index 781b021d05..8f724ec638 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -54,7 +54,6 @@ tastes = list("cake" = 5, "sweetness" = 2, "carrot" = 1) foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR - /obj/item/reagent_containers/food/snacks/store/cake/brain name = "brain cake" desc = "A squishy cake-thing." @@ -86,7 +85,6 @@ tastes = list("cake" = 4, "cream cheese" = 3) foodtype = GRAIN | DAIRY - /obj/item/reagent_containers/food/snacks/cakeslice/cheese name = "cheese cake slice" desc = "Slice of pure cheestisfaction." @@ -95,7 +93,6 @@ tastes = list("cake" = 4, "cream cheese" = 3) foodtype = GRAIN | DAIRY - /obj/item/reagent_containers/food/snacks/store/cake/orange name = "orange cake" desc = "A cake with added orange." @@ -132,7 +129,6 @@ tastes = list("cake" = 5, "sweetness" = 2, "unbearable sourness" = 2) foodtype = GRAIN | DAIRY | FRUIT | SUGAR - /obj/item/reagent_containers/food/snacks/store/cake/lemon name = "lemon cake" desc = "A cake with added lemon." @@ -143,7 +139,6 @@ tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2) foodtype = GRAIN | DAIRY | FRUIT | SUGAR - /obj/item/reagent_containers/food/snacks/cakeslice/lemon name = "lemon cake slice" desc = "Just a slice of cake, it is enough for everyone." @@ -163,7 +158,6 @@ tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4) foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR - /obj/item/reagent_containers/food/snacks/cakeslice/chocolate name = "chocolate cake slice" desc = "Just a slice of cake, it is enough for everyone." @@ -172,7 +166,6 @@ tastes = list("cake" = 5, "sweetness" = 1, "chocolate" = 4) foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR - /obj/item/reagent_containers/food/snacks/store/cake/birthday name = "birthday cake" desc = "Happy Birthday little clown..." @@ -252,3 +245,99 @@ tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1) foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR + +/obj/item/reagent_containers/food/snacks/store/cake/bsvc // blackbarry strawberries vanilla cake + name = "blackbarry and strawberry vanilla cake" + desc = "A plain cake, filled with asortment of blackbarries and strawberries!" + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "blackbarry_strawberries_cake_vanilla_cake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bsvc + bonus_reagents = list("nutriment" = 14, "vitamin" = 4) + tastes = list("blackbarry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2, "cake" = 3) + foodtype = GRAIN | DAIRY | FRUIT | SUGAR + +/obj/item/reagent_containers/food/snacks/cakeslice/bsvc + name = "blackbarry and strawberry vanilla cake slice" + desc = "Just a slice of cake filled with asortment of blackbarries and strawberries!" + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "blackbarry_strawberries_cake_vanilla_slice" + filling_color = "#FFD700" + tastes = list("blackbarry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2,"cake" = 3) + foodtype = GRAIN | DAIRY | FRUIT | SUGAR + +/obj/item/reagent_containers/food/snacks/store/cake/bscc // blackbarry strawberries chocolate cake + name = "blackbarry and strawberry chocolate cake" + desc = "A plain cake, filled with asortment of blackbarries and strawberries!" + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "blackbarry_strawberries_cake_coco_cake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bscc + bonus_reagents = list("nutriment" = 14, "vitamin" = 4, "cocoa" = 5) + tastes = list("blackbarry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) + foodtype = GRAIN | DAIRY | FRUIT | SUGAR + +/obj/item/reagent_containers/food/snacks/cakeslice/bscc + name = "blackbarry and strawberry chocolate cake slice" + desc = "Just a slice of cake filled with asortment of blackbarries and strawberries!" + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "blackbarry_strawberries_cake_coco_cake_slice" + filling_color = "#FFD700" + tastes = list("blackbarry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) + foodtype = GRAIN | DAIRY | FRUIT | SUGAR + +obj/item/reagent_containers/food/snacks/store/cake/holy_cake + name = "angel food cake" + desc = "A cake made for angels and chaplins alike! Contains holy water." + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "holy_cake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice + bonus_reagents = list("nutriment" = 1, "vitamin" = 3, "holy_water" = 10) + tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1) + foodtype = GRAIN | DAIRY | SUGAR + +/obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice + name = "angel food cake slice" + desc = "A slice of heavenly cake." + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "holy_cake_slice" + filling_color = "#00FFFF" + tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1) + foodtype = GRAIN | DAIRY | SUGAR + +obj/item/reagent_containers/food/snacks/store/cake/pound_cake + name = "pound cake" + desc = "A condecnecd cake made for filling people up quickly." + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "pound_cake" + slices_num = 7 //Its ment to feed the party + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice + bonus_reagents = list("nutriment" = 60) + tastes = list("cake" = 5, "sweetness" = 1, "batter" = 1) + foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD + +/obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice + name = "pound cake slice" + desc = "A slice of condecnecd cake made for filling people up quickly." + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "pound_cake_slice" + filling_color = "#00FFFF" + tastes = list("cake" = 5, "sweetness" = 5, "batter" = 1) + foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD + +obj/item/reagent_containers/food/snacks/store/cake/hardware_cake + name = "hardware cake" + desc = "A cake that is made with eletronical boards and leaks acid..." + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "hardware_cake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice + bonus_reagents = list("sacid" = 15, "oil" = 15) + tastes = list("acid" = 1, "metal" = 1, "regret" = 10) + foodtype = GRAIN | GROSS + +/obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice + name = "hardware cake slice" + desc = "A slice of eletronical boards and some acid." + icon = 'modular_citadel/icons/obj/food/cake.dmi' + icon_state = "hardware_cake_slice" + filling_color = "#00FFFF" + tastes = list("acid" = 1, "metal" = 1, "regret" = 10) + foodtype = GRAIN | GROSS From e8e7467a50d0a8ad012bd7570920eebe064817e5 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 19 Apr 2019 13:50:02 -0400 Subject: [PATCH 067/180] Update recipes_cake.dm --- .../recipes/tablecraft/recipes_cake.dm | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index 01c13abf47..5cf60dfb67 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -102,6 +102,52 @@ result = /obj/item/reagent_containers/food/snacks/store/cake/pumpkinspice subcategory = CAT_CAKE +/datum/crafting_recipe/food/holycake + name = "Angel food cake" + reqs = list( + /datum/reagent/water/holywater = 15, + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/holy_cake + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/poundcake + name = "Pound cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 4 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/pound_cake + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/hardwarecake + name = "Hardware cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/circuitboard = 2, + /datum/reagent/toxin/acid = 5 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/hardware_cake + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/bscccake + name = "blackbarry and strawberry chocolate cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/chocolatebar = 2, + /obj/item/reagent_containers/food/snacks/grown/berries = 5 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/bscc + subcategory = CAT_CAKE + +/datum/crafting_recipe/food/bscvcake + name = "blackbarry and strawberry vanilla cake" + reqs = list( + /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, + /obj/item/reagent_containers/food/snacks/grown/berries = 5 + ) + result = /obj/item/reagent_containers/food/snacks/store/cake/bsvc + subcategory = CAT_CAKE + /datum/crafting_recipe/food/cak name = "Living cat/cake hybrid" reqs = list( @@ -114,4 +160,4 @@ /datum/reagent/teslium = 1 //To shock the whole thing into life ) result = /mob/living/simple_animal/pet/cat/cak - subcategory = CAT_CAKE //Cat! Haha, get it? CAT? GET IT??? + subcategory = CAT_CAKE //Cat! Haha, get it? CAT? GET IT? We get it - Love Catpeople From bb51b9e354a9288706283d7124ea4a5d5bb90411 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 19 Apr 2019 14:04:03 -0400 Subject: [PATCH 068/180] grammar --- .../food_and_drinks/food/snacks_cake.dm | 33 +++++++++---------- 1 file changed, 16 insertions(+), 17 deletions(-) diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index 8f724ec638..1eeea79410 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -243,12 +243,11 @@ icon_state = "pumpkinspicecakeslice" filling_color = "#FFD700" tastes = list("cake" = 5, "sweetness" = 1, "pumpkin" = 1) - foodtype = GRAIN | DAIRY | VEGETABLES | SUGAR -/obj/item/reagent_containers/food/snacks/store/cake/bsvc // blackbarry strawberries vanilla cake - name = "blackbarry and strawberry vanilla cake" - desc = "A plain cake, filled with asortment of blackbarries and strawberries!" +/obj/item/reagent_containers/food/snacks/store/cake/bsvc // blackberry strawberries vanilla cake + name = "blackberry and strawberry vanilla cake" + desc = "A plain cake, filled with assortment of blackberries and strawberries!" icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "blackbarry_strawberries_cake_vanilla_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bsvc @@ -257,8 +256,8 @@ foodtype = GRAIN | DAIRY | FRUIT | SUGAR /obj/item/reagent_containers/food/snacks/cakeslice/bsvc - name = "blackbarry and strawberry vanilla cake slice" - desc = "Just a slice of cake filled with asortment of blackbarries and strawberries!" + name = "blackberry and strawberry vanilla cake slice" + desc = "Just a slice of cake filled with assortment of blackberries and strawberries!" icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "blackbarry_strawberries_cake_vanilla_slice" filling_color = "#FFD700" @@ -266,27 +265,27 @@ foodtype = GRAIN | DAIRY | FRUIT | SUGAR /obj/item/reagent_containers/food/snacks/store/cake/bscc // blackbarry strawberries chocolate cake - name = "blackbarry and strawberry chocolate cake" - desc = "A plain cake, filled with asortment of blackbarries and strawberries!" + name = "blackberry and strawberry chocolate cake" + desc = "A plain cake, filled with assortment of blackberries and strawberries!" icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "blackbarry_strawberries_cake_coco_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bscc bonus_reagents = list("nutriment" = 14, "vitamin" = 4, "cocoa" = 5) - tastes = list("blackbarry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) + tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) foodtype = GRAIN | DAIRY | FRUIT | SUGAR /obj/item/reagent_containers/food/snacks/cakeslice/bscc - name = "blackbarry and strawberry chocolate cake slice" - desc = "Just a slice of cake filled with asortment of blackbarries and strawberries!" + name = "blackberry and strawberry chocolate cake slice" + desc = "Just a slice of cake filled with assortment of blackberries and strawberries!" icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "blackbarry_strawberries_cake_coco_cake_slice" filling_color = "#FFD700" - tastes = list("blackbarry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) + tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) foodtype = GRAIN | DAIRY | FRUIT | SUGAR obj/item/reagent_containers/food/snacks/store/cake/holy_cake name = "angel food cake" - desc = "A cake made for angels and chaplins alike! Contains holy water." + desc = "A cake made for angels and chaplains alike! Contains holy water." icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "holy_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice @@ -305,7 +304,7 @@ obj/item/reagent_containers/food/snacks/store/cake/holy_cake obj/item/reagent_containers/food/snacks/store/cake/pound_cake name = "pound cake" - desc = "A condecnecd cake made for filling people up quickly." + desc = "A condensed cake made for filling people up quickly." icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "pound_cake" slices_num = 7 //Its ment to feed the party @@ -316,7 +315,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice name = "pound cake slice" - desc = "A slice of condecnecd cake made for filling people up quickly." + desc = "A slice of condensed cake made for filling people up quickly." icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "pound_cake_slice" filling_color = "#00FFFF" @@ -325,7 +324,7 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake obj/item/reagent_containers/food/snacks/store/cake/hardware_cake name = "hardware cake" - desc = "A cake that is made with eletronical boards and leaks acid..." + desc = "A cake that is made with electronic boards and leaks acid..." icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "hardware_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice @@ -335,7 +334,7 @@ obj/item/reagent_containers/food/snacks/store/cake/hardware_cake /obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice name = "hardware cake slice" - desc = "A slice of eletronical boards and some acid." + desc = "A slice of electronic boards and some acid." icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "hardware_cake_slice" filling_color = "#00FFFF" From 1a680b142ff7374865ec897516b8e0f015d07c4c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 19 Apr 2019 14:06:02 -0400 Subject: [PATCH 069/180] grammar --- .../food_and_drinks/recipes/tablecraft/recipes_cake.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm index 5cf60dfb67..464b8ce26f 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_cake.dm @@ -130,7 +130,7 @@ subcategory = CAT_CAKE /datum/crafting_recipe/food/bscccake - name = "blackbarry and strawberry chocolate cake" + name = "blackberry and strawberry chocolate cake" reqs = list( /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, /obj/item/reagent_containers/food/snacks/chocolatebar = 2, @@ -140,7 +140,7 @@ subcategory = CAT_CAKE /datum/crafting_recipe/food/bscvcake - name = "blackbarry and strawberry vanilla cake" + name = "blackberry and strawberry vanilla cake" reqs = list( /obj/item/reagent_containers/food/snacks/store/cake/plain = 1, /obj/item/reagent_containers/food/snacks/grown/berries = 5 From cc7b5b524b2b1c0c65971ddbea2e3bface758a48 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 19 Apr 2019 16:18:49 -0500 Subject: [PATCH 070/180] Automatic changelog generation for PR #8252 [ci skip] --- html/changelogs/AutoChangeLog-pr-8252.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8252.yml diff --git a/html/changelogs/AutoChangeLog-pr-8252.yml b/html/changelogs/AutoChangeLog-pr-8252.yml new file mode 100644 index 0000000000..c86d0b5aa0 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8252.yml @@ -0,0 +1,6 @@ +author: "BurgerBB" +delete-after: True +changes: + - rscadd: "Adds the bonermeter; a device that measures arousal based statistics." + - refactor: "Added a new input to the electrostimulator that controls the strength of the shock. It accepts negative inputs which reduce arousal. Added a new output to the electrostimulator that displays the amount of arousal gained." + - balance: "Rebalanced the electro-stimulator to be less spammy by giving it a 2.5 second enforced cooldown per circuit contraption. Increased the complexity of electro stimulator from 10 to 15." From 5f2469df5effe0ee26a4868685bf16b003d7a5c5 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 19 Apr 2019 16:19:16 -0500 Subject: [PATCH 071/180] Automatic changelog generation for PR #8255 [ci skip] --- html/changelogs/AutoChangeLog-pr-8255.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8255.yml diff --git a/html/changelogs/AutoChangeLog-pr-8255.yml b/html/changelogs/AutoChangeLog-pr-8255.yml new file mode 100644 index 0000000000..1b2e81f5bd --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8255.yml @@ -0,0 +1,4 @@ +author: "BurgerB" +delete-after: True +changes: + - tweak: "Tweaked the UI of the loadout to be less cluttered due to an issue with formatting." From e61b4f83d89677019448dd84482ebc79c8f3fa4c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 20 Apr 2019 00:37:45 -0400 Subject: [PATCH 072/180] Update large_objects.dm --- code/modules/cargo/exports/large_objects.dm | 85 ++++++++++++++++++++- 1 file changed, 83 insertions(+), 2 deletions(-) diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 9368a41731..339ce8998f 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -55,7 +55,6 @@ contents_cost = 700 export_types = list(/obj/structure/reagent_dispensers/beerkeg) - /datum/export/large/pipedispenser cost = 500 unit_name = "pipe dispenser" @@ -122,7 +121,6 @@ unit_name = "packaged antimatter reactor section" export_types = list(/obj/item/am_shielding_container) - /datum/export/large/iv cost = 50 unit_name = "iv drip" @@ -133,3 +131,86 @@ unit_name = "security barrier" export_types = list(/obj/item/grenade/barrier, /obj/structure/barricade/security) +/datum/export/large/odysseus + cost = 5500 + unit_name = "working odysseus" + export_types = list(/obj/mecha/medical/odysseus) + include_subtypes = FALSE + +/datum/export/large/ripley + cost = 6500 + unit_name = "working ripley" + export_types = list(/obj/mecha/working/ripley) + include_subtypes = FALSE + +/datum/export/large/firefighter + cost = 9000 + unit_name = "working firefighter" + export_types = list(/obj/mecha/working/ripley/firefighter) + include_subtypes = FALSE + +/datum/export/large/gygax + cost = 19000 + unit_name = "working gygax" + export_types = list(/obj/mecha/combat/gygax) + include_subtypes = FALSE + +/datum/export/large/durand + cost = 10000 + unit_name = "working durand" + export_types = list(/obj/mecha/combat/durand) + include_subtypes = FALSE + +/datum/export/large/phazon + cost = 25000 //Little over half do to needing a core + unit_name = "working phazon" + export_types = list(/obj/mecha/combat/phazon) + include_subtypes = FALSE + +/datum/export/large/marauder + cost = 15000 //Still a Combat class mech - CC tech as well! 150% "normal" boundy price. + unit_name = "working marauder" + export_types = list(/obj/mecha/combat/marauder) + include_subtypes = FALSE + +/datum/export/large/deathripley + cost = 8500 //Still a "Combat class" mech - Illegal tech as well! 165% "normal" boundy price. + unit_name = "working illegally modified" + export_types = list(/obj/mecha/working/ripley/deathripley) + include_subtypes = FALSE + +/datum/export/large/gygaxdark + cost = 28500 //Still a Combat class mech - Illegal tech as well! 150% "normal" boundy price. + unit_name = "working illegally modified gygax" + export_types = list(/obj/mecha/combat/gygax/dark) + include_subtypes = FALSE + +/datum/export/large/oldripley + cost = 6250 //old mech - Scrap metal ! 50% "normal" boundy price. + unit_name = "working miner ripley" + export_types = list(/obj/mecha/working/ripley/mining) + include_subtypes = FALSE + +/datum/export/large/honk + cost = 12000 //Still a "Combat class" mech - Comats bordem honk! + unit_name = "working honker" + export_types = list(/obj/mecha/combat/honker) + include_subtypes = FALSE + +/datum/export/large/reticence + cost = 120000 //Still a "Combat class" mech - Has cloking and lethal weaponds. Admin spawn for admin credits! + unit_name = "working reticence" + export_types = list(/obj/mecha/combat/reticence) + include_subtypes = FALSE + +/datum/export/large/seraph + cost = 25500 //Still a Combat class mech - CC tech as well! 150% "normal" boundy price. + unit_name = "working seraph" + export_types = list(/obj/mecha/combat/marauder/seraph) + include_subtypes = FALSE + +/datum/export/large/mauler + cost = 120000 //Still a Combat class mech - CC lethal weaponds. Admin spawn for admin credits! + unit_name = "working legally modified marauder" + export_types = list(/obj/mecha/combat/marauder/mauler) + include_subtypes = FALSE From 769102ed9c8837a62829cec1032f8dffeda0732a Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 20 Apr 2019 14:04:40 -0400 Subject: [PATCH 073/180] Update machine_vending.dm --- code/modules/mining/machine_vending.dm | 28 ++++---------------------- 1 file changed, 4 insertions(+), 24 deletions(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 79270ebf63..18669e4788 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -22,6 +22,7 @@ new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), new /datum/data/mining_equipment("Fulton Beacon", /obj/item/fulton_core, 400), new /datum/data/mining_equipment("Shelter Capsule", /obj/item/survivalcapsule, 400), + new /datum/data/mining_equipment("Survival Knife", /obj/item/kitchen/knife/combat/survival, 450), new /datum/data/mining_equipment("GAR Meson Scanners", /obj/item/clothing/glasses/meson/gar, 500), new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500), new /datum/data/mining_equipment("Larger Ore Bag", /obj/item/storage/bag/ore/large, 500), @@ -33,6 +34,7 @@ new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750), new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/required/kinetic_crusher, 750), new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), + new /datum/data/mining_equipment("GPS implanter", /obj/item/implanter/tracking/gps, 750), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 800), new /datum/data/mining_equipment("Burn First-Aid Kit", /obj/item/storage/firstaid/fire, 800), new /datum/data/mining_equipment("First-Aid Kit", /obj/item/storage/firstaid/regular, 800), @@ -45,6 +47,7 @@ new /datum/data/mining_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffelbag/mining_conscript, 1000), new /datum/data/mining_equipment("1000 Point Transfer Card", /obj/item/card/mining_point_card/mp1000, 1000), new /datum/data/mining_equipment("1500 Point Transfer Card", /obj/item/card/mining_point_card/mp1500, 1500), + new /datum/data/mining_equipment("Spare Suit Voucher", /obj/item/suit_voucher, 1500), new /datum/data/mining_equipment("2000 Point Transfer Card", /obj/item/card/mining_point_card/mp2000, 2000), new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/tank/jetpack/suit, 2000), new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), @@ -67,9 +70,7 @@ new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000), - new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000), - new /datum/data/mining_equipment("Miner Full Replacement", /obj/item/storage/backpack/duffelbag/mining_cloned, 12000), - new /datum/data/mining_equipment("Spare Suit Voucher", /obj/item/suit_voucher, 15000) + new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000) ) @@ -326,27 +327,6 @@ //CITADEL ADDITIONS BELOW -/obj/item/storage/backpack/duffelbag/mining_cloned - name = "mining replacement kit" - desc = "A large bag that has advance tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even as a new Id!" - -/obj/item/storage/backpack/duffelbag/mining_cloned/PopulateContents() - new /obj/item/pickaxe/mini(src) - new /obj/item/clothing/under/rank/miner/lavaland(src) - new /obj/item/clothing/shoes/workboots/mining(src) - new /obj/item/clothing/gloves/color/black(src) - new /obj/item/implanter/tracking/gps(src) - new /obj/item/kitchen/knife/combat/survival(src) - new /obj/item/storage/firstaid/regular(src) - new /obj/item/reagent_containers/hypospray/medipen/survival(src) - new /obj/item/t_scanner/adv_mining_scanner(src) - new /obj/item/clothing/suit/hooded/explorer(src) - new /obj/item/encryptionkey/headset_cargo(src) - new /obj/item/clothing/mask/gas/explorer(src) - new /obj/item/card/id/mining(src) - new /obj/item/storage/bag/ore(src) - new /obj/item/clothing/glasses/meson/prescription(src) - /obj/machinery/mineral/equipment_vendor/proc/RedeemSVoucher(obj/item/suit_voucher/voucher, mob/redeemer) var/items = list("Exo-suit", "SEVA suit") From 6dc8faf533c5d792f3e9b93b48fcab8479f257fc Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 20 Apr 2019 14:08:25 -0400 Subject: [PATCH 074/180] Update machine_vending.dm --- code/modules/mining/machine_vending.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 18669e4788..33be3c158d 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -27,7 +27,6 @@ new /datum/data/mining_equipment("Explorer's Webbing", /obj/item/storage/belt/mining, 500), new /datum/data/mining_equipment("Larger Ore Bag", /obj/item/storage/bag/ore/large, 500), new /datum/data/mining_equipment("500 Point Transfer Card", /obj/item/card/mining_point_card/mp500, 500), - new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 600), new /datum/data/mining_equipment("Tracking Implant Kit", /obj/item/storage/box/minertracker, 600), new /datum/data/mining_equipment("Survival Medipen", /obj/item/reagent_containers/hypospray/medipen/survival, 750), new /datum/data/mining_equipment("Stabilizing Serum", /obj/item/hivelordstabilizer, 750), From 7a3f8704a2bc0939ab0e348875a3038973f70627 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 20 Apr 2019 14:16:30 -0400 Subject: [PATCH 075/180] Update goliath.dm --- .../living/simple_animal/hostile/mining_mobs/goliath.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm index 23f08ab234..15f2a0a834 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goliath.dm @@ -187,12 +187,12 @@ var/mob/living/carbon/C = L var/obj/item/clothing/S = C.get_item_by_slot(SLOT_WEAR_SUIT) if(S && S.resistance_flags & GOLIATH_RESISTANCE) - L.Stun(75) + L.Stun(25) else if(S && S.resistance_flags & GOLIATH_WEAKNESS) - L.Stun(125) + L.Stun(115) else - L.Stun(100) - L.adjustBruteLoss(rand(10,15)) + L.Stun(75) + L.adjustBruteLoss(rand(15,20)) // Less stun more harm latched = TRUE if(!latched) retract() From 8e2353c0582648195f71d453677ea1f5583f8fa2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 20 Apr 2019 18:29:37 -0500 Subject: [PATCH 076/180] Automatic changelog generation for PR #8259 [ci skip] --- html/changelogs/AutoChangeLog-pr-8259.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8259.yml diff --git a/html/changelogs/AutoChangeLog-pr-8259.yml b/html/changelogs/AutoChangeLog-pr-8259.yml new file mode 100644 index 0000000000..54a1dd6a4b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8259.yml @@ -0,0 +1,5 @@ +author: "deathride58" +delete-after: True +changes: + - balance: "Locomotion circuits are now restricted to jogging speed" + - balance: "MMI circuits and pAI circuits both now have 60 complexity, up from their original 29." From cd3edb22d06f3b8b392eb56ffe0aa2b465b24ff8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 20 Apr 2019 18:36:03 -0500 Subject: [PATCH 077/180] Automatic changelog generation for PR #8258 [ci skip] --- html/changelogs/AutoChangeLog-pr-8258.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8258.yml diff --git a/html/changelogs/AutoChangeLog-pr-8258.yml b/html/changelogs/AutoChangeLog-pr-8258.yml new file mode 100644 index 0000000000..2d1f75603f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8258.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - refactor: "Reworked the Vent Clog event to spray smoke instead of foam, also made it shoot smoke over time instead through each vent instead of all at once." From 65d219ac40ed495c5a2818bed01698c9db3e93f2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 20 Apr 2019 18:38:22 -0500 Subject: [PATCH 078/180] Automatic changelog generation for PR #8182 [ci skip] --- html/changelogs/AutoChangeLog-pr-8182.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8182.yml diff --git a/html/changelogs/AutoChangeLog-pr-8182.yml b/html/changelogs/AutoChangeLog-pr-8182.yml new file mode 100644 index 0000000000..8247409f1b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8182.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - code_imp: "get_hearers_in_view() now actually caches the results of view() instead of calling view() twice" From ae7ce39f622e1a1534e82de90212c3eb3a49b909 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sat, 20 Apr 2019 23:28:43 -0500 Subject: [PATCH 079/180] aaaAAAAaaaa --- code/modules/mob/living/simple_animal/hostile/hostile.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index ec858fdff5..77b434c74a 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -352,6 +352,8 @@ vore_attack(src,L,src) else return L.attack_animal(src) + else + return L.attack_animal(src) //literally every single fucking one of these need this I guess. else return target.attack_animal(src) From b524c6741d2f67bb42497296a8bc4ce41d7705fe Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 21 Apr 2019 01:56:45 -0500 Subject: [PATCH 080/180] double checking my work --- .../mob/living/simple_animal/hostile/hostile.dm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 77b434c74a..2dec479809 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -345,15 +345,18 @@ /mob/living/simple_animal/hostile/proc/AttackingTarget() in_melee = TRUE - if(isliving(target)) + if(vore_active) + if(isliving(target)) var/mob/living/L = target - if(L.Adjacent(src) && vore_active && L.devourable) // aggressive check to ensure vore attacks can be made - if(prob(voracious_chance)) - vore_attack(src,L,src) + if(L.Adjacent(src) && L.devourable) // aggressive check to ensure vore attacks can be made + if(prob(voracious_chance)) + vore_attack(src,L,src) + else + return L.attack_animal(src) else - return L.attack_animal(src) + return L.attack_animal(src) //literally every single fucking one of these need this I guess. else - return L.attack_animal(src) //literally every single fucking one of these need this I guess. + return target.attack_animal(src) else return target.attack_animal(src) From fe1692eef38a5b165722d8076a35a8bdde0c3027 Mon Sep 17 00:00:00 2001 From: Poojawa Date: Sun, 21 Apr 2019 01:57:12 -0500 Subject: [PATCH 081/180] t a b --- code/modules/mob/living/simple_animal/hostile/hostile.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 2dec479809..a70ca2a8e6 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -347,7 +347,7 @@ in_melee = TRUE if(vore_active) if(isliving(target)) - var/mob/living/L = target + var/mob/living/L = target if(L.Adjacent(src) && L.devourable) // aggressive check to ensure vore attacks can be made if(prob(voracious_chance)) vore_attack(src,L,src) From 3968213bde6ba9b4079774b18f4c97b54d57fc02 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Mon, 22 Apr 2019 12:04:21 -0700 Subject: [PATCH 082/180] Increased the spawn area size of the City of Cogs --- _maps/map_files/generic/City_of_Cogs.dmm | 1375 +++++++++++----------- 1 file changed, 710 insertions(+), 665 deletions(-) diff --git a/_maps/map_files/generic/City_of_Cogs.dmm b/_maps/map_files/generic/City_of_Cogs.dmm index e67a829221..889abe66c3 100644 --- a/_maps/map_files/generic/City_of_Cogs.dmm +++ b/_maps/map_files/generic/City_of_Cogs.dmm @@ -212,11 +212,8 @@ /turf/open/indestructible/reebe_void, /area/reebe) "aR" = ( -/obj/effect/clockwork/servant_blocker{ - dir = 1 - }, -/obj/structure/lattice/clockwork, -/turf/open/indestructible/reebe_void, +/obj/effect/landmark/city_of_cogs, +/turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "aS" = ( /obj/effect/clockwork/servant_blocker{ @@ -242,17 +239,20 @@ /turf/open/indestructible/reebe_void/spawning/lattices, /area/reebe) "aX" = ( -/obj/effect/landmark/city_of_cogs, +/obj/structure/table/reinforced/brass, +/obj/item/clockwork/component/belligerent_eye, /turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "aY" = ( -/obj/structure/table/reinforced/brass, -/obj/item/clockwork/component/belligerent_eye/blind_eye, -/turf/open/indestructible/clock_spawn_room, -/area/reebe/city_of_cogs) +/obj/effect/clockwork/servant_blocker{ + dir = 1 + }, +/obj/structure/lattice/clockwork, +/turf/open/indestructible/reebe_void, +/area/reebe) "aZ" = ( /obj/structure/table/reinforced/brass, -/obj/item/clockwork/component/belligerent_eye, +/obj/item/clockwork/component/belligerent_eye/blind_eye, /turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "ba" = ( @@ -262,32 +262,32 @@ /area/reebe/city_of_cogs) "bb" = ( /obj/structure/table/reinforced/brass, -/obj/item/clockwork/component/replicant_alloy, +/obj/item/clockwork/component/geis_capacitor, /turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "bc" = ( /obj/structure/table/reinforced/brass, -/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment, +/obj/item/clockwork/component/geis_capacitor/antennae, /turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "bd" = ( /obj/structure/table/reinforced/brass, -/obj/item/clockwork/component/replicant_alloy/replication_plate, +/obj/item/clockwork/component/geis_capacitor/fallen_armor, /turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "be" = ( /obj/structure/table/reinforced/brass, -/obj/item/clockwork/component/geis_capacitor/antennae, +/obj/item/clockwork/component/hierophant_ansible, /turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "bf" = ( /obj/structure/table/reinforced/brass, -/obj/item/clockwork/component/geis_capacitor/fallen_armor, +/obj/item/clockwork/component/hierophant_ansible/obelisk, /turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "bg" = ( /obj/structure/table/reinforced/brass, -/obj/item/clockwork/component/geis_capacitor, +/obj/item/clockwork/component/replicant_alloy, /turf/open/indestructible/clock_spawn_room, /area/reebe/city_of_cogs) "bh" = ( @@ -304,6 +304,51 @@ /obj/structure/destructible/clockwork/eminence_spire, /turf/open/floor/clockwork/reebe, /area/reebe/city_of_cogs) +"bk" = ( +/obj/structure/table/reinforced/brass, +/obj/item/clockwork/component/replicant_alloy/replication_plate, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) +"bl" = ( +/obj/structure/table/reinforced/brass, +/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) +"bm" = ( +/obj/structure/table/reinforced/brass, +/obj/item/clockwork/component/vanguard_cogwheel, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) +"bn" = ( +/obj/structure/table/reinforced/brass, +/obj/item/clockwork/component/vanguard_cogwheel/onyx_prism, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) +"bo" = ( +/obj/structure/window/reinforced/clockwork/fulltile, +/obj/structure/grille/ratvar, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) +"bp" = ( +/obj/structure/window/reinforced/clockwork/fulltile, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) +"bu" = ( +/obj/structure/table/reinforced/brass, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) +"bw" = ( +/obj/structure/chair/brass{ + dir = 8 + }, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) +"bx" = ( +/obj/structure/chair/brass{ + dir = 4 + }, +/turf/open/indestructible/clock_spawn_room, +/area/reebe/city_of_cogs) (1,1,1) = {" aa @@ -26909,7 +26954,7 @@ ab ab ab ab -aa +ab aa aa aa @@ -27166,8 +27211,8 @@ ab ab ab ab -aa -aa +ab +ab aa aa aa @@ -27423,9 +27468,9 @@ ab ab ab ab -aa -aa -aa +ab +ab +ab aa aa aa @@ -27680,10 +27725,10 @@ ab ab ab ab -aa -aa -aa -aa +ab +ab +ab +ab aa aa aa @@ -27923,25 +27968,25 @@ ab ab ab ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae ab ab ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa aa aa aa @@ -28166,40 +28211,40 @@ ab ab ab ab -ab -ab aF +aF +aY +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +bo +bo +bo +bo +bo +bo +bo +ah +ah +ae +ae +ae ab ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -28424,39 +28469,39 @@ aF aF aF aF -aF -aF -ae -ae -ae +aG +aS +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +aT +aT +aT +aT +aT +aT +aT +aT +aT +ah +ah +ah ae ae ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -28682,38 +28727,38 @@ aG aG aG aG -aR -ah -ah -ah -ah -ah -ae -ae -ae -ae -ae -ae -ae +aS +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aU +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +aX +bo +ag ae ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -28940,37 +28985,37 @@ aj aj aj aS +bw +bw +bw +bw +bw +bw +bw +bw +bw +bw +bw +bw +aU aT aT +aR +aT +aR +aT +aR aT aT -ah -ah -ai -ai -ai -ai -ai -ah -ah +bo +aZ +bo +ag ae ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -29201,7 +29246,6 @@ aT aT aT aT -ah aT aT aT @@ -29209,15 +29253,22 @@ aT aT aT aT -ah +aT +bo +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +ba +bo ag ae -ab -ab -ab -ab -ab -ae bi ab ab @@ -29339,12 +29390,6 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa "} (114,1,1) = {" aa @@ -29458,7 +29503,6 @@ aT aT aT aT -aU aT aT aT @@ -29466,15 +29510,22 @@ aT aT aT aT -ah -ah -ah -ab -ab -ab -ab -ab -ab +aT +aV +aT +aT +aR +aT +aR +aT +aR +aT +aT +bo +bb +bo +ag +ae ab ae ac @@ -29596,12 +29647,6 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa "} (115,1,1) = {" aa @@ -29715,33 +29760,33 @@ aT aT aT aT -aU aT aT -aX -aX -aX aT aT -ai -aY -ai +aT +aT +aT +aT +bo +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +bc +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -29972,33 +30017,33 @@ aT aT aT aT -aV aT aT -aX -aX -aX aT aT -ai -aZ -ai +aT +aT +aT +aT +aU +aT +aT +aR +aT +aR +aT +aR +aT +aT +bo +bd +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -30229,33 +30274,33 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +aT +aT aU aT aT -aX -aX -aX aT aT -ai -ba -ai +aT +aT +aT +aT +aT +bo +be +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -30486,7 +30531,17 @@ aT aT aT aT -aU +aT +aT +aT +aT +aT +aT +bp +bp +ah +aT +aT aT aT aT @@ -30497,22 +30552,12 @@ aT ah ah ah +ae +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -30743,33 +30788,33 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +bp +bg ah -aT -aT -aT -aT -aT -aT -aT ah -ag +bo +bo +bo +bo +bo +bo +bo +ah +ah +ae +ae ae ab ab ab ab ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -31000,33 +31045,33 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +bp +bp +ah +aT +aT +aT +aT +aT +aT +aT +aT +aT ah ah -aU -aU -aV -aU -aU ah -ah -ag +ae ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -31257,7 +31302,6 @@ aT aT aT aT -ah aT aT aT @@ -31265,25 +31309,26 @@ aT aT aT aT -ah +aT +aU +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +bf +bo ag ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -31514,33 +31559,33 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +aT +aT aU aT aT +aR +aT +aR +aT +aR aT aT -aT -aT -aT -ah -ah -ah +bo +bg +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -31771,33 +31816,33 @@ aT aT aT aT -aU aT aT -aX -aX -aX +aT +aT +aT +aT aT aT ai -bb -ai +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +bk +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -32028,33 +32073,33 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +aT +aT aV aT aT -aX -aX -aX +aR +aT +aR +aT +aR aT aT -ai -bc -ai +bo +bl +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -32285,33 +32330,33 @@ aT aT aT aT -aU aT aT -aX -aX -aX +aT +aT +aT +aT aT aT ai -bd -ai +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +bm +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -32542,33 +32587,33 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +aT +aT aU aT aT +aR +aT +aR +aT +aR aT aT -aT -aT -aT -ah -ah -ah +bo +bn +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -32799,7 +32844,6 @@ aT aT aT aT -ah aT aT aT @@ -32807,25 +32851,26 @@ aT aT aT aT -ah +aT +aU +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +aX +bo ag ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -33056,33 +33101,33 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +bp +bp +ah +aT +aT +aT +aT +aT +aT +aT +aT +aT ah ah -aU -aU -aV -aU -aU ah -ah -ag +ae ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -33313,16 +33358,25 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +bp +bk +ah +ah +bo +bo +bo +bo +bo +bo +bo ah -aT -aT -aT -aT -aT -aT -aT ah -ag ae ab ab @@ -33331,15 +33385,6 @@ ab ab ab ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -33570,7 +33615,17 @@ aT aT aT aT -aU +aT +aT +aT +aT +aT +aT +bp +bp +ah +aT +aT aT aT aT @@ -33581,22 +33636,12 @@ aT ah ah ah +ae +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -33827,33 +33872,33 @@ aT aT aT aT +aT +aT +aT +aT +aT +aT +aT +aT aU aT aT -aX -aX -aX aT aT -ai -be -ai +aT +aT +aT +aT +aT +bo +aZ +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -34084,33 +34129,33 @@ aT aT aT aT -aV aT aT -aX -aX -aX aT aT -ai -bf -ai +aT +aT +aT +aT +aU +aT +aT +aR +aT +aR +aT +aR +aT +aT +bo +ba +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -34341,33 +34386,33 @@ aT aT aT aT -aU aT aT -aX -aX -aX aT aT -ai -bg -ai +aT +aT +aT +aT +bo +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +bb +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -34598,7 +34643,6 @@ aT aT aT aT -aU aT aT aT @@ -34606,25 +34650,26 @@ aT aT aT aT -ah -ah -ah +aT +aV +aT +aT +aR +aT +aR +aT +aR +aT +aT +bo +bc +bo +ag +ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -34855,7 +34900,6 @@ aT aT aT aT -ah aT aT aT @@ -34863,25 +34907,26 @@ aT aT aT aT -ah +aT +bo +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +bd +bo ag ae ab ab ab ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -35108,37 +35153,37 @@ aj aj aj aS +bx +bx +bx +bx +bx +bx +bx +bx +bx +bx +bx +bx +aU aT aT +aR +aT +aR +aT +aR aT aT -ah -ah -ai -ai -ai -ai -ai -ah -ah +bo +be +bo +ag ae ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -35364,38 +35409,38 @@ aG aG aG aG -aR -ah -ah -ah -ah -ah -ae -ae -ae -ae -ae -ae -ae +aS +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +bu +aU +aT +aT +aT +aT +aT +aT +aT +aT +aT +bo +bf +bo +ag ae ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -35620,39 +35665,39 @@ aF aF aF aF -aF -aF -ae -ae -ae +aG +aS +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +ah +aT +aT +aT +aT +aT +aT +aT +aT +aT +ah +ah +ah ae ae ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -35878,7 +35923,31 @@ ab ab ab ab -aF +aY +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ah +ah +bo +bo +bo +bo +bo +bo +bo +ah +ah +ae ab ab ab @@ -35886,30 +35955,6 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -aa aa aa aa @@ -36147,12 +36192,18 @@ ab ab ab ab -ab -ab -ab -ab -ab -ab +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae +ae ae ab ab @@ -36160,12 +36211,6 @@ ab ab ab ab -ab -aa -aa -aa -aa -aa aa aa aa @@ -36410,18 +36455,18 @@ ab ab ab ab -ac -ac ab ab ab ab ab ab -aa -aa -aa -aa +ab +ab +ab +ab +ab +ab aa aa aa @@ -36667,17 +36712,17 @@ ab ab ab ab -ac -bh -ae ab ab ab ab ab -aa -aa -aa +ab +ab +ab +ab +ab +ab aa aa aa @@ -36932,8 +36977,8 @@ ab ab ab ab -aa -aa +ab +ab aa aa aa @@ -37189,7 +37234,7 @@ ab ab ab ab -aa +ab aa aa aa @@ -37438,9 +37483,9 @@ ab ab ab ab -ab -ab -ab +ac +bh +ae ab ab ab From c0f336f09f138682f16e97f074b14981a084ef2e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 22 Apr 2019 23:32:17 -0500 Subject: [PATCH 083/180] Automatic changelog generation for PR #8260 [ci skip] --- html/changelogs/AutoChangeLog-pr-8260.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8260.yml diff --git a/html/changelogs/AutoChangeLog-pr-8260.yml b/html/changelogs/AutoChangeLog-pr-8260.yml new file mode 100644 index 0000000000..e6ef697917 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8260.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "cakes!" + - imageadd: "Made some sprites! -Love them really came out well" From 2f3b84378fb9bebe952d6e08e183c8e60a3895c8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 22 Apr 2019 23:38:35 -0500 Subject: [PATCH 084/180] Automatic changelog generation for PR #8265 [ci skip] --- html/changelogs/AutoChangeLog-pr-8265.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8265.yml diff --git a/html/changelogs/AutoChangeLog-pr-8265.yml b/html/changelogs/AutoChangeLog-pr-8265.yml new file mode 100644 index 0000000000..e581a93315 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8265.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "harm from hentie" + - balance: "rebalanced goliaths stun to be less auto death" From 603c4b9d27c16fd8f33bde0ae69c0bcb21ef164e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Mon, 22 Apr 2019 23:41:34 -0500 Subject: [PATCH 085/180] Automatic changelog generation for PR #8247 [ci skip] --- html/changelogs/AutoChangeLog-pr-8247.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8247.yml diff --git a/html/changelogs/AutoChangeLog-pr-8247.yml b/html/changelogs/AutoChangeLog-pr-8247.yml new file mode 100644 index 0000000000..1ab08ece4d --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8247.yml @@ -0,0 +1,5 @@ +author: "Poojawa" +delete-after: True +changes: + - rscadd: "Added custom species names! Examining people will now display their species name unless they're an Unknown or have their face hidden. like flavor text. Set it in your character window!" + - code_imp: "changed how health scanners print messages, wrapping it in msg for one to_chat instead of printing every line to_chat." From 073684b7bc396cdd3f851fd0dcba930e49ad6738 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 23 Apr 2019 02:30:55 -0400 Subject: [PATCH 086/180] As Kev requested --- code/modules/antagonists/blob/blob/blobs/shield.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/blob/blob/blobs/shield.dm b/code/modules/antagonists/blob/blob/blobs/shield.dm index fef3c3ab85..570080aecc 100644 --- a/code/modules/antagonists/blob/blob/blobs/shield.dm +++ b/code/modules/antagonists/blob/blob/blobs/shield.dm @@ -8,7 +8,7 @@ explosion_block = 3 point_return = 4 atmosblock = TRUE - armor = list("melee" = 15, "bullet" = 15, "laser" = 5, "energy" = 0, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) /obj/structure/blob/shield/scannerreport() if(atmosblock) From 415461d7360d717cb2a8815af4c6a32c9999b395 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 23 Apr 2019 02:32:07 -0400 Subject: [PATCH 087/180] Forgot bomb armor --- code/modules/antagonists/blob/blob/blobs/shield.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/antagonists/blob/blob/blobs/shield.dm b/code/modules/antagonists/blob/blob/blobs/shield.dm index 570080aecc..a83f4294b2 100644 --- a/code/modules/antagonists/blob/blob/blobs/shield.dm +++ b/code/modules/antagonists/blob/blob/blobs/shield.dm @@ -8,7 +8,7 @@ explosion_block = 3 point_return = 4 atmosblock = TRUE - armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 90, "acid" = 90) /obj/structure/blob/shield/scannerreport() if(atmosblock) From 1aa312822a427ce5ea2bd607847232b6b341ac9c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 23 Apr 2019 02:34:14 -0400 Subject: [PATCH 088/180] Sure --- code/modules/cargo/exports/large_objects.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/cargo/exports/large_objects.dm b/code/modules/cargo/exports/large_objects.dm index 339ce8998f..b5f0e7a240 100644 --- a/code/modules/cargo/exports/large_objects.dm +++ b/code/modules/cargo/exports/large_objects.dm @@ -198,7 +198,7 @@ include_subtypes = FALSE /datum/export/large/reticence - cost = 120000 //Still a "Combat class" mech - Has cloking and lethal weaponds. Admin spawn for admin credits! + cost = 12000 //Still a "Combat class" mech - Has cloking and lethal weaponds. unit_name = "working reticence" export_types = list(/obj/mecha/combat/reticence) include_subtypes = FALSE @@ -210,7 +210,7 @@ include_subtypes = FALSE /datum/export/large/mauler - cost = 120000 //Still a Combat class mech - CC lethal weaponds. Admin spawn for admin credits! + cost = 12000 //Still a Combat class mech - CC lethal weaponds. unit_name = "working legally modified marauder" export_types = list(/obj/mecha/combat/marauder/mauler) include_subtypes = FALSE From d05afafcd1d3424779dbff377a025bd57788e241 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Mon, 22 Apr 2019 23:40:34 -0700 Subject: [PATCH 089/180] Unironically removes the race change event --- tgstation.dme | 1 - 1 file changed, 1 deletion(-) diff --git a/tgstation.dme b/tgstation.dme index 5b4c4eabe5..de0ef8686f 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1596,7 +1596,6 @@ #include "code\modules\events\wizard\lava.dm" #include "code\modules\events\wizard\magicarp.dm" #include "code\modules\events\wizard\petsplosion.dm" -#include "code\modules\events\wizard\race.dm" #include "code\modules\events\wizard\rpgloot.dm" #include "code\modules\events\wizard\shuffle.dm" #include "code\modules\events\wizard\summons.dm" From dbdd37430ab2a215eb25e439ff82f937ed0763b1 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 23 Apr 2019 02:42:18 -0400 Subject: [PATCH 090/180] Kev requests... --- code/modules/mining/machine_vending.dm | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 33be3c158d..01c749d24d 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -46,7 +46,6 @@ new /datum/data/mining_equipment("Mining Conscription Kit", /obj/item/storage/backpack/duffelbag/mining_conscript, 1000), new /datum/data/mining_equipment("1000 Point Transfer Card", /obj/item/card/mining_point_card/mp1000, 1000), new /datum/data/mining_equipment("1500 Point Transfer Card", /obj/item/card/mining_point_card/mp1500, 1500), - new /datum/data/mining_equipment("Spare Suit Voucher", /obj/item/suit_voucher, 1500), new /datum/data/mining_equipment("2000 Point Transfer Card", /obj/item/card/mining_point_card/mp2000, 2000), new /datum/data/mining_equipment("Jetpack Upgrade", /obj/item/tank/jetpack/suit, 2000), new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), @@ -69,7 +68,9 @@ new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000), - new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000) + new /datum/data/mining_equipment("Spare Suit Voucher", /obj/item/suit_voucher, 6000), + new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000), + new /datum/data/mining_equipment("Miner Full Replacement", /obj/item/storage/backpack/duffelbag/mining_cloned, 10000), ) @@ -326,6 +327,27 @@ //CITADEL ADDITIONS BELOW +/obj/item/storage/backpack/duffelbag/mining_cloned + name = "mining replacement kit" + desc = "A large bag that has advance tools and a spare jumpsuit, boots, and gloves for a newly cloned miner to get back in the field. Even as a new Id!" + +/obj/item/storage/backpack/duffelbag/mining_cloned/PopulateContents() + new /obj/item/pickaxe/mini(src) + new /obj/item/clothing/under/rank/miner/lavaland(src) + new /obj/item/clothing/shoes/workboots/mining(src) + new /obj/item/clothing/gloves/color/black(src) + new /obj/item/implanter/tracking/gps(src) + new /obj/item/kitchen/knife/combat/survival(src) + new /obj/item/storage/firstaid/regular(src) + new /obj/item/reagent_containers/hypospray/medipen/survival(src) + new /obj/item/t_scanner/adv_mining_scanner(src) + new /obj/item/clothing/suit/hooded/explorer(src) + new /obj/item/encryptionkey/headset_cargo(src) + new /obj/item/clothing/mask/gas/explorer(src) + new /obj/item/card/id/mining(src) + new /obj/item/storage/bag/ore(src) + new /obj/item/clothing/glasses/meson/prescription(src) + /obj/machinery/mineral/equipment_vendor/proc/RedeemSVoucher(obj/item/suit_voucher/voucher, mob/redeemer) var/items = list("Exo-suit", "SEVA suit") From 31f3a167778ddf49056bd1431c038803e44c74a5 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 23 Apr 2019 02:43:23 -0400 Subject: [PATCH 091/180] *No gps* --- code/modules/mining/machine_vending.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index 01c749d24d..ab6d48fa2a 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -33,7 +33,6 @@ new /datum/data/mining_equipment("Jaunter", /obj/item/wormhole_jaunter, 750), new /datum/data/mining_equipment("Kinetic Crusher", /obj/item/twohanded/required/kinetic_crusher, 750), new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/gun/energy/kinetic_accelerator, 750), - new /datum/data/mining_equipment("GPS implanter", /obj/item/implanter/tracking/gps, 750), new /datum/data/mining_equipment("Brute First-Aid Kit", /obj/item/storage/firstaid/brute, 800), new /datum/data/mining_equipment("Burn First-Aid Kit", /obj/item/storage/firstaid/fire, 800), new /datum/data/mining_equipment("First-Aid Kit", /obj/item/storage/firstaid/regular, 800), From 823dd1a98a00cba8137a407b6aea69576a45245f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 23 Apr 2019 04:40:21 -0400 Subject: [PATCH 092/180] Update ripley.dm --- code/game/mecha/working/ripley.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 4d2e113749..ef3ba969e9 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -80,6 +80,7 @@ desc = "OH SHIT IT'S THE DEATHSQUAD WE'RE ALL GONNA DIE" name = "\improper DEATH-RIPLEY" icon_state = "deathripley" + armor = list("melee" = 40, "bullet" = 30, "laser" = 20, "energy" = 20, "bomb" = 40, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100) slow_pressure_step_in = 3 opacity=0 lights_power = 7 @@ -194,4 +195,4 @@ cargo -= O else if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded. - to_chat(user, "You fail to push [O] out of [src]!") \ No newline at end of file + to_chat(user, "You fail to push [O] out of [src]!") From ff29ade943766c71cae41ef2303a868608add29d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Tue, 23 Apr 2019 12:09:58 -0400 Subject: [PATCH 093/180] Hairly request --- code/modules/mining/machine_vending.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mining/machine_vending.dm b/code/modules/mining/machine_vending.dm index ab6d48fa2a..cd75c3b55b 100644 --- a/code/modules/mining/machine_vending.dm +++ b/code/modules/mining/machine_vending.dm @@ -50,9 +50,11 @@ new /datum/data/mining_equipment("Space Cash", /obj/item/stack/spacecash/c1000, 2000), new /datum/data/mining_equipment("Mining Hardsuit", /obj/item/clothing/suit/space/hardsuit/mining, 2000), new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/pickaxe/diamond, 2000), + new /datum/data/mining_equipment("Spare Suit Voucher", /obj/item/suit_voucher, 2000), new /datum/data/mining_equipment("Super Resonator", /obj/item/resonator/upgraded, 2500), new /datum/data/mining_equipment("Jump Boots", /obj/item/clothing/shoes/bhop, 2500), new /datum/data/mining_equipment("Luxury Shelter Capsule", /obj/item/survivalcapsule/luxury, 3000), + new /datum/data/mining_equipment("Miner Full Replacement", /obj/item/storage/backpack/duffelbag/mining_cloned, 3000), new /datum/data/mining_equipment("Nanotrasen Minebot", /mob/living/simple_animal/hostile/mining_drone, 800), new /datum/data/mining_equipment("Minebot Melee Upgrade", /obj/item/mine_bot_upgrade, 400), new /datum/data/mining_equipment("Minebot Armor Upgrade", /obj/item/mine_bot_upgrade/health, 400), @@ -67,9 +69,7 @@ new /datum/data/mining_equipment("KA Damage Increase", /obj/item/borg/upgrade/modkit/damage, 1000), new /datum/data/mining_equipment("KA Cooldown Decrease", /obj/item/borg/upgrade/modkit/cooldown, 1000), new /datum/data/mining_equipment("KA AoE Damage", /obj/item/borg/upgrade/modkit/aoe/mobs, 2000), - new /datum/data/mining_equipment("Spare Suit Voucher", /obj/item/suit_voucher, 6000), - new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000), - new /datum/data/mining_equipment("Miner Full Replacement", /obj/item/storage/backpack/duffelbag/mining_cloned, 10000), + new /datum/data/mining_equipment("Premium Accelerator", /obj/item/gun/energy/kinetic_accelerator/premiumka, 8000) ) From b0a93cf790501e8800372db3a330ab8f06d9d031 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Tue, 23 Apr 2019 11:51:00 -0700 Subject: [PATCH 094/180] retweaked the event instead of removing it --- code/modules/events/wizard/race.dm | 35 +++++++++++++++++++++++++++--- tgstation.dme | 1 + 2 files changed, 33 insertions(+), 3 deletions(-) diff --git a/code/modules/events/wizard/race.dm b/code/modules/events/wizard/race.dm index 32b45e46f8..7ea875f152 100644 --- a/code/modules/events/wizard/race.dm +++ b/code/modules/events/wizard/race.dm @@ -5,6 +5,18 @@ max_occurrences = 5 earliest_start = 0 MINUTES +/datum/round_event/wizard/race + var/list/stored_name + var/list/stored_species + var/list/stored_dna + +/datum/round_event/wizard/race/setup() + stored_name = list() + stored_species = list() + stored_dna = list() + endWhen = rand(600,1200) //10 to 20 minutes + ..() + /datum/round_event/wizard/race/start() var/all_the_same = 0 @@ -12,18 +24,35 @@ for(var/speciestype in subtypesof(/datum/species)) var/datum/species/S = new speciestype() - if(!S.dangerous_existence && !S.blacklisted) + if(!S.dangerous_existence && !S.blacklisted && !S.nojumpsuit) //Dangerous Species, Blacklisted Species, and Species who can't wear jumpsuits are blacklisted. all_species += speciestype var/datum/species/new_species = pick(all_species) - if(prob(50)) + if(prob(75)) all_the_same = 1 - for(var/mob/living/carbon/human/H in GLOB.carbon_list) //yes, even the dead + for(var/mob/living/carbon/human/H in GLOB.carbon_list) + var/turf/T = get_turf(H) + if(!T) + continue + if(!is_station_level(T.z)) + continue + stored_name[H] = H.real_name + stored_species[H] = H.dna.species + stored_dna[H] = H.dna.unique_enzymes H.set_species(new_species) H.real_name = H.dna.species.random_name(H.gender,1) H.dna.unique_enzymes = H.dna.generate_unique_enzymes() to_chat(H, "You feel somehow... different?") if(!all_the_same) new_species = pick(all_species) + +/datum/round_event/wizard/race/end() + for(var/mob/living/carbon/human/H in GLOB.carbon_list) + if(!(stored_name[H] && stored_species[H] && stored_dna[H])) + continue + H.set_species(stored_species[H]) + H.real_name = stored_name[H] + H.dna.unique_enzymes = stored_dna[H] + to_chat(H, "You feel back to your normal self again.") \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index de0ef8686f..5b4c4eabe5 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1596,6 +1596,7 @@ #include "code\modules\events\wizard\lava.dm" #include "code\modules\events\wizard\magicarp.dm" #include "code\modules\events\wizard\petsplosion.dm" +#include "code\modules\events\wizard\race.dm" #include "code\modules\events\wizard\rpgloot.dm" #include "code\modules\events\wizard\shuffle.dm" #include "code\modules\events\wizard\summons.dm" From 1f78520b68c605d7f45a9fca581303059191ff69 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Wed, 24 Apr 2019 20:13:21 -0700 Subject: [PATCH 095/180] Adds a new trait that makes you immune from the "positive" effects of hexacrocin and crocin. --- code/__DEFINES/traits.dm | 1 + code/datums/traits/neutral.dm | 9 +++++++++ .../code/modules/reagents/reagents/cit_reagents.dm | 6 +++--- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index a5617e6148..99f1813f3c 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -69,6 +69,7 @@ #define TRAIT_TAGGER "tagger" #define TRAIT_PHOTOGRAPHER "photographer" #define TRAIT_MUSICIAN "musician" +#define TRAIT_CROCRIN_IMMUNE "crocin_immune" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 4fc30de473..f299e9904a 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -84,3 +84,12 @@ /datum/quirk/monochromatic/remove() if(quirk_holder) quirk_holder.remove_client_colour(/datum/client_colour/monochrome) + +/datum/quirk/crocrin_immunity + name = "Crocin Immunity" + desc = "You're one of the few people in the galaxy who are genetically immune to Crocin and Hexacrocin products and their addictive properties! However, you can still get brain damage from Hexacrocin addiction." + mob_trait = TRAIT_CROCRIN_IMMUNE + value = 0 + gain_text = "You feel more prudish." + lose_text = "You don't feel as prudish as before." + medical_record_text = "Patient exhibits a special gene that makes them immune to Crocin and Hexacrocin." diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index e46174b5a9..061f941043 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -97,7 +97,7 @@ color = "#FFADFF"//PINK, rgb(255, 173, 255) /datum/reagent/drug/aphrodisiac/on_mob_life(mob/living/M) - if(M && M.canbearoused) + if(M && M.canbearoused && !M.has_trait(TRAIT_CROCRIN_IMMUNE)) if(prob(33)) M.adjustArousalLoss(2) if(prob(5)) @@ -119,7 +119,7 @@ overdose_threshold = 20 /datum/reagent/drug/aphrodisiacplus/on_mob_life(mob/living/M) - if(M && M.canbearoused) + if(M && M.canbearoused && !M.has_trait(TRAIT_CROCRIN_IMMUNE)) if(prob(33)) M.adjustArousalLoss(6)//not quite six times as powerful, but still considerably more powerful. if(prob(5)) @@ -151,7 +151,7 @@ ..() /datum/reagent/drug/aphrodisiacplus/overdose_process(mob/living/M) - if(M && M.canbearoused && prob(33)) + if(M && M.canbearoused && !M.has_trait(TRAIT_CROCRIN_IMMUNE) && prob(33)) if(M.getArousalLoss() >= 100 && ishuman(M) && M.has_dna()) var/mob/living/carbon/human/H = M if(prob(50)) //Less spam From 11ba5ee3fd904d56a6eda9c03158a57e0f582b24 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 25 Apr 2019 06:19:38 -0500 Subject: [PATCH 096/180] Automatic changelog generation for PR #8264 [ci skip] --- html/changelogs/AutoChangeLog-pr-8264.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8264.yml diff --git a/html/changelogs/AutoChangeLog-pr-8264.yml b/html/changelogs/AutoChangeLog-pr-8264.yml new file mode 100644 index 0000000000..15e525c581 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8264.yml @@ -0,0 +1,7 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscdel: "Fun" + - tweak: "costs of suit voucher" + - balance: "Unblances miner vender" + - bugfix: "spare cheaper brute kit" From bb47bc7cf942a805e6222a79afe11aa0b7a65713 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 25 Apr 2019 06:20:05 -0500 Subject: [PATCH 097/180] Automatic changelog generation for PR #8261 [ci skip] --- html/changelogs/AutoChangeLog-pr-8261.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8261.yml diff --git a/html/changelogs/AutoChangeLog-pr-8261.yml b/html/changelogs/AutoChangeLog-pr-8261.yml new file mode 100644 index 0000000000..e7624aec73 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8261.yml @@ -0,0 +1,7 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "new economics" + - tweak: "cargo and robotics relationships" + - balance: "unbalanced something" + - bugfix: "fixed a maybe oversight" From 7b94b5df5117853cd518541b363816cab8e536db Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 25 Apr 2019 06:34:12 -0500 Subject: [PATCH 098/180] Automatic changelog generation for PR #8279 [ci skip] --- html/changelogs/AutoChangeLog-pr-8279.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8279.yml diff --git a/html/changelogs/AutoChangeLog-pr-8279.yml b/html/changelogs/AutoChangeLog-pr-8279.yml new file mode 100644 index 0000000000..7ed141640a --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8279.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "restores the deathriplys missing armor" From ae2b3797a677bbf17cb8019a44af8fec523e8ddc Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 25 Apr 2019 06:35:01 -0500 Subject: [PATCH 099/180] Automatic changelog generation for PR #8277 [ci skip] --- html/changelogs/AutoChangeLog-pr-8277.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8277.yml diff --git a/html/changelogs/AutoChangeLog-pr-8277.yml b/html/changelogs/AutoChangeLog-pr-8277.yml new file mode 100644 index 0000000000..2a663ea2a4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8277.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - balance: "Significantly tweaks the Wizard race transformation event to be less unreasonably troublesome." From fd19d67cc282f10fcc098631e6186c148fe0206f Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Thu, 25 Apr 2019 11:57:02 -0700 Subject: [PATCH 100/180] "Improves" how slurring works, and adjusts how fast you recover from slurring. --- code/modules/mob/living/carbon/human/say.dm | 13 +++++++++---- code/modules/mob/living/carbon/life.dm | 2 +- code/modules/mob/living/say.dm | 2 +- code/modules/mob/mob_helpers.dm | 14 +++++++------- .../chemistry/reagents/alcohol_reagents.dm | 12 ++++-------- .../reagents/chemistry/reagents/food_reagents.dm | 3 +-- 6 files changed, 23 insertions(+), 23 deletions(-) diff --git a/code/modules/mob/living/carbon/human/say.dm b/code/modules/mob/living/carbon/human/say.dm index 3cdaf71e68..dc35e65c47 100644 --- a/code/modules/mob/living/carbon/human/say.dm +++ b/code/modules/mob/living/carbon/human/say.dm @@ -1,9 +1,14 @@ /mob/living/carbon/human/say_mod(input, message_mode) verb_say = dna.species.say_mod - if(slurring) - return "slurs" - else - . = ..() + switch(slurring) + if(25 to 50) + return "jumbles" + if(50 to 75) + return "slurs" + if(75 to INFINITY) + return "garbles" + else + . = ..() /mob/living/carbon/human/treat_message(message) message = dna.species.handle_speech(message,src) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 48a401802b..2492ece97f 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -532,7 +532,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put stuttering = max(stuttering-1, 0) if(slurring) - slurring = max(slurring-1,0) + slurring = max(slurring-0.15,0) if(cultslurring) cultslurring = max(cultslurring-1, 0) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index a0f619a7d6..871e33349a 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -334,7 +334,7 @@ GLOBAL_LIST_INIT(department_radio_keys, list( message = stutter(message) if(slurring) - message = slur(message) + message = slur(message,slurring) if(cultslurring) message = cultslur(message) diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 35b48afa28..3d4e356464 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -64,7 +64,7 @@ p++ return sanitize(t) -/proc/slur(n) +/proc/slur(n,var/strength=50) var/phrase = html_decode(n) var/leng = lentext(phrase) var/counter=lentext(phrase) @@ -72,7 +72,7 @@ var/newletter="" while(counter>=1) newletter=copytext(phrase,(leng-counter)+1,(leng-counter)+2) - if(rand(1,3)==3) + if(rand(1,100)<=strength) if(lowertext(newletter)=="o") newletter="u" if(lowertext(newletter)=="s") @@ -83,17 +83,17 @@ newletter="oo" if(lowertext(newletter)=="c") newletter="k" - if(rand(1,20)==20) + if(rand(1,100) <= strength*0.5) if(newletter==" ") newletter="...huuuhhh..." if(newletter==".") newletter=" *BURP*." - switch(rand(1,20)) - if(1) + if(rand(1,100) <= strength) + if(rand(1,5) == 1) newletter+="'" - if(10) + if(rand(1,5) == 1) newletter+="[newletter]" - if(20) + if(rand(1,5) == 1) newletter+="[newletter][newletter]" newphrase+="[newletter]";counter-=1 return newphrase diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 6e4d5e5a7d..92d9da401b 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1277,8 +1277,7 @@ All effects don't start immediately, but rather get worse over time; the rate is if(!M.has_trait(TRAIT_ALCOHOL_TOLERANCE)) M.confused = max(M.confused+2,0) M.Dizzy(10) - if (!M.slurring) - M.slurring = 1 + M.slurring = max(M.slurring,50) M.slurring += 3 switch(current_cycle) if(51 to 200) @@ -1306,8 +1305,7 @@ All effects don't start immediately, but rather get worse over time; the rate is M.dizziness +=1.5 switch(current_cycle) if(15 to 45) - if(!M.slurring) - M.slurring = 1 + M.slurring = max(M.slurring,50) M.slurring += 3 if(45 to 55) if(prob(50)) @@ -1336,8 +1334,7 @@ All effects don't start immediately, but rather get worse over time; the rate is M.dizziness +=2 switch(current_cycle) if(15 to 45) - if(!M.slurring) - M.slurring = 1 + M.slurring = max(M.slurring,50) M.slurring += 3 if(45 to 55) if(prob(50)) @@ -1364,8 +1361,7 @@ All effects don't start immediately, but rather get worse over time; the rate is glass_desc = "A drink enjoyed by people during the 1960's." /datum/reagent/consumable/ethanol/hippies_delight/on_mob_life(mob/living/carbon/M) - if (!M.slurring) - M.slurring = 1 + M.slurring = max(M.slurring,50) switch(current_cycle) if(1 to 5) M.Dizzy(10) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 52b212f8c5..5071150e24 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -402,8 +402,7 @@ taste_description = "mushroom" /datum/reagent/mushroomhallucinogen/on_mob_life(mob/living/carbon/M) - if(!M.slurring) - M.slurring = 1 + M.slurring = max(M.slurring,50) switch(current_cycle) if(1 to 5) M.Dizzy(5) From 75816477a54f6c98093ce506ab1e97dff0719f98 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Thu, 25 Apr 2019 12:09:10 -0700 Subject: [PATCH 101/180] Slurring now related to your drunkenness level. --- code/modules/mob/living/carbon/life.dm | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 2492ece97f..3fbb167736 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -532,7 +532,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put stuttering = max(stuttering-1, 0) if(slurring) - slurring = max(slurring-0.15,0) + slurring = max(slurring-0.15,0,drunkenness) if(cultslurring) cultslurring = max(cultslurring-1, 0) @@ -550,16 +550,11 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put drunkenness = max(drunkenness - (drunkenness * 0.04), 0) if(drunkenness >= 6) SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "drunk", /datum/mood_event/drunk) - if(prob(25)) - slurring += 2 jitteriness = max(jitteriness - 3, 0) if(has_trait(TRAIT_DRUNK_HEALING)) adjustBruteLoss(-0.12, FALSE) adjustFireLoss(-0.06, FALSE) - if(drunkenness >= 11 && slurring < 5) - slurring += 1.2 - if(mind && (mind.assigned_role == "Scientist" || mind.assigned_role == "Research Director")) if(SSresearch.science_tech) if(drunkenness >= 12.9 && drunkenness <= 13.8) From 569a92485f137220cee4979860053288354cd1e6 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Thu, 25 Apr 2019 12:09:45 -0700 Subject: [PATCH 102/180] Removed slurring being 0.15 as it was a little extreme. --- code/modules/mob/living/carbon/life.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 3fbb167736..6111a92e99 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -532,7 +532,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put stuttering = max(stuttering-1, 0) if(slurring) - slurring = max(slurring-0.15,0,drunkenness) + slurring = max(slurring-1,0,drunkenness) if(cultslurring) cultslurring = max(cultslurring-1, 0) From fcda4c0fbb15d908b481ebdc155ba89d90e0d5b2 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 25 Apr 2019 20:40:48 -0400 Subject: [PATCH 103/180] Update _neck.dm --- code/modules/clothing/neck/_neck.dm | 44 +++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 8245148096..d4cfbd1a84 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -171,17 +171,57 @@ icon_state = "stripedbluescarf" item_color = "stripedbluescarf" -/obj/item/clothing/neck/petcollar //don't really wear this though please c'mon seriously guys +/////////// +//COLLARS// +/////////// + +/obj/item/clothing/neck/petcollar name = "pet collar" desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule." icon_state = "petcollar" item_color = "petcollar" + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar var/tagname = null /obj/item/clothing/neck/petcollar/attack_self(mob/user) tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN) name = "[initial(name)] - [tagname]" +/obj/item/clothing/neck/petcollar/locked + name = "locked collar" + desc = "A collar that has a small lock on it to keep it from being removed." + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked + var/lock = FALSE + +/obj/item/clothing/neck/petcollar/locked/attackby(obj/item/key/collar, mob/user, params) + if(lock != FALSE) + to_chat(user, "With a click the collar unlocks!") + lock = FALSE + item_flags = NONE + else + to_chat(user, "With a click the collar locks!") + lock = TRUE + item_flags = NODROP + return + +/obj/item/clothing/neck/petcollar/locked/attack_hand(mob/user) + if(loc == user && user.get_item_by_slot(SLOT_NECK) && lock != FALSE) + to_chat(user, "The collar is locked! You'll need unlock the collar before you can take it off!") + return + ..() + +/obj/item/key/collar + name = "Collar Key" + desc = "A key for a tiny lock on a collar or bag." + +/obj/item/clothing/neck/petcollar/Initialize() + . = ..() + new /obj/item/reagent_containers/food/snacks/cookie(src) + +/obj/item/clothing/neck/petcollar/locked/Initialize() + . = ..() + new /obj/item/key/collar(src) + ////////////// //DOPE BLING// ////////////// @@ -191,4 +231,4 @@ desc = "Damn, it feels good to be a gangster." icon = 'icons/obj/clothing/neck.dmi' icon_state = "bling" - item_color = "bling" \ No newline at end of file + item_color = "bling" From a69b845509b8f0fc8ab294823f4d7ce1c1e23d6b Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 25 Apr 2019 20:41:34 -0400 Subject: [PATCH 104/180] Update pockets.dm --- .../components/storage/concrete/pockets.dm | 117 +++++++----------- 1 file changed, 48 insertions(+), 69 deletions(-) diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index 3d03c2adbd..f049a12ffb 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -1,73 +1,52 @@ -/datum/component/storage/concrete/pockets - max_items = 2 - max_w_class = WEIGHT_CLASS_SMALL - max_combined_w_class = 50 - rustle_sound = FALSE -/datum/component/storage/concrete/pockets/handle_item_insertion(obj/item/I, prevent_warning, mob/user) +/////////// +//COLLARS// +/////////// + +/obj/item/clothing/neck/petcollar + name = "pet collar" + desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule." + icon_state = "petcollar" + item_color = "petcollar" + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar + var/tagname = null + +/obj/item/clothing/neck/petcollar/attack_self(mob/user) + tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN) + name = "[initial(name)] - [tagname]" + + +/obj/item/clothing/neck/petcollar/locked + name = "locked collar" + desc = "A collar that has a small lock on it to keep it from being removed." + pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked + var/lock = FALSE + +/obj/item/clothing/neck/petcollar/locked/attackby(obj/item/key/collar, mob/user, params) + if(lock != FALSE) + to_chat(user, "With a click the collar unlocks!") + lock = FALSE + item_flags = NONE + else + to_chat(user, "With a click the collar locks!") + lock = TRUE + item_flags = NODROP + return + +/obj/item/clothing/neck/petcollar/locked/attack_hand(mob/user) + if(loc == user && user.get_item_by_slot(SLOT_NECK) && lock != FALSE) + to_chat(user, "The collar is locked! You'll need unlock the collar before you can take it off!") + return + ..() + +/obj/item/key/collar + name = "Collar Key" + desc = "A key for a tiny lock on a collar or bag." + +/obj/item/clothing/neck/petcollar/Initialize() . = ..() - if(. && silent && !prevent_warning) - if(quickdraw) - to_chat(user, "You discreetly slip [I] into [parent]. Alt-click [parent] to remove it.") - else - to_chat(user, "You discreetly slip [I] into [parent].") + new /obj/item/reagent_containers/food/snacks/cookie(src) -/datum/component/storage/concrete/pockets - max_w_class = WEIGHT_CLASS_NORMAL - -/datum/component/storage/concrete/pockets/small - max_items = 1 - attack_hand_interact = FALSE - -/datum/component/storage/concrete/pockets/tiny - max_items = 1 - max_w_class = WEIGHT_CLASS_TINY - attack_hand_interact = FALSE - -/datum/component/storage/concrete/pockets/small/detective - attack_hand_interact = TRUE // so the detectives would discover pockets in their hats - -/datum/component/storage/concrete/pockets/shoes - attack_hand_interact = FALSE - quickdraw = TRUE - silent = TRUE - -/datum/component/storage/concrete/pockets/shoes/Initialize() +/obj/item/clothing/neck/petcollar/locked/Initialize() . = ..() - cant_hold = typecacheof(list(/obj/item/screwdriver/power)) - can_hold = typecacheof(list( - /obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen, - /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, - /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, - /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, - /obj/item/firing_pin - )) - -/datum/component/storage/concrete/pockets/shoes/clown/Initialize() - . = ..() - cant_hold = typecacheof(list(/obj/item/screwdriver/power)) - can_hold = typecacheof(list( - /obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen, - /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, - /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, - /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, - /obj/item/firing_pin, /obj/item/bikehorn)) - -/datum/component/storage/concrete/pockets/pocketprotector - max_items = 3 - max_w_class = WEIGHT_CLASS_TINY - var/atom/original_parent - -/datum/component/storage/concrete/pockets/pocketprotector/Initialize() - original_parent = parent - . = ..() - can_hold = typecacheof(list( //Same items as a PDA - /obj/item/pen, - /obj/item/toy/crayon, - /obj/item/lipstick, - /obj/item/flashlight/pen, - /obj/item/clothing/mask/cigarette)) - -/datum/component/storage/concrete/pockets/pocketprotector/real_location() - // if the component is reparented to a jumpsuit, the items still go in the protector - return original_parent + new /obj/item/key/collar(src) From 59cc2b5a9c7f26eabd40d08653b597e7c422f4d8 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 25 Apr 2019 20:42:38 -0400 Subject: [PATCH 105/180] Update vending.dm --- modular_citadel/code/game/machinery/vending.dm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/game/machinery/vending.dm b/modular_citadel/code/game/machinery/vending.dm index 213dd8a17a..bdca91b0e6 100755 --- a/modular_citadel/code/game/machinery/vending.dm +++ b/modular_citadel/code/game/machinery/vending.dm @@ -54,8 +54,11 @@ /obj/item/clothing/neck/petcollar = 5, /obj/item/clothing/under/mankini = 1, /obj/item/dildo/flared/huge = 1 - ) - premium = list(/obj/item/electropack/shockcollar = 3) + ) + premium = list( + /obj/item/electropack/shockcollar = 3, + /obj/item/clothing/neck/petcollar/locked = 1 + ) refill_canister = /obj/item/vending_refill/kink /* /obj/machinery/vending/nazivend From 33e3df815717df367edde60f6cce230f4dc5c464 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 25 Apr 2019 20:46:39 -0400 Subject: [PATCH 106/180] What in the hell? --- .../components/storage/concrete/pockets.dm | 133 +++++++++++------- 1 file changed, 85 insertions(+), 48 deletions(-) diff --git a/code/datums/components/storage/concrete/pockets.dm b/code/datums/components/storage/concrete/pockets.dm index f049a12ffb..e0a23b0209 100644 --- a/code/datums/components/storage/concrete/pockets.dm +++ b/code/datums/components/storage/concrete/pockets.dm @@ -1,52 +1,89 @@ +/datum/component/storage/concrete/pockets + max_items = 2 + max_w_class = WEIGHT_CLASS_SMALL + max_combined_w_class = 50 + rustle_sound = FALSE -/////////// -//COLLARS// -/////////// - -/obj/item/clothing/neck/petcollar - name = "pet collar" - desc = "It's for pets. Though you probably could wear it yourself, you'd doubtless be the subject of ridicule." - icon_state = "petcollar" - item_color = "petcollar" - pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar - var/tagname = null - -/obj/item/clothing/neck/petcollar/attack_self(mob/user) - tagname = copytext(sanitize(input(user, "Would you like to change the name on the tag?", "Name your new pet", "Spot") as null|text),1,MAX_NAME_LEN) - name = "[initial(name)] - [tagname]" - - -/obj/item/clothing/neck/petcollar/locked - name = "locked collar" - desc = "A collar that has a small lock on it to keep it from being removed." - pocket_storage_component_path = /datum/component/storage/concrete/pockets/small/collar/locked - var/lock = FALSE - -/obj/item/clothing/neck/petcollar/locked/attackby(obj/item/key/collar, mob/user, params) - if(lock != FALSE) - to_chat(user, "With a click the collar unlocks!") - lock = FALSE - item_flags = NONE - else - to_chat(user, "With a click the collar locks!") - lock = TRUE - item_flags = NODROP - return - -/obj/item/clothing/neck/petcollar/locked/attack_hand(mob/user) - if(loc == user && user.get_item_by_slot(SLOT_NECK) && lock != FALSE) - to_chat(user, "The collar is locked! You'll need unlock the collar before you can take it off!") - return - ..() - -/obj/item/key/collar - name = "Collar Key" - desc = "A key for a tiny lock on a collar or bag." - -/obj/item/clothing/neck/petcollar/Initialize() +/datum/component/storage/concrete/pockets/handle_item_insertion(obj/item/I, prevent_warning, mob/user) . = ..() - new /obj/item/reagent_containers/food/snacks/cookie(src) + if(. && silent && !prevent_warning) + if(quickdraw) + to_chat(user, "You discreetly slip [I] into [parent]. Alt-click [parent] to remove it.") + else + to_chat(user, "You discreetly slip [I] into [parent].") -/obj/item/clothing/neck/petcollar/locked/Initialize() +/datum/component/storage/concrete/pockets + max_w_class = WEIGHT_CLASS_NORMAL + +/datum/component/storage/concrete/pockets/small + max_items = 1 + attack_hand_interact = FALSE + +/datum/component/storage/concrete/pockets/small/collar + max_items = 1 + +/datum/component/storage/concrete/pockets/small/collar/Initialize() . = ..() - new /obj/item/key/collar(src) + can_hold = typecacheof(list( + /obj/item/reagent_containers/food/snacks/cookie, + /obj/item/reagent_containers/food/snacks/sugarcookie)) + +/datum/component/storage/concrete/pockets/small/collar/locked/Initialize() + . = ..() + can_hold = typecacheof(list( + /obj/item/reagent_containers/food/snacks/cookie, + /obj/item/reagent_containers/food/snacks/sugarcookie, + /obj/item/key/collar)) + +/datum/component/storage/concrete/pockets/tiny + max_items = 1 + max_w_class = WEIGHT_CLASS_TINY + attack_hand_interact = FALSE + +/datum/component/storage/concrete/pockets/small/detective + attack_hand_interact = TRUE // so the detectives would discover pockets in their hats + +/datum/component/storage/concrete/pockets/shoes + attack_hand_interact = FALSE + quickdraw = TRUE + silent = TRUE + +/datum/component/storage/concrete/pockets/shoes/Initialize() + . = ..() + cant_hold = typecacheof(list(/obj/item/screwdriver/power)) + can_hold = typecacheof(list( + /obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen, + /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, + /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, + /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, + /obj/item/firing_pin + )) + +/datum/component/storage/concrete/pockets/shoes/clown/Initialize() + . = ..() + cant_hold = typecacheof(list(/obj/item/screwdriver/power)) + can_hold = typecacheof(list( + /obj/item/kitchen/knife, /obj/item/switchblade, /obj/item/pen, + /obj/item/scalpel, /obj/item/reagent_containers/syringe, /obj/item/dnainjector, + /obj/item/reagent_containers/hypospray/medipen, /obj/item/reagent_containers/dropper, + /obj/item/implanter, /obj/item/screwdriver, /obj/item/weldingtool/mini, + /obj/item/firing_pin, /obj/item/bikehorn)) + +/datum/component/storage/concrete/pockets/pocketprotector + max_items = 3 + max_w_class = WEIGHT_CLASS_TINY + var/atom/original_parent + +/datum/component/storage/concrete/pockets/pocketprotector/Initialize() + original_parent = parent + . = ..() + can_hold = typecacheof(list( //Same items as a PDA + /obj/item/pen, + /obj/item/toy/crayon, + /obj/item/lipstick, + /obj/item/flashlight/pen, + /obj/item/clothing/mask/cigarette)) + +/datum/component/storage/concrete/pockets/pocketprotector/real_location() + // if the component is reparented to a jumpsuit, the items still go in the protector + return original_parent From b44ac0dd7493e3b3ef4efba68a95938e022cd0a0 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Thu, 25 Apr 2019 18:11:12 -0700 Subject: [PATCH 107/180] Reorganizes accessory files, seperates underwear tops from bottoms, and removes gendered clothing. --- .../mob/dead/new_player/sprite_accessories.dm | 1524 ----------------- .../sprite_accessories/_sprite_accessories.dm | 62 + .../sprite_accessories/body_markings.dm | 25 + .../new_player/sprite_accessories/caps.dm | 7 + .../new_player/sprite_accessories/ears.dm | 12 + .../new_player/sprite_accessories/frills.dm | 18 + .../sprite_accessories/hair_face.dm | 89 + .../sprite_accessories/hair_head.dm | 460 +++++ .../new_player/sprite_accessories/horns.dm | 26 + .../new_player/sprite_accessories/legs.dm | 8 + .../sprite_accessories/moth_wings.dm | 68 + .../new_player/sprite_accessories/pines.dm | 53 + .../new_player/sprite_accessories/snouts.dm | 18 + .../new_player/sprite_accessories/socks.dm | 96 ++ .../new_player/sprite_accessories/tails.dm | 55 + .../sprite_accessories/undershirt.dm | 308 ++++ .../sprite_accessories/underwear.dm | 171 ++ .../new_player/sprite_accessories/wings.dm | 26 + icons/mob/underwear.dmi | Bin 52322 -> 54625 bytes icons/mob/underwear_old.dmi | Bin 0 -> 52536 bytes tgstation.dme | 18 +- 21 files changed, 1519 insertions(+), 1525 deletions(-) delete mode 100644 code/modules/mob/dead/new_player/sprite_accessories.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/caps.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/ears.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/frills.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/horns.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/legs.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/moth_wings.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/pines.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/snouts.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/socks.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/tails.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/underwear.dm create mode 100644 code/modules/mob/dead/new_player/sprite_accessories/wings.dm create mode 100644 icons/mob/underwear_old.dmi diff --git a/code/modules/mob/dead/new_player/sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories.dm deleted file mode 100644 index 44c1f7601d..0000000000 --- a/code/modules/mob/dead/new_player/sprite_accessories.dm +++ /dev/null @@ -1,1524 +0,0 @@ -/* - - Hello and welcome to sprite_accessories: For sprite accessories, such as hair, - facial hair, and possibly tattoos and stuff somewhere along the line. This file is - intended to be friendly for people with little to no actual coding experience. - The process of adding in new hairstyles has been made pain-free and easy to do. - Enjoy! - Doohl - - - Notice: This all gets automatically compiled in a list in dna.dm, so you do not - have to define any UI values for sprite accessories manually for hair and facial - hair. Just add in new hair types and the game will naturally adapt. - - !!WARNING!!: changing existing hair information can be VERY hazardous to savefiles, - to the point where you may completely corrupt a server's savefiles. Please refrain - from doing this unless you absolutely know what you are doing, and have defined a - conversion in savefile.dm -*/ -/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female,var/roundstart = FALSE)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked - if(!istype(L)) - L = list() - if(!istype(male)) - male = list() - if(!istype(female)) - female = list() - - for(var/path in typesof(prototype)) - if(path == prototype) - continue - if(roundstart) - var/datum/sprite_accessory/P = path - if(initial(P.locked)) - continue - var/datum/sprite_accessory/D = new path() - - if(D.icon_state) - L[D.name] = D - else - L += D.name - - switch(D.gender) - if(MALE) - male += D.name - if(FEMALE) - female += D.name - else - male += D.name - female += D.name - return L - -/datum/sprite_accessory - var/icon //the icon file the accessory is located in - var/icon_state //the icon_state of the accessory - var/name //the preview name of the accessory - var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations - var/gender_specific //Something that can be worn by either gender, but looks different on each - var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none. - var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears. - var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects - var/dimension_x = 32 - var/dimension_y = 32 - var/center = FALSE //Should we center the sprite? - -////////////////////// -// Hair Definitions // -////////////////////// -/datum/sprite_accessory/hair - icon = 'icons/mob/human_face.dmi' // default icon for all hairs - - // please make sure they're sorted alphabetically and, where needed, categorized - // try to capitalize the names please~ - // try to spell - // you do not need to define _s or _l sub-states, game automatically does this for you - -/datum/sprite_accessory/hair/afro - name = "Afro" - icon_state = "hair_afro" - -/datum/sprite_accessory/hair/afro2 - name = "Afro 2" - icon_state = "hair_afro2" - -/datum/sprite_accessory/hair/afro_large - name = "Afro (Large)" - icon_state = "hair_bigafro" - -/datum/sprite_accessory/hair/antenna - name = "Ahoge" - icon_state = "hair_antenna" - -/datum/sprite_accessory/hair/bald - name = "Bald" - icon_state = null - -/datum/sprite_accessory/hair/balding - name = "Balding Hair" - icon_state = "hair_e" - -/datum/sprite_accessory/hair/bedhead - name = "Bedhead" - icon_state = "hair_bedhead" - -/datum/sprite_accessory/hair/bedhead2 - name = "Bedhead 2" - icon_state = "hair_bedheadv2" - -/datum/sprite_accessory/hair/bedhead3 - name = "Bedhead 3" - icon_state = "hair_bedheadv3" - -/datum/sprite_accessory/hair/beehive - name = "Beehive" - icon_state = "hair_beehive" - -/datum/sprite_accessory/hair/beehive2 - name = "Beehive 2" - icon_state = "hair_beehivev2" - -/datum/sprite_accessory/hair/bob - name = "Bob Hair" - icon_state = "hair_bob" - -/datum/sprite_accessory/hair/bob2 - name = "Bob Hair 2" - icon_state = "hair_bob2" - -/datum/sprite_accessory/hair/bob3 - name = "Bob Hair 3" - icon_state = "hair_bobcut" - -/datum/sprite_accessory/hair/bobcurl - name = "Bobcurl" - icon_state = "hair_bobcurl" - -/datum/sprite_accessory/hair/boddicker - name = "Boddicker" - icon_state = "hair_boddicker" - -/datum/sprite_accessory/hair/bowl - name = "Bowl" - icon_state = "hair_bowlcut" - -/datum/sprite_accessory/hair/braid - name = "Braid (Floorlength)" - icon_state = "hair_braid" - -/datum/sprite_accessory/hair/braided - name = "Braided" - icon_state = "hair_braided" - -/datum/sprite_accessory/hair/front_braid - name = "Braided Front" - icon_state = "hair_braidfront" - -/datum/sprite_accessory/hair/not_floorlength_braid - name = "Braid (High)" - icon_state = "hair_braid2" - -/datum/sprite_accessory/hair/lowbraid - name = "Braid (Low)" - icon_state = "hair_hbraid" - -/datum/sprite_accessory/hair/shortbraid - name = "Braid (Short)" - icon_state = "hair_shortbraid" - -/datum/sprite_accessory/hair/braidtail - name = "Braided Tail" - icon_state = "hair_braidtail" - -/datum/sprite_accessory/hair/bun - name = "Bun Head" - icon_state = "hair_bun" - -/datum/sprite_accessory/hair/bun2 - name = "Bun Head 2" - icon_state = "hair_bunhead2" - -/datum/sprite_accessory/hair/largebun - name = "Bun (Large)" - icon_state = "hair_largebun" - -/datum/sprite_accessory/hair/business - name = "Business Hair" - icon_state = "hair_business" - -/datum/sprite_accessory/hair/business2 - name = "Business Hair 2" - icon_state = "hair_business2" - -/datum/sprite_accessory/hair/business3 - name = "Business Hair 3" - icon_state = "hair_business3" - -/datum/sprite_accessory/hair/business4 - name = "Business Hair 4" - icon_state = "hair_business4" - -/datum/sprite_accessory/hair/buzz - name = "Buzzcut" - icon_state = "hair_buzzcut" - -/datum/sprite_accessory/hair/combover - name = "Combover" - icon_state = "hair_combover" - -/datum/sprite_accessory/hair/crew - name = "Crewcut" - icon_state = "hair_crewcut" - -/datum/sprite_accessory/hair/curls - name = "Curls" - icon_state = "hair_curls" - -/datum/sprite_accessory/hair/cut - name = "Cut Hair" - icon_state = "hair_c" - -/datum/sprite_accessory/hair/devillock - name = "Devil Lock" - icon_state = "hair_devilock" - -/datum/sprite_accessory/hair/dreadlocks - name = "Dreadlocks" - icon_state = "hair_dreads" - -/datum/sprite_accessory/hair/drillhair - name = "Drill Hair" - icon_state = "hair_drillhair" - -/datum/sprite_accessory/hair/drillhairextended - name = "Drill Hair (Extended)" - icon_state = "hair_drillhairextended" - -/datum/sprite_accessory/hair/emo - name = "Emo" - icon_state = "hair_emo" - -/datum/sprite_accessory/hair/feather - name = "Feather" - icon_state = "hair_feather" - -/datum/sprite_accessory/hair/sargeant - name = "Flat Top" - icon_state = "hair_sargeant" - -/datum/sprite_accessory/hair/bigflattop - name = "Flat Top (Big)" - icon_state = "hair_bigflattop" - -/datum/sprite_accessory/hair/fag - name = "Flow Hair" - icon_state = "hair_f" - -/datum/sprite_accessory/hair/gelled - name = "Gelled Back" - icon_state = "hair_gelled" - -/datum/sprite_accessory/hair/gentle - name = "Gentle" - icon_state = "hair_gentle" - -/datum/sprite_accessory/hair/halfbang - name = "Half-banged Hair" - icon_state = "hair_halfbang" - -/datum/sprite_accessory/hair/halfbang2 - name = "Half-banged Hair 2" - icon_state = "hair_halfbang2" - -/datum/sprite_accessory/hair/hedgehog - name = "Hedgehog Hair" - icon_state = "hair_hedgehog" - -/datum/sprite_accessory/hair/himecut - name = "Hime Cut" - icon_state = "hair_himecut" - -/datum/sprite_accessory/hair/himecut2 - name = "Hime Cut 2" - icon_state = "hair_himecut2" - -/datum/sprite_accessory/hair/himeup - name = "Hime Updo" - icon_state = "hair_himeup" - -/datum/sprite_accessory/hair/hitop - name = "Hitop" - icon_state = "hair_hitop" - -/datum/sprite_accessory/hair/jensen - name = "Jensen Hair" - icon_state = "hair_jensen" - -/datum/sprite_accessory/hair/keanu - name = "Keanu Hair" - icon_state = "hair_keanu" - -/datum/sprite_accessory/hair/kusangi - name = "Kusanagi Hair" - icon_state = "hair_kusanagi" - -/datum/sprite_accessory/hair/long - name = "Long Hair 1" - icon_state = "hair_long" - -/datum/sprite_accessory/hair/long2 - name = "Long Hair 2" - icon_state = "hair_long2" - -/datum/sprite_accessory/hair/long3 - name = "Long Hair 3" - icon_state = "hair_long3" - -/datum/sprite_accessory/hair/long_over_eye - name = "Long Over Eye" - icon_state = "hair_longovereye" - -/datum/sprite_accessory/hair/longbangs - name = "Long Bangs" - icon_state = "hair_lbangs" - -/datum/sprite_accessory/hair/longemo - name = "Long Emo" - icon_state = "hair_longemo" - -/datum/sprite_accessory/hair/longfringe - name = "Long Fringe" - icon_state = "hair_longfringe" - -/datum/sprite_accessory/hair/sidepartlongalt - name = "Long Side Part" - icon_state = "hair_longsidepart" - -/datum/sprite_accessory/hair/megaeyebrows - name = "Mega Eyebrows" - icon_state = "hair_megaeyebrows" - -/datum/sprite_accessory/hair/messy - name = "Messy" - icon_state = "hair_messy" - -/datum/sprite_accessory/hair/mohawk - name = "Mohawk" - icon_state = "hair_d" - -/datum/sprite_accessory/hair/reversemohawk - name = "Mohawk (Reverse)" - icon_state = "hair_reversemohawk" - -/datum/sprite_accessory/hair/odango - name = "Odango" - icon_state = "hair_odango" - -/datum/sprite_accessory/hair/ombre - name = "Ombre" - icon_state = "hair_ombre" - -/datum/sprite_accessory/hair/oneshoulder - name = "One Shoulder" - icon_state = "hair_oneshoulder" - -/datum/sprite_accessory/hair/over_eye - name = "Over Eye" - icon_state = "hair_shortovereye" - -//Donator item - fractious -/datum/sprite_accessory/hair/over_eye_fr - name = "Over Eye (fract)" - icon_state = "hair_shortovereye_1f" - ckeys_allowed = list("fractious") - -/datum/sprite_accessory/hair/parted - name = "Parted" - icon_state = "hair_parted" - -/datum/sprite_accessory/hair/partedside - name = "Parted (Side)" - icon_state = "hair_part" - -/datum/sprite_accessory/hair/kagami - name = "Pigtails" - icon_state = "hair_kagami" - -/datum/sprite_accessory/hair/pigtail - name = "Pigtails 2" - icon_state = "hair_pigtails" - -/datum/sprite_accessory/hair/pigtail2 - name = "Pigtails 3" - icon_state = "hair_pigtails2" - -/datum/sprite_accessory/hair/pixie - name = "Pixie Cut" - icon_state = "hair_pixie" - -/datum/sprite_accessory/hair/pompadour - name = "Pompadour" - icon_state = "hair_pompadour" - -/datum/sprite_accessory/hair/bigpompadour - name = "Pompadour (Big)" - icon_state = "hair_bigpompadour" - -/datum/sprite_accessory/hair/ponytail1 - name = "Ponytail" - icon_state = "hair_ponytail" - -/datum/sprite_accessory/hair/ponytail2 - name = "Ponytail 2" - icon_state = "hair_ponytail2" - -/datum/sprite_accessory/hair/ponytail3 - name = "Ponytail 3" - icon_state = "hair_ponytail3" - -/datum/sprite_accessory/hair/ponytail4 - name = "Ponytail 4" - icon_state = "hair_ponytail4" - -/datum/sprite_accessory/hair/ponytail5 - name = "Ponytail 5" - icon_state = "hair_ponytail5" - -/datum/sprite_accessory/hair/highponytail - name = "Ponytail (High)" - icon_state = "hair_highponytail" - -/datum/sprite_accessory/hair/longponytail - name = "Ponytail (Long)" - icon_state = "hair_longstraightponytail" - -/datum/sprite_accessory/hair/sidetail - name = "Ponytail (Side)" - icon_state = "hair_sidetail" - -/datum/sprite_accessory/hair/sidetail2 - name = "Ponytail (Side) 2" - icon_state = "hair_sidetail2" - -/datum/sprite_accessory/hair/sidetail3 - name = "Ponytail (Side) 3" - icon_state = "hair_sidetail3" - -/datum/sprite_accessory/hair/sidetail4 - name = "Ponytail (Side) 4" - icon_state = "hair_sidetail4" - -/datum/sprite_accessory/hair/quiff - name = "Quiff" - icon_state = "hair_quiff" - -/datum/sprite_accessory/hair/short - name = "Short Hair" - icon_state = "hair_a" - -/datum/sprite_accessory/hair/shorthair2 - name = "Short Hair 2" - icon_state = "hair_shorthair2" - -/datum/sprite_accessory/hair/shorthair3 - name = "Short Hair 3" - icon_state = "hair_shorthair3" - -/datum/sprite_accessory/hair/shoulderlength - name = "Shoulder-length Hair" - icon_state = "hair_b" - -/datum/sprite_accessory/hair/sidecut - name = "Sidecut" - icon_state = "hair_sidecut" - -/datum/sprite_accessory/hair/skinhead - name = "Skinhead" - icon_state = "hair_skinhead" - -/datum/sprite_accessory/hair/protagonist - name = "Slightly Long Hair" - icon_state = "hair_protagonist" - -/datum/sprite_accessory/hair/spiky - name = "Spiky" - icon_state = "hair_spikey" - -/datum/sprite_accessory/hair/spiky2 - name = "Spiky 2" - icon_state = "hair_spiky" - -/datum/sprite_accessory/hair/spiky3 - name = "Spiky 3" - icon_state = "hair_spiky2" - -/datum/sprite_accessory/hair/swept - name = "Swept Back Hair" - icon_state = "hair_swept" - -/datum/sprite_accessory/hair/swept2 - name = "Swept Back Hair 2" - icon_state = "hair_swept2" - -/datum/sprite_accessory/hair/tressshoulder - name = "Tress Shoulder" - icon_state = "hair_tressshoulder" - -/datum/sprite_accessory/hair/updo - name = "Updo" - icon_state = "hair_updo" - -/datum/sprite_accessory/hair/longer - name = "Very Long Hair" - icon_state = "hair_vlong" - -/datum/sprite_accessory/hair/longest - name = "Very Long Hair 2" - icon_state = "hair_longest" - -/datum/sprite_accessory/hair/longest2 - name = "Very Long Over Eye" - icon_state = "hair_longest2" - -/datum/sprite_accessory/hair/longestalt - name = "Very Long with Fringe" - icon_state = "hair_vlongfringe" - -///////////////////////////// -// Facial Hair Definitions // -///////////////////////////// - -/datum/sprite_accessory/facial_hair - icon = 'icons/mob/human_face.dmi' - gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P) - -// please make sure they're sorted alphabetically and categorized - -/datum/sprite_accessory/facial_hair/abe - name = "Beard (Abraham Lincoln)" - icon_state = "facial_abe" - -/datum/sprite_accessory/facial_hair/brokenman - name = "Beard (Broken Man)" - icon_state = "facial_brokenman" - -/datum/sprite_accessory/facial_hair/chinstrap - name = "Beard (Chinstrap)" - icon_state = "facial_chin" - -/datum/sprite_accessory/facial_hair/dwarf - name = "Beard (Dwarf)" - icon_state = "facial_dwarf" - -/datum/sprite_accessory/facial_hair/fiveoclock - name = "Beard (Five o Clock Shadow)" - icon_state = "facial_fiveoclock" - -/datum/sprite_accessory/facial_hair/fullbeard - name = "Beard (Full)" - icon_state = "facial_fullbeard" - -/datum/sprite_accessory/facial_hair/gt - name = "Beard (Goatee)" - icon_state = "facial_gt" - -/datum/sprite_accessory/facial_hair/hip - name = "Beard (Hipster)" - icon_state = "facial_hip" - -/datum/sprite_accessory/facial_hair/jensen - name = "Beard (Jensen)" - icon_state = "facial_jensen" - -/datum/sprite_accessory/facial_hair/neckbeard - name = "Beard (Neckbeard)" - icon_state = "facial_neckbeard" - -/datum/sprite_accessory/facial_hair/vlongbeard - name = "Beard (Very Long)" - icon_state = "facial_wise" - -/datum/sprite_accessory/facial_hair/longbeard - name = "Beard (Long)" - icon_state = "facial_longbeard" - -/datum/sprite_accessory/facial_hair/fu - name = "Moustache (Fu Manchu)" - icon_state = "facial_fumanchu" - -/datum/sprite_accessory/facial_hair/hogan - name = "Moustache (Hulk Hogan)" - icon_state = "facial_hogan" //-Neek - -/datum/sprite_accessory/facial_hair/selleck - name = "Moustache (Selleck)" - icon_state = "facial_selleck" - -/datum/sprite_accessory/facial_hair/chaplin - name = "Moustache (Square)" - icon_state = "facial_chaplin" - -/datum/sprite_accessory/facial_hair/vandyke - name = "Moustache (Van Dyke)" - icon_state = "facial_vandyke" - -/datum/sprite_accessory/facial_hair/watson - name = "Moustache (Watson)" - icon_state = "facial_watson" - -/datum/sprite_accessory/facial_hair/shaved - name = "Shaved" - icon_state = null - gender = NEUTER - -/datum/sprite_accessory/facial_hair/elvis - name = "Sideburns (Elvis)" - icon_state = "facial_elvis" - - -/////////////////////////// -// Underwear Definitions // -/////////////////////////// -/datum/sprite_accessory/underwear - icon = 'icons/mob/underwear.dmi' - -/datum/sprite_accessory/underwear/nude - name = "Nude" - icon_state = null - gender = NEUTER - -/datum/sprite_accessory/underwear/male_mankini - name = "Mankini" - icon_state = "male_mankini" - gender = MALE - -/datum/sprite_accessory/underwear/male_black - name = "Men's Black" - icon_state = "male_black" - gender = MALE - -/datum/sprite_accessory/underwear/male_blackalt - name = "Men's Black Boxer" - icon_state = "male_blackalt" - gender = MALE - -/datum/sprite_accessory/underwear/male_blue - name = "Men's Blue" - icon_state = "male_blue" - gender = MALE - -/datum/sprite_accessory/underwear/male_green - name = "Men's Green" - icon_state = "male_green" - gender = MALE - -/datum/sprite_accessory/underwear/male_grey - name = "Men's Grey" - icon_state = "male_grey" - gender = MALE - -/datum/sprite_accessory/underwear/male_greyalt - name = "Men's Grey Boxer" - icon_state = "male_greyalt" - gender = MALE - -/datum/sprite_accessory/underwear/male_hearts - name = "Men's Hearts Boxer" - icon_state = "male_hearts" - gender = MALE - -/datum/sprite_accessory/underwear/male_kinky - name = "Men's Kinky" - icon_state = "male_kinky" - gender = MALE - -/datum/sprite_accessory/underwear/male_red - name = "Men's Red" - icon_state = "male_red" - gender = MALE - -/datum/sprite_accessory/underwear/male_stripe - name = "Men's Striped Boxer" - icon_state = "male_stripe" - gender = MALE - -/datum/sprite_accessory/underwear/male_commie - name = "Men's Striped Commie Boxer" - icon_state = "male_commie" - gender = MALE - -/datum/sprite_accessory/underwear/male_usastripe - name = "Men's Striped Freedom Boxer" - icon_state = "male_assblastusa" - gender = MALE - -/datum/sprite_accessory/underwear/male_uk - name = "Men's Striped UK Boxer" - icon_state = "male_uk" - gender = MALE - -/datum/sprite_accessory/underwear/male_white - name = "Men's White" - icon_state = "male_white" - gender = MALE - -/datum/sprite_accessory/underwear/female_babydoll - name = "Babydoll" - icon_state = "female_babydoll" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_babyblue - name = "Ladies' Baby-Blue" - icon_state = "female_babyblue" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_black - name = "Ladies' Black" - icon_state = "female_black" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_black_neko - name = "Ladies' Black Neko" - icon_state = "female_neko_black" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_blackalt - name = "Ladies' Black Sport" - icon_state = "female_blackalt" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_blue - name = "Ladies' Blue" - icon_state = "female_blue" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_commie - name = "Ladies' Commie" - icon_state = "female_commie" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_usastripe - name = "Ladies' Freedom" - icon_state = "female_assblastusa" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_green - name = "Ladies' Green" - icon_state = "female_green" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_kinky - name = "Ladies' Kinky" - icon_state = "female_kinky" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_pink - name = "Ladies' Pink" - icon_state = "female_pink" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_red - name = "Ladies' Red" - icon_state = "female_red" - gender = FEMALE - -/datum/sprite_accessory/underwear/swimsuit - name = "Ladies' Swimsuit (Black)" - icon_state = "swim_black" - gender = FEMALE - -/datum/sprite_accessory/underwear/swimsuit_blue - name = "Ladies' Swimsuit (Blue)" - icon_state = "swim_blue" - gender = FEMALE - -/datum/sprite_accessory/underwear/swimsuit_green - name = "Ladies' Swimsuit (Green)" - icon_state = "swim_green" - gender = FEMALE - -/datum/sprite_accessory/underwear/swimsuit_purple - name = "Ladies' Swimsuit (Purple)" - icon_state = "swim_purple" - gender = FEMALE - -/datum/sprite_accessory/underwear/swimsuit_red - name = "Ladies' Swimsuit (Red)" - icon_state = "swim_red" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_thong - name = "Ladies' Thong" - icon_state = "female_thong" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_uk - name = "Ladies' UK" - icon_state = "female_uk" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_white - name = "Ladies' White" - icon_state = "female_white" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_white_neko - name = "Ladies' White Neko" - icon_state = "female_neko_white" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_whitealt - name = "Ladies' White Sport" - icon_state = "female_whitealt" - gender = FEMALE - -/datum/sprite_accessory/underwear/female_yellow - name = "Ladies' Yellow" - icon_state = "female_yellow" - gender = FEMALE - -//////////////////////////// -// Undershirt Definitions // -//////////////////////////// - -/datum/sprite_accessory/undershirt - icon = 'icons/mob/underwear.dmi' - -/datum/sprite_accessory/undershirt/nude - name = "Nude" - icon_state = null - gender = NEUTER - -// please make sure they're sorted alphabetically and categorized - -/datum/sprite_accessory/undershirt/bluejersey - name = "Jersey (Blue)" - icon_state = "shirt_bluejersey" - gender = NEUTER - -/datum/sprite_accessory/undershirt/redjersey - name = "Jersey (Red)" - icon_state = "shirt_redjersey" - gender = NEUTER - -/datum/sprite_accessory/undershirt/bluepolo - name = "Polo Shirt (Blue)" - icon_state = "bluepolo" - gender = NEUTER - -/datum/sprite_accessory/undershirt/grayyellowpolo - name = "Polo Shirt (Gray-Yellow)" - icon_state = "grayyellowpolo" - gender = NEUTER - -/datum/sprite_accessory/undershirt/redpolo - name = "Polo Shirt (Red)" - icon_state = "redpolo" - gender = NEUTER - -/datum/sprite_accessory/undershirt/whitepolo - name = "Polo Shirt (White)" - icon_state = "whitepolo" - gender = NEUTER - -/datum/sprite_accessory/undershirt/alienshirt - name = "Shirt (Alien)" - icon_state = "shirt_alien" - gender = NEUTER - -/datum/sprite_accessory/undershirt/mondmondjaja - name = "Shirt (Band)" - icon_state = "band" - gender = NEUTER - -/datum/sprite_accessory/undershirt/shirt_black - name = "Shirt (Black)" - icon_state = "shirt_black" - gender = NEUTER - -/datum/sprite_accessory/undershirt/blueshirt - name = "Shirt (Blue)" - icon_state = "shirt_blue" - gender = NEUTER - -/datum/sprite_accessory/undershirt/clownshirt - name = "Shirt (Clown)" - icon_state = "shirt_clown" - gender = NEUTER - -/datum/sprite_accessory/undershirt/commie - name = "Shirt (Commie)" - icon_state = "shirt_commie" - gender = NEUTER - -/datum/sprite_accessory/undershirt/greenshirt - name = "Shirt (Green)" - icon_state = "shirt_green" - gender = NEUTER - -/datum/sprite_accessory/undershirt/shirt_grey - name = "Shirt (Grey)" - icon_state = "shirt_grey" - gender = NEUTER - -/datum/sprite_accessory/undershirt/ian - name = "Shirt (Ian)" - icon_state = "ian" - gender = NEUTER - -/datum/sprite_accessory/undershirt/ilovent - name = "Shirt (I Love NT)" - icon_state = "ilovent" - gender = NEUTER - -/datum/sprite_accessory/undershirt/lover - name = "Shirt (Lover)" - icon_state = "lover" - gender = NEUTER - -/datum/sprite_accessory/undershirt/matroska - name = "Shirt (Matroska)" - icon_state = "matroska" - gender = NEUTER - -/datum/sprite_accessory/undershirt/meat - name = "Shirt (Meat)" - icon_state = "shirt_meat" - gender = NEUTER - -/datum/sprite_accessory/undershirt/nano - name = "Shirt (Nanotrasen)" - icon_state = "shirt_nano" - gender = NEUTER - -/datum/sprite_accessory/undershirt/peace - name = "Shirt (Peace)" - icon_state = "peace" - gender = NEUTER - -/datum/sprite_accessory/undershirt/pacman - name = "Shirt (Pogoman)" - icon_state = "pogoman" - gender = NEUTER - -/datum/sprite_accessory/undershirt/question - name = "Shirt (Question)" - icon_state = "shirt_question" - gender = NEUTER - -/datum/sprite_accessory/undershirt/redshirt - name = "Shirt (Red)" - icon_state = "shirt_red" - gender = NEUTER - -/datum/sprite_accessory/undershirt/skull - name = "Shirt (Skull)" - icon_state = "shirt_skull" - gender = NEUTER - -/datum/sprite_accessory/undershirt/ss13 - name = "Shirt (SS13)" - icon_state = "shirt_ss13" - gender = NEUTER - -/datum/sprite_accessory/undershirt/stripe - name = "Shirt (Striped)" - icon_state = "shirt_stripes" - gender = NEUTER - -/datum/sprite_accessory/undershirt/tiedye - name = "Shirt (Tie-dye)" - icon_state = "shirt_tiedye" - gender = NEUTER - -/datum/sprite_accessory/undershirt/uk - name = "Shirt (UK)" - icon_state = "uk" - gender = NEUTER - -/datum/sprite_accessory/undershirt/usa - name = "Shirt (USA)" - icon_state = "shirt_assblastusa" - gender = NEUTER - -/datum/sprite_accessory/undershirt/shirt_white - name = "Shirt (White)" - icon_state = "shirt_white" - gender = NEUTER - -/datum/sprite_accessory/undershirt/blackshortsleeve - name = "Short-sleeved Shirt (Black)" - icon_state = "blackshortsleeve" - gender = NEUTER - -/datum/sprite_accessory/undershirt/blueshortsleeve - name = "Short-sleeved Shirt (Blue)" - icon_state = "blueshortsleeve" - gender = NEUTER - -/datum/sprite_accessory/undershirt/greenshortsleeve - name = "Short-sleeved Shirt (Green)" - icon_state = "greenshortsleeve" - gender = NEUTER - -/datum/sprite_accessory/undershirt/purpleshortsleeve - name = "Short-sleeved Shirt (Purple)" - icon_state = "purpleshortsleeve" - gender = NEUTER - -/datum/sprite_accessory/undershirt/whiteshortsleeve - name = "Short-sleeved Shirt (White)" - icon_state = "whiteshortsleeve" - gender = NEUTER - -/datum/sprite_accessory/undershirt/sports_bra - name = "Sports Bra" - icon_state = "sports_bra" - gender = NEUTER - -/datum/sprite_accessory/undershirt/sports_bra2 - name = "Sports Bra (Alt)" - icon_state = "sports_bra_alt" - gender = NEUTER - -/datum/sprite_accessory/undershirt/blueshirtsport - name = "Sports Shirt (Blue)" - icon_state = "blueshirtsport" - gender = NEUTER - -/datum/sprite_accessory/undershirt/greenshirtsport - name = "Sports Shirt (Green)" - icon_state = "greenshirtsport" - gender = NEUTER - -/datum/sprite_accessory/undershirt/redshirtsport - name = "Sports Shirt (Red)" - icon_state = "redshirtsport" - gender = NEUTER - -/datum/sprite_accessory/undershirt/tank_black - name = "Tank Top (Black)" - icon_state = "tank_black" - gender = NEUTER - -/datum/sprite_accessory/undershirt/tankfire - name = "Tank Top (Fire)" - icon_state = "tank_fire" - gender = NEUTER - -/datum/sprite_accessory/undershirt/tank_grey - name = "Tank Top (Grey)" - icon_state = "tank_grey" - gender = NEUTER - -/datum/sprite_accessory/undershirt/female_midriff - name = "Tank Top (Midriff)" - icon_state = "tank_midriff" - gender = FEMALE - -/datum/sprite_accessory/undershirt/tank_red - name = "Tank Top (Red)" - icon_state = "tank_red" - gender = NEUTER - -/datum/sprite_accessory/undershirt/tankstripe - name = "Tank Top (Striped)" - icon_state = "tank_stripes" - gender = NEUTER - -/datum/sprite_accessory/undershirt/tank_white - name = "Tank Top (White)" - icon_state = "tank_white" - gender = NEUTER - -/datum/sprite_accessory/undershirt/redtop - name = "Top (Red)" - icon_state = "redtop" - gender = FEMALE - -/datum/sprite_accessory/undershirt/whitetop - name = "Top (White)" - icon_state = "whitetop" - gender = FEMALE - -/datum/sprite_accessory/undershirt/tshirt_blue - name = "T-Shirt (Blue)" - icon_state = "blueshirt" - gender = NEUTER - -/datum/sprite_accessory/undershirt/tshirt_green - name = "T-Shirt (Green)" - icon_state = "greenshirt" - gender = NEUTER - -/datum/sprite_accessory/undershirt/tshirt_red - name = "T-Shirt (Red)" - icon_state = "redshirt" - gender = NEUTER - -/datum/sprite_accessory/undershirt/yellowshirt - name = "T-Shirt (Yellow)" - icon_state = "yellowshirt" - gender = NEUTER - -/////////////////////// -// Socks Definitions // -/////////////////////// - -/datum/sprite_accessory/socks - icon = 'icons/mob/underwear.dmi' - -/datum/sprite_accessory/socks/nude - name = "Nude" - icon_state = null - -// please make sure they're sorted alphabetically and categorized - -/datum/sprite_accessory/socks/black_knee - name = "Knee-high (Black)" - icon_state = "black_knee" - -/datum/sprite_accessory/socks/commie_knee - name = "Knee-High (Commie)" - icon_state = "commie_knee" - -/datum/sprite_accessory/socks/usa_knee - name = "Knee-High (Freedom)" - icon_state = "assblastusa_knee" - -/datum/sprite_accessory/socks/rainbow_knee - name = "Knee-high (Rainbow)" - icon_state = "rainbow_knee" - -/datum/sprite_accessory/socks/striped_knee - name = "Knee-high (Striped)" - icon_state = "striped_knee" - -/datum/sprite_accessory/socks/thin_knee - name = "Knee-high (Thin)" - icon_state = "thin_knee" - -/datum/sprite_accessory/socks/uk_knee - name = "Knee-High (UK)" - icon_state = "uk_knee" - -/datum/sprite_accessory/socks/white_knee - name = "Knee-high (White)" - icon_state = "white_knee" - -/datum/sprite_accessory/socks/black_norm - name = "Normal (Black)" - icon_state = "black_norm" - -/datum/sprite_accessory/socks/white_norm - name = "Normal (White)" - icon_state = "white_norm" - -/datum/sprite_accessory/socks/pantyhose - name = "Pantyhose" - icon_state = "pantyhose" - -/datum/sprite_accessory/socks/black_short - name = "Short (Black)" - icon_state = "black_short" - -/datum/sprite_accessory/socks/white_short - name = "Short (White)" - icon_state = "white_short" - -/datum/sprite_accessory/socks/black_thigh - name = "Thigh-high (Black)" - icon_state = "black_thigh" - -/datum/sprite_accessory/socks/commie_thigh - name = "Thigh-high (Commie)" - icon_state = "commie_thigh" - -/datum/sprite_accessory/socks/usa_thigh - name = "Thigh-high (Freedom)" - icon_state = "assblastusa_thigh" - -/datum/sprite_accessory/socks/rainbow_thigh - name = "Thigh-high (Rainbow)" - icon_state = "rainbow_thigh" - -/datum/sprite_accessory/socks/striped_thigh - name = "Thigh-high (Striped)" - icon_state = "striped_thigh" - -/datum/sprite_accessory/socks/thin_thigh - name = "Thigh-high (Thin)" - icon_state = "thin_thigh" - -/datum/sprite_accessory/socks/uk_thigh - name = "Thigh-high (UK)" - icon_state = "uk_thigh" - -/datum/sprite_accessory/socks/white_thigh - name = "Thigh-high (White)" - icon_state = "white_thigh" - -//////////.////////////////// -// MutantParts Definitions // -///////////////////////////// - -/datum/sprite_accessory/body_markings - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/body_markings/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/body_markings/dtiger - name = "Dark Tiger Body" - icon_state = "dtiger" - gender_specific = 1 - -/datum/sprite_accessory/body_markings/ltiger - name = "Light Tiger Body" - icon_state = "ltiger" - gender_specific = 1 - -/datum/sprite_accessory/body_markings/lbelly - name = "Light Belly" - icon_state = "lbelly" - gender_specific = 1 - -/datum/sprite_accessory/tails - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/tails_animated - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/tails/lizard/smooth - name = "Smooth" - icon_state = "smooth" - -/datum/sprite_accessory/tails_animated/lizard/smooth - name = "Smooth" - icon_state = "smooth" - -/datum/sprite_accessory/tails/lizard/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - -/datum/sprite_accessory/tails_animated/lizard/dtiger - name = "Dark Tiger" - icon_state = "dtiger" - -/datum/sprite_accessory/tails/lizard/ltiger - name = "Light Tiger" - icon_state = "ltiger" - -/datum/sprite_accessory/tails_animated/lizard/ltiger - name = "Light Tiger" - icon_state = "ltiger" - -/datum/sprite_accessory/tails/lizard/spikes - name = "Spikes" - icon_state = "spikes" - -/datum/sprite_accessory/tails_animated/lizard/spikes - name = "Spikes" - icon_state = "spikes" - -/datum/sprite_accessory/tails/human/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/tails_animated/human/none - name = "None" - icon_state = "none" -/* -/datum/sprite_accessory/tails/human/cat - name = "Cat" - icon_state = "cat" - color_src = HAIR - -/datum/sprite_accessory/tails_animated/human/cat - name = "Cat" - icon_state = "cat" - color_src = HAIR*/ - -/datum/sprite_accessory/snouts - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/snouts/sharp - name = "Sharp" - icon_state = "sharp" - -/datum/sprite_accessory/snouts/round - name = "Round" - icon_state = "round" - -/datum/sprite_accessory/snouts/sharplight - name = "Sharp + Light" - icon_state = "sharplight" - -/datum/sprite_accessory/snouts/roundlight - name = "Round + Light" - icon_state = "roundlight" - -/datum/sprite_accessory/horns - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/horns/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/horns/simple - name = "Simple" - icon_state = "simple" - -/datum/sprite_accessory/horns/short - name = "Short" - icon_state = "short" - -/datum/sprite_accessory/horns/curled - name = "Curled" - icon_state = "curled" - -/datum/sprite_accessory/horns/ram - name = "Ram" - icon_state = "ram" - -/datum/sprite_accessory/horns/angler - name = "Angeler" - icon_state = "angler" - -/datum/sprite_accessory/ears - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/ears/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/ears/cat - name = "Cat" - icon_state = "cat" - hasinner = 1 - color_src = HAIR - -/datum/sprite_accessory/wings/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/wings_open - icon = 'icons/mob/wings.dmi' - -/datum/sprite_accessory/wings_open/angel - name = "Angel" - icon_state = "angel" - color_src = 0 - dimension_x = 46 - center = TRUE - dimension_y = 34 - -/datum/sprite_accessory/wings - icon = 'icons/mob/wings.dmi' - -/datum/sprite_accessory/wings/angel - name = "Angel" - icon_state = "angel" - color_src = 0 - dimension_x = 46 - center = TRUE - dimension_y = 34 - locked = TRUE - -/datum/sprite_accessory/frills - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/frills/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/frills/simple - name = "Simple" - icon_state = "simple" - -/datum/sprite_accessory/frills/short - name = "Short" - icon_state = "short" - -/datum/sprite_accessory/frills/aquatic - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/spines - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/spines_animated - icon = 'icons/mob/mutant_bodyparts.dmi' - -/datum/sprite_accessory/spines/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/spines_animated/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/spines/short - name = "Short" - icon_state = "short" - -/datum/sprite_accessory/spines_animated/short - name = "Short" - icon_state = "short" - -/datum/sprite_accessory/spines/shortmeme - name = "Short + Membrane" - icon_state = "shortmeme" - -/datum/sprite_accessory/spines_animated/shortmeme - name = "Short + Membrane" - icon_state = "shortmeme" - -/datum/sprite_accessory/spines/long - name = "Long" - icon_state = "long" - -/datum/sprite_accessory/spines_animated/long - name = "Long" - icon_state = "long" - -/datum/sprite_accessory/spines/longmeme - name = "Long + Membrane" - icon_state = "longmeme" - -/datum/sprite_accessory/spines_animated/longmeme - name = "Long + Membrane" - icon_state = "longmeme" - -/datum/sprite_accessory/spines/aqautic - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/spines_animated/aqautic - name = "Aquatic" - icon_state = "aqua" - -/datum/sprite_accessory/legs //legs are a special case, they aren't actually sprite_accessories but are updated with them. - icon = null //These datums exist for selecting legs on preference, and little else - -/datum/sprite_accessory/legs/none - name = "Normal Legs" - -/datum/sprite_accessory/legs/digitigrade_lizard - name = "Digitigrade Legs" - -/datum/sprite_accessory/caps - icon = 'icons/mob/mutant_bodyparts.dmi' - color_src = HAIR - -/datum/sprite_accessory/caps/round - name = "Round" - icon_state = "round" - -/datum/sprite_accessory/moth_wings - icon = 'icons/mob/wings.dmi' - color_src = null - -/datum/sprite_accessory/moth_wings/plain - name = "Plain" - icon_state = "plain" - -/datum/sprite_accessory/moth_wings/monarch - name = "Monarch" - icon_state = "monarch" - -/datum/sprite_accessory/moth_wings/luna - name = "Luna" - icon_state = "luna" - -/datum/sprite_accessory/moth_wings/atlas - name = "Atlas" - icon_state = "atlas" - -/datum/sprite_accessory/moth_wings/reddish - name = "Reddish" - icon_state = "redish" - -/datum/sprite_accessory/moth_wings/royal - name = "Royal" - icon_state = "royal" - -/datum/sprite_accessory/moth_wings/gothic - name = "Gothic" - icon_state = "gothic" - -/datum/sprite_accessory/moth_wings/lovers - name = "Lovers" - icon_state = "lovers" - -/datum/sprite_accessory/moth_wings/whitefly - name = "White Fly" - icon_state = "whitefly" - -/datum/sprite_accessory/moth_wings/punished - name = "Burnt Off" - icon_state = "punished" - locked = TRUE - -/datum/sprite_accessory/moth_wings/firewatch - name = "Firewatch" - icon_state = "firewatch" - -/datum/sprite_accessory/moth_wings/deathhead - name = "Deathshead" - icon_state = "deathhead" - -/datum/sprite_accessory/moth_wings/poison - name = "Poison" - icon_state = "poison" - -/datum/sprite_accessory/moth_wings/ragged - name = "Ragged" - icon_state = "ragged" - -/datum/sprite_accessory/moth_wings/moonfly - name = "Moon Fly" - icon_state = "moonfly" - -/datum/sprite_accessory/moth_wings/snow - name = "Snow" - icon_state = "snow" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm new file mode 100644 index 0000000000..699c3c97e4 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/_sprite_accessories.dm @@ -0,0 +1,62 @@ +/* + + Hello and welcome to sprite_accessories: For sprite accessories, such as hair, + facial hair, and possibly tattoos and stuff somewhere along the line. This file is + intended to be friendly for people with little to no actual coding experience. + The process of adding in new hairstyles has been made pain-free and easy to do. + Enjoy! - Doohl + + + Notice: This all gets automatically compiled in a list in dna.dm, so you do not + have to define any UI values for sprite accessories manually for hair and facial + hair. Just add in new hair types and the game will naturally adapt. + + !!WARNING!!: changing existing hair information can be VERY hazardous to savefiles, + to the point where you may completely corrupt a server's savefiles. Please refrain + from doing this unless you absolutely know what you are doing, and have defined a + conversion in savefile.dm +*/ +/proc/init_sprite_accessory_subtypes(prototype, list/L, list/male, list/female,var/roundstart = FALSE)//Roundstart argument builds a specific list for roundstart parts where some parts may be locked + if(!istype(L)) + L = list() + if(!istype(male)) + male = list() + if(!istype(female)) + female = list() + + for(var/path in typesof(prototype)) + if(path == prototype) + continue + if(roundstart) + var/datum/sprite_accessory/P = path + if(initial(P.locked)) + continue + var/datum/sprite_accessory/D = new path() + + if(D.icon_state) + L[D.name] = D + else + L += D.name + + switch(D.gender) + if(MALE) + male += D.name + if(FEMALE) + female += D.name + else + male += D.name + female += D.name + return L + +/datum/sprite_accessory + var/icon //the icon file the accessory is located in + var/icon_state //the icon_state of the accessory + var/name //the preview name of the accessory + var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations + var/gender_specific //Something that can be worn by either gender, but looks different on each + var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none. + var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears. + var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects + var/dimension_x = 32 + var/dimension_y = 32 + var/center = FALSE //Should we center the sprite? \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm new file mode 100644 index 0000000000..6bce18d7ce --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/body_markings.dm @@ -0,0 +1,25 @@ +//////////.////////////////// +// MutantParts Definitions // +///////////////////////////// + +/datum/sprite_accessory/body_markings + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/body_markings/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/body_markings/dtiger + name = "Dark Tiger Body" + icon_state = "dtiger" + gender_specific = 1 + +/datum/sprite_accessory/body_markings/ltiger + name = "Light Tiger Body" + icon_state = "ltiger" + gender_specific = 1 + +/datum/sprite_accessory/body_markings/lbelly + name = "Light Belly" + icon_state = "lbelly" + gender_specific = 1 \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/caps.dm b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm new file mode 100644 index 0000000000..debb4865ba --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/caps.dm @@ -0,0 +1,7 @@ +datum/sprite_accessory/caps + icon = 'icons/mob/mutant_bodyparts.dmi' + color_src = HAIR + +/datum/sprite_accessory/caps/round + name = "Round" + icon_state = "round" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm new file mode 100644 index 0000000000..163f8370a2 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -0,0 +1,12 @@ +/datum/sprite_accessory/ears + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/ears/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/ears/cat + name = "Cat" + icon_state = "cat" + hasinner = 1 + color_src = HAIR \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/frills.dm b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm new file mode 100644 index 0000000000..93c4af6df0 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/frills.dm @@ -0,0 +1,18 @@ +/datum/sprite_accessory/frills + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/frills/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/frills/simple + name = "Simple" + icon_state = "simple" + +/datum/sprite_accessory/frills/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/frills/aquatic + name = "Aquatic" + icon_state = "aqua" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm new file mode 100644 index 0000000000..3566f3dea5 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_face.dm @@ -0,0 +1,89 @@ +///////////////////////////// +// Facial Hair Definitions // +///////////////////////////// +/datum/sprite_accessory/facial_hair + icon = 'icons/mob/human_face.dmi' + gender = MALE // barf (unless you're a dorf, dorfs dig chix w/ beards :P) + +// please make sure they're sorted alphabetically and categorized + +/datum/sprite_accessory/facial_hair/abe + name = "Beard (Abraham Lincoln)" + icon_state = "facial_abe" + +/datum/sprite_accessory/facial_hair/brokenman + name = "Beard (Broken Man)" + icon_state = "facial_brokenman" + +/datum/sprite_accessory/facial_hair/chinstrap + name = "Beard (Chinstrap)" + icon_state = "facial_chin" + +/datum/sprite_accessory/facial_hair/dwarf + name = "Beard (Dwarf)" + icon_state = "facial_dwarf" + +/datum/sprite_accessory/facial_hair/fiveoclock + name = "Beard (Five o Clock Shadow)" + icon_state = "facial_fiveoclock" + +/datum/sprite_accessory/facial_hair/fullbeard + name = "Beard (Full)" + icon_state = "facial_fullbeard" + +/datum/sprite_accessory/facial_hair/gt + name = "Beard (Goatee)" + icon_state = "facial_gt" + +/datum/sprite_accessory/facial_hair/hip + name = "Beard (Hipster)" + icon_state = "facial_hip" + +/datum/sprite_accessory/facial_hair/jensen + name = "Beard (Jensen)" + icon_state = "facial_jensen" + +/datum/sprite_accessory/facial_hair/neckbeard + name = "Beard (Neckbeard)" + icon_state = "facial_neckbeard" + +/datum/sprite_accessory/facial_hair/vlongbeard + name = "Beard (Very Long)" + icon_state = "facial_wise" + +/datum/sprite_accessory/facial_hair/longbeard + name = "Beard (Long)" + icon_state = "facial_longbeard" + +/datum/sprite_accessory/facial_hair/fu + name = "Moustache (Fu Manchu)" + icon_state = "facial_fumanchu" + +/datum/sprite_accessory/facial_hair/hogan + name = "Moustache (Hulk Hogan)" + icon_state = "facial_hogan" //-Neek + +/datum/sprite_accessory/facial_hair/selleck + name = "Moustache (Selleck)" + icon_state = "facial_selleck" + +/datum/sprite_accessory/facial_hair/chaplin + name = "Moustache (Square)" + icon_state = "facial_chaplin" + +/datum/sprite_accessory/facial_hair/vandyke + name = "Moustache (Van Dyke)" + icon_state = "facial_vandyke" + +/datum/sprite_accessory/facial_hair/watson + name = "Moustache (Watson)" + icon_state = "facial_watson" + +/datum/sprite_accessory/facial_hair/shaved + name = "Shaved" + icon_state = null + gender = NEUTER + +/datum/sprite_accessory/facial_hair/elvis + name = "Sideburns (Elvis)" + icon_state = "facial_elvis" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm new file mode 100644 index 0000000000..66c79ea0f0 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/hair_head.dm @@ -0,0 +1,460 @@ +////////////////////// +// Hair Definitions // +////////////////////// +/datum/sprite_accessory/hair + icon = 'icons/mob/human_face.dmi' // default icon for all hairs + + // please make sure they're sorted alphabetically and, where needed, categorized + // try to capitalize the names please~ + // try to spell + // you do not need to define _s or _l sub-states, game automatically does this for you + +/datum/sprite_accessory/hair/afro + name = "Afro" + icon_state = "hair_afro" + +/datum/sprite_accessory/hair/afro2 + name = "Afro 2" + icon_state = "hair_afro2" + +/datum/sprite_accessory/hair/afro_large + name = "Afro (Large)" + icon_state = "hair_bigafro" + +/datum/sprite_accessory/hair/antenna + name = "Ahoge" + icon_state = "hair_antenna" + +/datum/sprite_accessory/hair/bald + name = "Bald" + icon_state = null + +/datum/sprite_accessory/hair/balding + name = "Balding Hair" + icon_state = "hair_e" + +/datum/sprite_accessory/hair/bedhead + name = "Bedhead" + icon_state = "hair_bedhead" + +/datum/sprite_accessory/hair/bedhead2 + name = "Bedhead 2" + icon_state = "hair_bedheadv2" + +/datum/sprite_accessory/hair/bedhead3 + name = "Bedhead 3" + icon_state = "hair_bedheadv3" + +/datum/sprite_accessory/hair/beehive + name = "Beehive" + icon_state = "hair_beehive" + +/datum/sprite_accessory/hair/beehive2 + name = "Beehive 2" + icon_state = "hair_beehivev2" + +/datum/sprite_accessory/hair/bob + name = "Bob Hair" + icon_state = "hair_bob" + +/datum/sprite_accessory/hair/bob2 + name = "Bob Hair 2" + icon_state = "hair_bob2" + +/datum/sprite_accessory/hair/bob3 + name = "Bob Hair 3" + icon_state = "hair_bobcut" + +/datum/sprite_accessory/hair/bobcurl + name = "Bobcurl" + icon_state = "hair_bobcurl" + +/datum/sprite_accessory/hair/boddicker + name = "Boddicker" + icon_state = "hair_boddicker" + +/datum/sprite_accessory/hair/bowl + name = "Bowl" + icon_state = "hair_bowlcut" + +/datum/sprite_accessory/hair/braid + name = "Braid (Floorlength)" + icon_state = "hair_braid" + +/datum/sprite_accessory/hair/braided + name = "Braided" + icon_state = "hair_braided" + +/datum/sprite_accessory/hair/front_braid + name = "Braided Front" + icon_state = "hair_braidfront" + +/datum/sprite_accessory/hair/not_floorlength_braid + name = "Braid (High)" + icon_state = "hair_braid2" + +/datum/sprite_accessory/hair/lowbraid + name = "Braid (Low)" + icon_state = "hair_hbraid" + +/datum/sprite_accessory/hair/shortbraid + name = "Braid (Short)" + icon_state = "hair_shortbraid" + +/datum/sprite_accessory/hair/braidtail + name = "Braided Tail" + icon_state = "hair_braidtail" + +/datum/sprite_accessory/hair/bun + name = "Bun Head" + icon_state = "hair_bun" + +/datum/sprite_accessory/hair/bun2 + name = "Bun Head 2" + icon_state = "hair_bunhead2" + +/datum/sprite_accessory/hair/largebun + name = "Bun (Large)" + icon_state = "hair_largebun" + +/datum/sprite_accessory/hair/business + name = "Business Hair" + icon_state = "hair_business" + +/datum/sprite_accessory/hair/business2 + name = "Business Hair 2" + icon_state = "hair_business2" + +/datum/sprite_accessory/hair/business3 + name = "Business Hair 3" + icon_state = "hair_business3" + +/datum/sprite_accessory/hair/business4 + name = "Business Hair 4" + icon_state = "hair_business4" + +/datum/sprite_accessory/hair/buzz + name = "Buzzcut" + icon_state = "hair_buzzcut" + +/datum/sprite_accessory/hair/combover + name = "Combover" + icon_state = "hair_combover" + +/datum/sprite_accessory/hair/crew + name = "Crewcut" + icon_state = "hair_crewcut" + +/datum/sprite_accessory/hair/curls + name = "Curls" + icon_state = "hair_curls" + +/datum/sprite_accessory/hair/cut + name = "Cut Hair" + icon_state = "hair_c" + +/datum/sprite_accessory/hair/devillock + name = "Devil Lock" + icon_state = "hair_devilock" + +/datum/sprite_accessory/hair/dreadlocks + name = "Dreadlocks" + icon_state = "hair_dreads" + +/datum/sprite_accessory/hair/drillhair + name = "Drill Hair" + icon_state = "hair_drillhair" + +/datum/sprite_accessory/hair/drillhairextended + name = "Drill Hair (Extended)" + icon_state = "hair_drillhairextended" + +/datum/sprite_accessory/hair/emo + name = "Emo" + icon_state = "hair_emo" + +/datum/sprite_accessory/hair/feather + name = "Feather" + icon_state = "hair_feather" + +/datum/sprite_accessory/hair/sargeant + name = "Flat Top" + icon_state = "hair_sargeant" + +/datum/sprite_accessory/hair/bigflattop + name = "Flat Top (Big)" + icon_state = "hair_bigflattop" + +/datum/sprite_accessory/hair/fag + name = "Flow Hair" + icon_state = "hair_f" + +/datum/sprite_accessory/hair/gelled + name = "Gelled Back" + icon_state = "hair_gelled" + +/datum/sprite_accessory/hair/gentle + name = "Gentle" + icon_state = "hair_gentle" + +/datum/sprite_accessory/hair/halfbang + name = "Half-banged Hair" + icon_state = "hair_halfbang" + +/datum/sprite_accessory/hair/halfbang2 + name = "Half-banged Hair 2" + icon_state = "hair_halfbang2" + +/datum/sprite_accessory/hair/hedgehog + name = "Hedgehog Hair" + icon_state = "hair_hedgehog" + +/datum/sprite_accessory/hair/himecut + name = "Hime Cut" + icon_state = "hair_himecut" + +/datum/sprite_accessory/hair/himecut2 + name = "Hime Cut 2" + icon_state = "hair_himecut2" + +/datum/sprite_accessory/hair/himeup + name = "Hime Updo" + icon_state = "hair_himeup" + +/datum/sprite_accessory/hair/hitop + name = "Hitop" + icon_state = "hair_hitop" + +/datum/sprite_accessory/hair/jensen + name = "Jensen Hair" + icon_state = "hair_jensen" + +/datum/sprite_accessory/hair/keanu + name = "Keanu Hair" + icon_state = "hair_keanu" + +/datum/sprite_accessory/hair/kusangi + name = "Kusanagi Hair" + icon_state = "hair_kusanagi" + +/datum/sprite_accessory/hair/long + name = "Long Hair 1" + icon_state = "hair_long" + +/datum/sprite_accessory/hair/long2 + name = "Long Hair 2" + icon_state = "hair_long2" + +/datum/sprite_accessory/hair/long3 + name = "Long Hair 3" + icon_state = "hair_long3" + +/datum/sprite_accessory/hair/long_over_eye + name = "Long Over Eye" + icon_state = "hair_longovereye" + +/datum/sprite_accessory/hair/longbangs + name = "Long Bangs" + icon_state = "hair_lbangs" + +/datum/sprite_accessory/hair/longemo + name = "Long Emo" + icon_state = "hair_longemo" + +/datum/sprite_accessory/hair/longfringe + name = "Long Fringe" + icon_state = "hair_longfringe" + +/datum/sprite_accessory/hair/sidepartlongalt + name = "Long Side Part" + icon_state = "hair_longsidepart" + +/datum/sprite_accessory/hair/megaeyebrows + name = "Mega Eyebrows" + icon_state = "hair_megaeyebrows" + +/datum/sprite_accessory/hair/messy + name = "Messy" + icon_state = "hair_messy" + +/datum/sprite_accessory/hair/mohawk + name = "Mohawk" + icon_state = "hair_d" + +/datum/sprite_accessory/hair/reversemohawk + name = "Mohawk (Reverse)" + icon_state = "hair_reversemohawk" + +/datum/sprite_accessory/hair/odango + name = "Odango" + icon_state = "hair_odango" + +/datum/sprite_accessory/hair/ombre + name = "Ombre" + icon_state = "hair_ombre" + +/datum/sprite_accessory/hair/oneshoulder + name = "One Shoulder" + icon_state = "hair_oneshoulder" + +/datum/sprite_accessory/hair/over_eye + name = "Over Eye" + icon_state = "hair_shortovereye" + +//Donator item - fractious +/datum/sprite_accessory/hair/over_eye_fr + name = "Over Eye (fract)" + icon_state = "hair_shortovereye_1f" + ckeys_allowed = list("fractious") + +/datum/sprite_accessory/hair/parted + name = "Parted" + icon_state = "hair_parted" + +/datum/sprite_accessory/hair/partedside + name = "Parted (Side)" + icon_state = "hair_part" + +/datum/sprite_accessory/hair/kagami + name = "Pigtails" + icon_state = "hair_kagami" + +/datum/sprite_accessory/hair/pigtail + name = "Pigtails 2" + icon_state = "hair_pigtails" + +/datum/sprite_accessory/hair/pigtail2 + name = "Pigtails 3" + icon_state = "hair_pigtails2" + +/datum/sprite_accessory/hair/pixie + name = "Pixie Cut" + icon_state = "hair_pixie" + +/datum/sprite_accessory/hair/pompadour + name = "Pompadour" + icon_state = "hair_pompadour" + +/datum/sprite_accessory/hair/bigpompadour + name = "Pompadour (Big)" + icon_state = "hair_bigpompadour" + +/datum/sprite_accessory/hair/ponytail1 + name = "Ponytail" + icon_state = "hair_ponytail" + +/datum/sprite_accessory/hair/ponytail2 + name = "Ponytail 2" + icon_state = "hair_ponytail2" + +/datum/sprite_accessory/hair/ponytail3 + name = "Ponytail 3" + icon_state = "hair_ponytail3" + +/datum/sprite_accessory/hair/ponytail4 + name = "Ponytail 4" + icon_state = "hair_ponytail4" + +/datum/sprite_accessory/hair/ponytail5 + name = "Ponytail 5" + icon_state = "hair_ponytail5" + +/datum/sprite_accessory/hair/highponytail + name = "Ponytail (High)" + icon_state = "hair_highponytail" + +/datum/sprite_accessory/hair/longponytail + name = "Ponytail (Long)" + icon_state = "hair_longstraightponytail" + +/datum/sprite_accessory/hair/sidetail + name = "Ponytail (Side)" + icon_state = "hair_sidetail" + +/datum/sprite_accessory/hair/sidetail2 + name = "Ponytail (Side) 2" + icon_state = "hair_sidetail2" + +/datum/sprite_accessory/hair/sidetail3 + name = "Ponytail (Side) 3" + icon_state = "hair_sidetail3" + +/datum/sprite_accessory/hair/sidetail4 + name = "Ponytail (Side) 4" + icon_state = "hair_sidetail4" + +/datum/sprite_accessory/hair/quiff + name = "Quiff" + icon_state = "hair_quiff" + +/datum/sprite_accessory/hair/short + name = "Short Hair" + icon_state = "hair_a" + +/datum/sprite_accessory/hair/shorthair2 + name = "Short Hair 2" + icon_state = "hair_shorthair2" + +/datum/sprite_accessory/hair/shorthair3 + name = "Short Hair 3" + icon_state = "hair_shorthair3" + +/datum/sprite_accessory/hair/shoulderlength + name = "Shoulder-length Hair" + icon_state = "hair_b" + +/datum/sprite_accessory/hair/sidecut + name = "Sidecut" + icon_state = "hair_sidecut" + +/datum/sprite_accessory/hair/skinhead + name = "Skinhead" + icon_state = "hair_skinhead" + +/datum/sprite_accessory/hair/protagonist + name = "Slightly Long Hair" + icon_state = "hair_protagonist" + +/datum/sprite_accessory/hair/spiky + name = "Spiky" + icon_state = "hair_spikey" + +/datum/sprite_accessory/hair/spiky2 + name = "Spiky 2" + icon_state = "hair_spiky" + +/datum/sprite_accessory/hair/spiky3 + name = "Spiky 3" + icon_state = "hair_spiky2" + +/datum/sprite_accessory/hair/swept + name = "Swept Back Hair" + icon_state = "hair_swept" + +/datum/sprite_accessory/hair/swept2 + name = "Swept Back Hair 2" + icon_state = "hair_swept2" + +/datum/sprite_accessory/hair/tressshoulder + name = "Tress Shoulder" + icon_state = "hair_tressshoulder" + +/datum/sprite_accessory/hair/updo + name = "Updo" + icon_state = "hair_updo" + +/datum/sprite_accessory/hair/longer + name = "Very Long Hair" + icon_state = "hair_vlong" + +/datum/sprite_accessory/hair/longest + name = "Very Long Hair 2" + icon_state = "hair_longest" + +/datum/sprite_accessory/hair/longest2 + name = "Very Long Over Eye" + icon_state = "hair_longest2" + +/datum/sprite_accessory/hair/longestalt + name = "Very Long with Fringe" + icon_state = "hair_vlongfringe" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/horns.dm b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm new file mode 100644 index 0000000000..607ad650e3 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/horns.dm @@ -0,0 +1,26 @@ +/datum/sprite_accessory/horns + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/horns/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/horns/simple + name = "Simple" + icon_state = "simple" + +/datum/sprite_accessory/horns/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/horns/curled + name = "Curled" + icon_state = "curled" + +/datum/sprite_accessory/horns/ram + name = "Ram" + icon_state = "ram" + +/datum/sprite_accessory/horns/angler + name = "Angeler" + icon_state = "angler" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/legs.dm b/code/modules/mob/dead/new_player/sprite_accessories/legs.dm new file mode 100644 index 0000000000..7663100822 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/legs.dm @@ -0,0 +1,8 @@ +/datum/sprite_accessory/legs //legs are a special case, they aren't actually sprite_accessories but are updated with them. + icon = null //These datums exist for selecting legs on preference, and little else + +/datum/sprite_accessory/legs/none + name = "Normal Legs" + +/datum/sprite_accessory/legs/digitigrade_lizard + name = "Digitigrade Legs" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/moth_wings.dm b/code/modules/mob/dead/new_player/sprite_accessories/moth_wings.dm new file mode 100644 index 0000000000..6b8036bd69 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/moth_wings.dm @@ -0,0 +1,68 @@ +/datum/sprite_accessory/moth_wings + icon = 'icons/mob/wings.dmi' + color_src = null + +/datum/sprite_accessory/moth_wings/plain + name = "Plain" + icon_state = "plain" + +/datum/sprite_accessory/moth_wings/monarch + name = "Monarch" + icon_state = "monarch" + +/datum/sprite_accessory/moth_wings/luna + name = "Luna" + icon_state = "luna" + +/datum/sprite_accessory/moth_wings/atlas + name = "Atlas" + icon_state = "atlas" + +/datum/sprite_accessory/moth_wings/reddish + name = "Reddish" + icon_state = "redish" + +/datum/sprite_accessory/moth_wings/royal + name = "Royal" + icon_state = "royal" + +/datum/sprite_accessory/moth_wings/gothic + name = "Gothic" + icon_state = "gothic" + +/datum/sprite_accessory/moth_wings/lovers + name = "Lovers" + icon_state = "lovers" + +/datum/sprite_accessory/moth_wings/whitefly + name = "White Fly" + icon_state = "whitefly" + +/datum/sprite_accessory/moth_wings/punished + name = "Burnt Off" + icon_state = "punished" + locked = TRUE + +/datum/sprite_accessory/moth_wings/firewatch + name = "Firewatch" + icon_state = "firewatch" + +/datum/sprite_accessory/moth_wings/deathhead + name = "Deathshead" + icon_state = "deathhead" + +/datum/sprite_accessory/moth_wings/poison + name = "Poison" + icon_state = "poison" + +/datum/sprite_accessory/moth_wings/ragged + name = "Ragged" + icon_state = "ragged" + +/datum/sprite_accessory/moth_wings/moonfly + name = "Moon Fly" + icon_state = "moonfly" + +/datum/sprite_accessory/moth_wings/snow + name = "Snow" + icon_state = "snow" diff --git a/code/modules/mob/dead/new_player/sprite_accessories/pines.dm b/code/modules/mob/dead/new_player/sprite_accessories/pines.dm new file mode 100644 index 0000000000..4ccbc3d9ea --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/pines.dm @@ -0,0 +1,53 @@ +/datum/sprite_accessory/spines + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/spines_animated + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/spines/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/spines_animated/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/spines/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/spines_animated/short + name = "Short" + icon_state = "short" + +/datum/sprite_accessory/spines/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" + +/datum/sprite_accessory/spines_animated/shortmeme + name = "Short + Membrane" + icon_state = "shortmeme" + +/datum/sprite_accessory/spines/long + name = "Long" + icon_state = "long" + +/datum/sprite_accessory/spines_animated/long + name = "Long" + icon_state = "long" + +/datum/sprite_accessory/spines/longmeme + name = "Long + Membrane" + icon_state = "longmeme" + +/datum/sprite_accessory/spines_animated/longmeme + name = "Long + Membrane" + icon_state = "longmeme" + +/datum/sprite_accessory/spines/aqautic + name = "Aquatic" + icon_state = "aqua" + +/datum/sprite_accessory/spines_animated/aqautic + name = "Aquatic" + icon_state = "aqua" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm new file mode 100644 index 0000000000..c663c08d69 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/snouts.dm @@ -0,0 +1,18 @@ +/datum/sprite_accessory/snouts + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/snouts/sharp + name = "Sharp" + icon_state = "sharp" + +/datum/sprite_accessory/snouts/round + name = "Round" + icon_state = "round" + +/datum/sprite_accessory/snouts/sharplight + name = "Sharp + Light" + icon_state = "sharplight" + +/datum/sprite_accessory/snouts/roundlight + name = "Round + Light" + icon_state = "roundlight" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/socks.dm b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm new file mode 100644 index 0000000000..5a5d37d4e7 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/socks.dm @@ -0,0 +1,96 @@ +/////////////////////// +// Socks Definitions // +/////////////////////// + +/datum/sprite_accessory/socks + icon = 'icons/mob/underwear.dmi' + +/datum/sprite_accessory/socks/nude + name = "Nude" + icon_state = null + +// please make sure they're sorted alphabetically and categorized + +/datum/sprite_accessory/socks/black_knee + name = "Knee-high (Black)" + icon_state = "black_knee" + +/datum/sprite_accessory/socks/commie_knee + name = "Knee-High (Commie)" + icon_state = "commie_knee" + +/datum/sprite_accessory/socks/usa_knee + name = "Knee-High (Freedom)" + icon_state = "assblastusa_knee" + +/datum/sprite_accessory/socks/rainbow_knee + name = "Knee-high (Rainbow)" + icon_state = "rainbow_knee" + +/datum/sprite_accessory/socks/striped_knee + name = "Knee-high (Striped)" + icon_state = "striped_knee" + +/datum/sprite_accessory/socks/thin_knee + name = "Knee-high (Thin)" + icon_state = "thin_knee" + +/datum/sprite_accessory/socks/uk_knee + name = "Knee-High (UK)" + icon_state = "uk_knee" + +/datum/sprite_accessory/socks/white_knee + name = "Knee-high (White)" + icon_state = "white_knee" + +/datum/sprite_accessory/socks/black_norm + name = "Normal (Black)" + icon_state = "black_norm" + +/datum/sprite_accessory/socks/white_norm + name = "Normal (White)" + icon_state = "white_norm" + +/datum/sprite_accessory/socks/pantyhose + name = "Pantyhose" + icon_state = "pantyhose" + +/datum/sprite_accessory/socks/black_short + name = "Short (Black)" + icon_state = "black_short" + +/datum/sprite_accessory/socks/white_short + name = "Short (White)" + icon_state = "white_short" + +/datum/sprite_accessory/socks/black_thigh + name = "Thigh-high (Black)" + icon_state = "black_thigh" + +/datum/sprite_accessory/socks/commie_thigh + name = "Thigh-high (Commie)" + icon_state = "commie_thigh" + +/datum/sprite_accessory/socks/usa_thigh + name = "Thigh-high (Freedom)" + icon_state = "assblastusa_thigh" + +/datum/sprite_accessory/socks/rainbow_thigh + name = "Thigh-high (Rainbow)" + icon_state = "rainbow_thigh" + +/datum/sprite_accessory/socks/striped_thigh + name = "Thigh-high (Striped)" + icon_state = "striped_thigh" + +/datum/sprite_accessory/socks/thin_thigh + name = "Thigh-high (Thin)" + icon_state = "thin_thigh" + +/datum/sprite_accessory/socks/uk_thigh + name = "Thigh-high (UK)" + icon_state = "uk_thigh" + +/datum/sprite_accessory/socks/white_thigh + name = "Thigh-high (White)" + icon_state = "white_thigh" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm new file mode 100644 index 0000000000..31faabf663 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -0,0 +1,55 @@ +/datum/sprite_accessory/tails + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/tails_animated + icon = 'icons/mob/mutant_bodyparts.dmi' + +/datum/sprite_accessory/tails/lizard/smooth + name = "Smooth" + icon_state = "smooth" + +/datum/sprite_accessory/tails_animated/lizard/smooth + name = "Smooth" + icon_state = "smooth" + +/datum/sprite_accessory/tails/lizard/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + +/datum/sprite_accessory/tails_animated/lizard/dtiger + name = "Dark Tiger" + icon_state = "dtiger" + +/datum/sprite_accessory/tails/lizard/ltiger + name = "Light Tiger" + icon_state = "ltiger" + +/datum/sprite_accessory/tails_animated/lizard/ltiger + name = "Light Tiger" + icon_state = "ltiger" + +/datum/sprite_accessory/tails/lizard/spikes + name = "Spikes" + icon_state = "spikes" + +/datum/sprite_accessory/tails_animated/lizard/spikes + name = "Spikes" + icon_state = "spikes" + +/datum/sprite_accessory/tails/human/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/tails_animated/human/none + name = "None" + icon_state = "none" +/* +/datum/sprite_accessory/tails/human/cat + name = "Cat" + icon_state = "cat" + color_src = HAIR + +/datum/sprite_accessory/tails_animated/human/cat + name = "Cat" + icon_state = "cat" + color_src = HAIR*/ \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm new file mode 100644 index 0000000000..7c66ef51e3 --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/undershirt.dm @@ -0,0 +1,308 @@ +//////////////////////////// +// Undershirt Definitions // +//////////////////////////// + +/datum/sprite_accessory/undershirt + icon = 'icons/mob/underwear.dmi' + gender = NEUTER + +/datum/sprite_accessory/undershirt/nude + name = "Nude" + icon_state = null + +// please make sure they're sorted alphabetically and categorized + +/datum/sprite_accessory/undershirt/bluejersey + name = "Shirt, Jersey - Blue" + icon_state = "shirt_bluejersey" + +/datum/sprite_accessory/undershirt/redjersey + name = "Shirt, Jersey - Red" + icon_state = "shirt_redjersey" + +/datum/sprite_accessory/undershirt/bluepolo + name = "Shirt, Polo - Blue" + icon_state = "bluepolo" + +/datum/sprite_accessory/undershirt/grayyellowpolo + name = "Shirt, Polo - Gray, Yellow" + icon_state = "grayyellowpolo" + +/datum/sprite_accessory/undershirt/redpolo + name = "Shirt, Polo - Red" + icon_state = "redpolo" + +/datum/sprite_accessory/undershirt/whitepolo + name = "Shirt, Polo - White" + icon_state = "whitepolo" + +/datum/sprite_accessory/undershirt/alienshirt + name = "Shirt - Alien" + icon_state = "shirt_alien" + +/datum/sprite_accessory/undershirt/mondmondjaja + name = "Shirt - Band" + icon_state = "band" + +/datum/sprite_accessory/undershirt/shirt_black + name = "Shirt - Black" + icon_state = "shirt_black" + +/datum/sprite_accessory/undershirt/blueshirt + name = "Shirt - Blue" + icon_state = "shirt_blue" + +/datum/sprite_accessory/undershirt/clownshirt + name = "Shirt - Clown" + icon_state = "shirt_clown" + +/datum/sprite_accessory/undershirt/commie + name = "Shirt - Commie" + icon_state = "shirt_commie" + +/datum/sprite_accessory/undershirt/greenshirt + name = "Shirt - Green" + icon_state = "shirt_green" + +/datum/sprite_accessory/undershirt/shirt_grey + name = "Shirt - Grey" + icon_state = "shirt_grey" + +/datum/sprite_accessory/undershirt/ian + name = "Shirt - Ian" + icon_state = "ian" + +/datum/sprite_accessory/undershirt/ilovent + name = "Shirt - I Love NT" + icon_state = "ilovent" + +/datum/sprite_accessory/undershirt/lover + name = "Shirt - Lover" + icon_state = "lover" + +/datum/sprite_accessory/undershirt/matroska + name = "Shirt - Matroska" + icon_state = "matroska" + +/datum/sprite_accessory/undershirt/meat + name = "Shirt - Meat" + icon_state = "shirt_meat" + +/datum/sprite_accessory/undershirt/nano + name = "Shirt - Nanotrasen" + icon_state = "shirt_nano" + +/datum/sprite_accessory/undershirt/peace + name = "Shirt - Peace" + icon_state = "peace" + +/datum/sprite_accessory/undershirt/pacman + name = "Shirt - Pogoman" + icon_state = "pogoman" + +/datum/sprite_accessory/undershirt/question + name = "Shirt - Question" + icon_state = "shirt_question" + +/datum/sprite_accessory/undershirt/redshirt + name = "Shirt - Red" + icon_state = "shirt_red" + +/datum/sprite_accessory/undershirt/skull + name = "Shirt - Skull" + icon_state = "shirt_skull" + +/datum/sprite_accessory/undershirt/ss13 + name = "Shirt - SS13" + icon_state = "shirt_ss13" + +/datum/sprite_accessory/undershirt/stripe + name = "Shirt - Striped" + icon_state = "shirt_stripes" + +/datum/sprite_accessory/undershirt/tiedye + name = "Shirt - Tie-dye" + icon_state = "shirt_tiedye" + +/datum/sprite_accessory/undershirt/uk + name = "Shirt - UK" + icon_state = "uk" + +/datum/sprite_accessory/undershirt/usa + name = "Shirt - USA" + icon_state = "shirt_assblastusa" + +/datum/sprite_accessory/undershirt/shirt_white + name = "Shirt - White" + icon_state = "shirt_white" + +/datum/sprite_accessory/undershirt/blackshortsleeve + name = "Shirt, Short Sleeved - Black" + icon_state = "blackshortsleeve" + +/datum/sprite_accessory/undershirt/blueshortsleeve + name = "Shirt, Short Sleeved - Blue" + icon_state = "blueshortsleeve" + +/datum/sprite_accessory/undershirt/greenshortsleeve + name = "Shirt, Short Sleeved - Green" + icon_state = "greenshortsleeve" + +/datum/sprite_accessory/undershirt/purpleshortsleeve + name = "Shirt, Short Sleeved - Purple" + icon_state = "purpleshortsleeve" + +/datum/sprite_accessory/undershirt/whiteshortsleeve + name = "Shirt, Short Sleeved - White" + icon_state = "whiteshortsleeve" + +/datum/sprite_accessory/undershirt/blueshirtsport + name = "Shirt, Sports - Blue" + icon_state = "blueshirtsport" + gender = NEUTER + +/datum/sprite_accessory/undershirt/greenshirtsport + name = "Shirt, Sports - Green" + icon_state = "greenshirtsport" + gender = NEUTER + +/datum/sprite_accessory/undershirt/redshirtsport + name = "Shirt, Sports - Red" + icon_state = "redshirtsport" + gender = NEUTER + +/datum/sprite_accessory/undershirt/redtop + name = "Shirt, Short - Red" + icon_state = "redtop" + +/datum/sprite_accessory/undershirt/whitetop + name = "Shirt, Short - White" + icon_state = "whitetop" + +/datum/sprite_accessory/undershirt/tshirt_blue + name = "T-Shirt - Blue" + icon_state = "blueshirt" + +/datum/sprite_accessory/undershirt/tshirt_green + name = "T-Shirt - Green" + icon_state = "greenshirt" + +/datum/sprite_accessory/undershirt/tshirt_red + name = "T-Shirt - Red" + icon_state = "redshirt" + +/datum/sprite_accessory/undershirt/yellowshirt + name = "T-Shirt - Yellow" + icon_state = "yellowshirt" + +/datum/sprite_accessory/undershirt/tank_black + name = "Tank Top - Black" + icon_state = "tank_black" + +/datum/sprite_accessory/undershirt/tankfire + name = "Tank Top - Fire" + icon_state = "tank_fire" + +/datum/sprite_accessory/undershirt/tank_grey + name = "Tank Top - Grey" + icon_state = "tank_grey" + +/datum/sprite_accessory/undershirt/female_midriff + name = "Tank Top - Midriff" + icon_state = "tank_midriff" + +/datum/sprite_accessory/undershirt/tank_red + name = "Tank Top - Red" + icon_state = "tank_red" + +/datum/sprite_accessory/undershirt/tankstripe + name = "Tank Top - Striped" + icon_state = "tank_stripes" + +/datum/sprite_accessory/undershirt/tank_white + name = "Tank Top - White" + icon_state = "tank_white" + +/datum/sprite_accessory/undershirt/female_red + name = "Bra - Red" + icon_state = "bra_red" + +/datum/sprite_accessory/undershirt/female_pink + name = "Bra - Pink" + icon_state = "bra_pink" + +/datum/sprite_accessory/undershirt/female_kinky + name = "Bra - Kinky Black" + icon_state = "bra_kinky" + +/datum/sprite_accessory/undershirt/female_green + name = "Bra - Green" + icon_state = "bra_green" + +/datum/sprite_accessory/undershirt/female_commie + name = "Bra - Freedom" + icon_state = "bra_assblastusa" + +/datum/sprite_accessory/undershirt/female_commie + name = "Bra - Commie" + icon_state = "bra_commie" + +/datum/sprite_accessory/undershirt/female_babyblue + name = "Bra, Baby Blue" + icon_state = "bra_babyblue" + +/datum/sprite_accessory/undershirt/female_black + name = "Bra - Black" + icon_state = "bra_black" + +/datum/sprite_accessory/undershirt/female_uk + name = "Bra - UK" + icon_state = "bra_uk" + +/datum/sprite_accessory/undershirt/female_white + name = "Bra - White" + icon_state = "bra_white" + +/datum/sprite_accessory/undershirt/female_white_neko + name = "Bra, Neko - white" + icon_state = "bra_neko_white" + +/datum/sprite_accessory/undershirt/female_black_neko + name = "Bra, Neko - Black" + icon_state = "bra_neko_black" + +/datum/sprite_accessory/undershirt/female_blackalt + name = "Bra, Sports - Black" + icon_state = "bra_sports_black" + +/datum/sprite_accessory/undershirt/sports_bra + name = "Bra, Sports 1 - White" + icon_state = "sports_bra" + +/datum/sprite_accessory/undershirt/female_whitealt + name = "Bra, Sports 2 - White" + icon_state = "bra_sports_white" + +/datum/sprite_accessory/undershirt/sports_bra2 + name = "Bra, Sports 3 - White" + icon_state = "sports_bra_alt" + +/datum/sprite_accessory/undershirt/female_yellow + name = "Bra - Yellow" + icon_state = "bra_yellow" + +/datum/sprite_accessory/undershirt/female_thong + name = "Bra, Strapless - Pink" + icon_state = "bra_strapless_pink" + +/datum/sprite_accessory/undershirt/female_blue + name = "Bra, Strapless - Blue" + icon_state = "bra_blue" + +/datum/sprite_accessory/undershirt/swimsuit_green + name = "Swimsuit, Top - Green" + icon_state = "bra_swimming_green" + +/datum/sprite_accessory/undershirt/swimsuit_purple + name = "Swimsuit, Top - Purple" + icon_state = "bra_swimming_purple" \ No newline at end of file diff --git a/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm new file mode 100644 index 0000000000..6beed231aa --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/underwear.dm @@ -0,0 +1,171 @@ +/////////////////////////// +// Underwear Definitions // +/////////////////////////// +/datum/sprite_accessory/underwear + icon = 'icons/mob/underwear.dmi' + gender = NEUTER + +/datum/sprite_accessory/underwear/nude + name = "Nude" + icon_state = null + +/datum/sprite_accessory/underwear/mankini + name = "Mankini - Green" + icon_state = "mankini_green" + +/datum/sprite_accessory/underwear/male_kinky + name = "Jockstrap - White" + icon_state = "jockstrap_white" + +/datum/sprite_accessory/underwear/male_white + name = "Briefs - White" + icon_state = "briefs_white" + +/datum/sprite_accessory/underwear/male_black + name = "Briefs - Black" + icon_state = "briefs_black" + +/datum/sprite_accessory/underwear/male_grey + name = "Briefs - Grey" + icon_state = "briefs_grey" + +/datum/sprite_accessory/underwear/male_red + name = "Briefs - Red" + icon_state = "briefs_red" + +/datum/sprite_accessory/underwear/male_green + name = "Briefs - Green" + icon_state = "briefs_green" + +/datum/sprite_accessory/underwear/male_blue + name = "Briefs - Blue" + icon_state = "briefs_blue" + +/datum/sprite_accessory/underwear/male_blackalt + name = "Boxers - Black" + icon_state = "boxers_black" + +/datum/sprite_accessory/underwear/male_greyalt + name = "Boxers - Grey" + icon_state = "boxers_grey" + +/datum/sprite_accessory/underwear/male_hearts + name = "Boxers - Heart" + icon_state = "boxers_heart" + +/datum/sprite_accessory/underwear/male_stripe + name = "Boxers - Striped" + icon_state = "boxers_striped" + +/datum/sprite_accessory/underwear/male_commie + name = "Boxers - Striped Communist" + icon_state = "boxers_commie" + +/datum/sprite_accessory/underwear/male_usastripe + name = "Boxers - Striped Freedom" + icon_state = "boxers_assblastusa" + +/datum/sprite_accessory/underwear/male_uk + name = "Boxers - Striped UK" + icon_state = "boxers_uk" + + +/datum/sprite_accessory/underwear/female_whitealt + name = "Boxer Briefs - White" + icon_state = "boxer_briefs_white" + +/datum/sprite_accessory/underwear/female_blackalt + name = "Boxer Briefs - Black" + icon_state = "boxer_briefs_black" + +/datum/sprite_accessory/underwear/female_pink + name = "Boxer Briefs - Pink" + icon_state = "boxer_briefs_pink" + +/datum/sprite_accessory/underwear/female_babyblue + name = "Boxer Briefs - Baby Blue" + icon_state = "boxer_briefs_babyblue" + +/datum/sprite_accessory/underwear/female_yellow + name = "Boxer Briefs - Yellow" + icon_state = "boxer_briefs_yellow" + + +/datum/sprite_accessory/underwear/female_black + name = "Panties - Black" + icon_state = "panties_black" + +/datum/sprite_accessory/underwear/female_blue + name = "Panties - Blue" + icon_state = "panties_blue" + +/datum/sprite_accessory/underwear/female_commie + name = "Panties - Commie" + icon_state = "panties_commie" + +/datum/sprite_accessory/underwear/female_usastripe + name = "Panties - Freedom" + icon_state = "panties_assblastusa" + +/datum/sprite_accessory/underwear/female_green + name = "Panties - Green" + icon_state = "panties_green" + +/datum/sprite_accessory/underwear/female_kinky + name = "Panties - Kinky Black" + icon_state = "panties_kinky" + +/datum/sprite_accessory/underwear/female_red + name = "Panties - Red" + icon_state = "panties_red" + +/datum/sprite_accessory/underwear/female_uk + name = "Panties - UK" + icon_state = "panties_uk" + +/datum/sprite_accessory/underwear/female_white + name = "Panties - White" + icon_state = "panties_white" + +/datum/sprite_accessory/underwear/female_white_neko + name = "Panties, Neko - White" + icon_state = "panties_neko_white" + +/datum/sprite_accessory/underwear/female_black_neko + name = "Panties, Neko - Black" + icon_state = "panties_neko_black" + + +/datum/sprite_accessory/underwear/swimsuit_red + name = "Swimsuit, One Piece - Red" + icon_state = "swimming_red" + +/datum/sprite_accessory/underwear/swimsuit + name = "Swimsuit, One Piece - Black" + icon_state = "swimming_black" + +/datum/sprite_accessory/underwear/swimsuit_blue + name = "Swimsuit, One Piece - Striped Blue" + icon_state = "swimming_blue" + +/datum/sprite_accessory/underwear/swimsuit_green + name = "Swimsuit, Bottom - Green" + icon_state = "panties_swimming_green" + +/datum/sprite_accessory/underwear/swimsuit_purple + name = "Swimsuit, Bottom - Purple" + icon_state = "panties_swimming_purple" + +/datum/sprite_accessory/underwear/female_thong_black + name = "Thong - Black" + icon_state = "thong_black" + +/datum/sprite_accessory/underwear/female_thong + name = "Thong - Pink" + icon_state = "thong_pink" + +/datum/sprite_accessory/underwear/female_babydoll + name = "Babydoll - Black" + icon_state = "babydoll" + + diff --git a/code/modules/mob/dead/new_player/sprite_accessories/wings.dm b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm new file mode 100644 index 0000000000..d051b2f07a --- /dev/null +++ b/code/modules/mob/dead/new_player/sprite_accessories/wings.dm @@ -0,0 +1,26 @@ +/datum/sprite_accessory/wings/none + name = "None" + icon_state = "none" + +/datum/sprite_accessory/wings_open + icon = 'icons/mob/wings.dmi' + +/datum/sprite_accessory/wings_open/angel + name = "Angel" + icon_state = "angel" + color_src = 0 + dimension_x = 46 + center = TRUE + dimension_y = 34 + +/datum/sprite_accessory/wings + icon = 'icons/mob/wings.dmi' + +/datum/sprite_accessory/wings/angel + name = "Angel" + icon_state = "angel" + color_src = 0 + dimension_x = 46 + center = TRUE + dimension_y = 34 + locked = TRUE \ No newline at end of file diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi index 385cd21516620f9951aa3b0142d8246b266e9a16..0b63685668097377754c298ecd5905b0be20059f 100644 GIT binary patch literal 54625 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

9w^? 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 AcmMzZ literal 52322 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 diff --git a/icons/mob/underwear_old.dmi b/icons/mob/underwear_old.dmi new file mode 100644 index 0000000000000000000000000000000000000000..5e16a473ba8589b90a8d14a107c5e5eadbccc47d GIT binary patch literal 52536 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 t6M|eie^KJt8O_4~WFYOBjFuH< Date: Thu, 25 Apr 2019 23:48:12 -0400 Subject: [PATCH 108/180] Update jobs.dm --- code/modules/clothing/head/jobs.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index b1503f26fb..5d1648eda4 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -26,7 +26,7 @@ icon_state = "captain" item_state = "that" flags_inv = 0 - armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) strip_delay = 60 dog_fashion = /datum/dog_fashion/head/captain @@ -50,7 +50,7 @@ name = "head of personnel's cap" icon_state = "hopcap" desc = "The symbol of true bureaucratic micromanagement." - armor = list("melee" = 25, "bullet" = 15, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 30, "bullet" = 25, "laser" = 20, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) dog_fashion = /datum/dog_fashion/head/hop /obj/item/clothing/head/hopcap/beret @@ -200,4 +200,4 @@ /obj/item/clothing/head/beret/qm name = "quartermaster's beret" desc = "This headwear shows off your Cargonian leadership" - icon_state = "qmberet" \ No newline at end of file + icon_state = "qmberet" From 70c5c474901031c50985a92e1d40061487450bbd Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Thu, 25 Apr 2019 23:51:09 -0400 Subject: [PATCH 109/180] Lets not mistakenly nerf hop please? --- code/modules/clothing/head/jobs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 5d1648eda4..b6c5a5417a 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -50,7 +50,7 @@ name = "head of personnel's cap" icon_state = "hopcap" desc = "The symbol of true bureaucratic micromanagement." - armor = list("melee" = 30, "bullet" = 25, "laser" = 20, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + armor = list("melee" = 30, "bullet" = 25, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) dog_fashion = /datum/dog_fashion/head/hop /obj/item/clothing/head/hopcap/beret From 2de9e2673ca1c90752b8825c29c7e4a87ccc8152 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 00:42:25 -0400 Subject: [PATCH 110/180] Delete energy.dmi --- icons/obj/guns/energy.dmi | Bin 36151 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/obj/guns/energy.dmi diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi deleted file mode 100644 index e3ec4171adcf2a6978473506e6e815f6847dad03..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36151 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 bp2SOwT Date: Fri, 26 Apr 2019 00:42:49 -0400 Subject: [PATCH 111/180] Add files via upload --- icons/obj/guns/energy.dmi | Bin 0 -> 37146 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/obj/guns/energy.dmi diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi new file mode 100644 index 0000000000000000000000000000000000000000..4dec4510085793611273b072d561193227868787 GIT binary patch literal 37146 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 Date: Fri, 26 Apr 2019 00:43:37 -0400 Subject: [PATCH 112/180] 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 4d631691d0..317753543e 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -564,7 +564,7 @@ display_name = "Weapon Development Technology" description = "Our researchers have found new to weaponize just about everything now." prereq_ids = list("engineering") - design_ids = list("pin_testing", "tele_shield") + design_ids = list("pin_testing", "tele_shield", "lasercarbine") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500) export_price = 5000 From fdbaafa5a95ed301319dae9d9ef495ebf04c5a7f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 00:45:17 -0400 Subject: [PATCH 113/180] Update weapon_designs.dm --- .../research/designs/weapon_designs.dm | 278 ++++++++++-------- 1 file changed, 157 insertions(+), 121 deletions(-) diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 9b42709fe2..4e31fe50a9 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -1,6 +1,10 @@ -///////////////////////////////////////// -/////////////////Weapons///////////////// -///////////////////////////////////////// +/////////////////////////////// +///////Weapons & Ammo////////// +/////////////////////////////// + +////////////// +//Ammo Boxes// +////////////// /datum/design/c38/sec id = "sec_38" @@ -13,6 +17,40 @@ id = "sec_38lethal" build_path = /obj/item/ammo_box/c38/lethal +////////////// +//WT550 Mags// +////////////// + +/datum/design/mag_oldsmg + name = "WT-550 Semi-Auto SMG Magazine (4.6x30mm)" + desc = "A 20 round magazine for the out of date security WT-550 Semi-Auto SMG." + id = "mag_oldsmg" + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000) + build_path = /obj/item/ammo_box/magazine/wt550m9 + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_oldsmg/ap_mag + name = "WT-550 Semi-Auto SMG Armour Piercing Magazine (4.6x30mm AP)" + desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." + id = "mag_oldsmg_ap" + materials = list(MAT_METAL = 6000, MAT_SILVER = 600) + build_path = /obj/item/ammo_box/magazine/wt550m9/wtap + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_oldsmg/ic_mag + name = "WT-550 Semi-Auto SMG Incendiary Magazine (4.6x30mm IC)" + desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." + id = "mag_oldsmg_ic" + materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_GLASS = 1000) + build_path = /obj/item/ammo_box/magazine/wt550m9/wtic + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +////////////// +//Ammo Shells/ +////////////// + /datum/design/rubbershot/sec id = "sec_rshot" build_type = PROTOLATHE @@ -43,6 +81,40 @@ category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY +/datum/design/stunshell + name = "Stun Shell" + desc = "A stunning shell for a shotgun." + id = "stunshell" + build_type = PROTOLATHE + materials = list(MAT_METAL = 200) + build_path = /obj/item/ammo_casing/shotgun/stunslug + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/techshell + name = "Unloaded Technological Shotshell" + desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects." + id = "techshotshell" + build_type = PROTOLATHE + materials = list(MAT_METAL = 1000, MAT_GLASS = 200) + build_path = /obj/item/ammo_casing/shotgun/techshell + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/cryostatis_shotgun_dart + name = "Cryostasis Shotgun Dart" + desc = "A shotgun dart designed with similar internals to that of a cryostatis beaker, allowing reagents to not react when inside." + id = "shotgundartcryostatis" + build_type = PROTOLATHE + materials = list(MAT_METAL = 3500) + build_path = /obj/item/ammo_casing/shotgun/dart/noreact + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + +////////////// +//Firing Pins/ +////////////// + /datum/design/pin_testing name = "Test-Range Firing Pin" desc = "This safety firing pin allows firearms to be operated within proximity to a firing range." @@ -63,6 +135,20 @@ category = list("Firing Pins") departmental_flags = DEPARTMENTAL_FLAG_SECURITY +////////////// +//Guns//////// +////////////// + +/datum/design/lasercarbine + name = "Laser Carbine" + desc = "Beefed up version of a standard laser gun." + id = "lasercarbine" + build_type = PROTOLATHE + materials = list(MAT_METAL = 15000, MAT_GLASS = 10000, MAT_GOLD = 2500, MAT_SILVER = 2500) + build_path = /obj/item/gun/energy/laser/carbine + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + /datum/design/stunrevolver name = "Tesla Revolver" desc = "A high-tech revolver that fires internal, reusable shock cartridges in a revolving cylinder. The cartridges can be recharged using conventional rechargers." @@ -83,16 +169,6 @@ category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/datum/design/tele_shield - name = "Telescopic Riot Shield" - desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." - id = "tele_shield" - build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200) - build_path = /obj/item/shield/riot/tele - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - /datum/design/beamrifle name = "Beam Marksman Rifle" desc = "A powerful long ranged anti-material rifle that fires charged particle beams to obliterate targets." @@ -122,11 +198,11 @@ materials = list(MAT_METAL = 5000, MAT_GLASS = 1000) build_path = /obj/item/gun/syringe/rapidsyringe category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL //uwu + departmental_flags = DEPARTMENTAL_FLAG_MEDICAL /datum/design/temp_gun name = "Temperature Gun" - desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want + desc = "A gun that shoots temperature beam like projectiles to change temperature." id = "temp_gun" build_type = PROTOLATHE materials = list(MAT_METAL = 5000, MAT_GLASS = 500, MAT_SILVER = 3000) @@ -145,46 +221,6 @@ category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SERVICE -/datum/design/large_grenade - name = "Large Grenade" - desc = "A grenade that affects a larger area and use larger containers." - id = "large_Grenade" - build_type = PROTOLATHE - materials = list(MAT_METAL = 3000) - build_path = /obj/item/grenade/chem_grenade/large - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE //Citadel edit added to science - -/datum/design/pyro_grenade - name = "Pyro Grenade" - desc = "An advanced grenade that is able to self ignite its mixture." - id = "pyro_Grenade" - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_PLASMA = 500) - build_path = /obj/item/grenade/chem_grenade/pyro - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/cryo_grenade - name = "Cryo Grenade" - desc = "An advanced grenade that rapidly cools its contents upon detonation." - id = "cryo_Grenade" - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 500) - build_path = /obj/item/grenade/chem_grenade/cryo - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL - -/datum/design/adv_grenade - name = "Advanced Release Grenade" - desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter." - id = "adv_Grenade" - build_type = PROTOLATHE - materials = list(MAT_METAL = 3000, MAT_GLASS = 500) - build_path = /obj/item/grenade/chem_grenade/adv_release - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL - /datum/design/xray name = "X-ray Laser Gun" desc = "Not quite as menacing as it sounds" @@ -215,64 +251,6 @@ category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE -//WT550 Mags - -/datum/design/mag_oldsmg - name = "WT-550 Semi-Auto SMG Magazine (4.6x30mm)" - desc = "A 20 round magazine for the out of date security WT-550 Semi-Auto SMG." - id = "mag_oldsmg" - build_type = PROTOLATHE - materials = list(MAT_METAL = 4000) - build_path = /obj/item/ammo_box/magazine/wt550m9 - category = list("Ammo") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/mag_oldsmg/ap_mag - name = "WT-550 Semi-Auto SMG Armour Piercing Magazine (4.6x30mm AP)" - desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." - id = "mag_oldsmg_ap" - materials = list(MAT_METAL = 6000, MAT_SILVER = 600) - build_path = /obj/item/ammo_box/magazine/wt550m9/wtap - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/mag_oldsmg/ic_mag - name = "WT-550 Semi-Auto SMG Incendiary Magazine (4.6x30mm IC)" - desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG." - id = "mag_oldsmg_ic" - materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_GLASS = 1000) - build_path = /obj/item/ammo_box/magazine/wt550m9/wtic - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/stunshell - name = "Stun Shell" - desc = "A stunning shell for a shotgun." - id = "stunshell" - build_type = PROTOLATHE - materials = list(MAT_METAL = 200) - build_path = /obj/item/ammo_casing/shotgun/stunslug - category = list("Ammo") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/techshell - name = "Unloaded Technological Shotshell" - desc = "A high-tech shotgun shell which can be loaded with materials to produce unique effects." - id = "techshotshell" - build_type = PROTOLATHE - materials = list(MAT_METAL = 1000, MAT_GLASS = 200) - build_path = /obj/item/ammo_casing/shotgun/techshell - category = list("Ammo") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_SCIENCE - -/datum/design/suppressor - name = "Universal Suppressor" - desc = "A reverse-engineered universal suppressor that fits on most small arms with threaded barrels." - id = "suppressor" - build_type = PROTOLATHE - materials = list(MAT_METAL = 2000, MAT_SILVER = 500) - build_path = /obj/item/suppressor - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - /datum/design/gravitygun name = "One-point Bluespace-gravitational Manipulator" desc = "A multi-mode device that blasts one-point bluespace-gravitational bolts that locally distort gravity." @@ -293,12 +271,70 @@ category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/datum/design/cryostatis_shotgun_dart - name = "Cryostasis Shotgun Dart" - desc = "A shotgun dart designed with similar internals to that of a cryostatis beaker, allowing reagents to not react when inside." - id = "shotgundartcryostatis" +/////////// +//Grenades/ +/////////// + +/datum/design/large_grenade + name = "Large Grenade" + desc = "A grenade that affects a larger area and use larger containers." + id = "large_Grenade" build_type = PROTOLATHE - materials = list(MAT_METAL = 3500) - build_path = /obj/item/ammo_casing/shotgun/dart/noreact - category = list("Ammo") - departmental_flags = DEPARTMENTAL_FLAG_MEDICAL + materials = list(MAT_METAL = 3000) + build_path = /obj/item/grenade/chem_grenade/large + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE + +/datum/design/pyro_grenade + name = "Pyro Grenade" + desc = "An advanced grenade that is able to self ignite its mixture." + id = "pyro_Grenade" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_PLASMA = 500) + build_path = /obj/item/grenade/chem_grenade/pyro + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/cryo_grenade + name = "Cryo Grenade" + desc = "An advanced grenade that rapidly cools its contents upon detonation." + id = "cryo_Grenade" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 500) + build_path = /obj/item/grenade/chem_grenade/cryo + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL + +/datum/design/adv_grenade + name = "Advanced Release Grenade" + desc = "An advanced grenade that can be detonated several times, best used with a repeating igniter." + id = "adv_Grenade" + build_type = PROTOLATHE + materials = list(MAT_METAL = 3000, MAT_GLASS = 500) + build_path = /obj/item/grenade/chem_grenade/adv_release + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_MEDICAL + +////////// +//MISC//// +////////// + +/datum/design/tele_shield + name = "Telescopic Riot Shield" + desc = "An advanced riot shield made of lightweight materials that collapses for easy storage." + id = "tele_shield" + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200) + build_path = /obj/item/shield/riot/tele + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/suppressor + name = "Universal Suppressor" + desc = "A reverse-engineered universal suppressor that fits on most small arms with threaded barrels." + id = "suppressor" + build_type = PROTOLATHE + materials = list(MAT_METAL = 2000, MAT_SILVER = 500) + build_path = /obj/item/suppressor + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY From 997df627243a5582542527b6cab54904c222c9b0 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 00:46:09 -0400 Subject: [PATCH 114/180] Update cell.dm --- code/modules/power/cell.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index e43db529b8..9fcdf091a1 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -200,6 +200,10 @@ charge = 0 update_icon() +/obj/item/stock_parts/cell/lascarbine + name = "laser carbine power supply" + maxcharge = 2500 + /obj/item/stock_parts/cell/pulse //200 pulse shots name = "pulse rifle power cell" maxcharge = 40000 From b4bdc9bc1d23f38ad36c28d8a2a7f27bb1d9d619 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 00:47:21 -0400 Subject: [PATCH 115/180] Update laser.dm --- code/modules/projectiles/guns/energy/laser.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 066b652984..4e97d0a9b3 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -39,6 +39,17 @@ selfcharge = EGUN_SELFCHARGE resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF +/obj/item/gun/energy/laser/carbine + name = "laser carbine" + desc = "A ruggedized laser carbine featuring much higher capacity and improved handling when compared to a normal laser gun." + icon_state = "lasernew" + item_state = "laser" + force = 10 + throwforce = 10 + ammo_type = list(/obj/item/ammo_casing/energy/lasergun) + cell_type = /obj/item/stock_parts/cell/lascarbine + resistance_flags = FIRE_PROOF | ACID_PROOF + /obj/item/gun/energy/laser/captain/scattershot name = "scatter shot laser rifle" icon_state = "lasercannon" From 41a0b802e8fdc94f8880fb06de2fa2e4bf909513 Mon Sep 17 00:00:00 2001 From: Useroth Date: Fri, 26 Apr 2019 17:01:30 +0200 Subject: [PATCH 116/180] Added myself to the admin list. Duh. --- config/admins.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/admins.txt b/config/admins.txt index 27a2178e2c..4a2b4ac8da 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -8,4 +8,4 @@ # NOTE: syntax was changed to allow hyphenation of ranknames, since spaces are stripped. # ############################################################################################### -yourckeygoeshere = Host +Useroth = Host From 5c88d7d8df890d016bbe420436b864504b7c0bb4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Fri, 26 Apr 2019 20:32:55 -0400 Subject: [PATCH 117/180] Delete projectile.dmi --- icons/obj/guns/projectile.dmi | Bin 35103 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/obj/guns/projectile.dmi diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi deleted file mode 100644 index 0ee0e3d2d1f3f5ba589bb498fd320dc5872738ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35103 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 Date: Fri, 26 Apr 2019 20:33:49 -0400 Subject: [PATCH 118/180] Add files via upload --- icons/obj/guns/projectile.dmi | Bin 0 -> 35700 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/obj/guns/projectile.dmi diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi new file mode 100644 index 0000000000000000000000000000000000000000..e4a39903b338e2d77286bd06b9e3be7cec729306 GIT binary patch literal 35700 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 z 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 hb(@SQKnAV6f$^|VcP&c1d Date: Fri, 26 Apr 2019 20:34:47 -0400 Subject: [PATCH 119/180] Update shotgun.dm --- code/modules/projectiles/guns/ballistic/shotgun.dm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 83ce525ac8..914f9bc016 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -88,6 +88,9 @@ icon_state = "riotshotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/riot sawn_desc = "Come with me if you want to live." + unique_reskin = list("Tatical" = "riotshotgun", + "Wood Stock" = "wood_riotshotgun" + ) /obj/item/gun/ballistic/shotgun/riot/attackby(obj/item/A, mob/user, params) ..() @@ -200,6 +203,10 @@ icon_state = "cshotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/com w_class = WEIGHT_CLASS_HUGE + unique_reskin = list("Tatical" = "cshotgun", + "Slick" = "cshotgun_slick" + ) + /obj/item/gun/ballistic/shotgun/automatic/combat/compact name = "compact combat shotgun" @@ -207,6 +214,10 @@ icon_state = "cshotgunc" mag_type = /obj/item/ammo_box/magazine/internal/shot/com/compact w_class = WEIGHT_CLASS_NORMAL + unique_reskin = list("Tatical" = "cshotgunc", + "Slick" = "cshotgunc_slick" + ) + //Dual Feed Shotgun From 15a1b2baeb631e60f887d3fc261e1ba43ab1cdcb Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 27 Apr 2019 18:56:40 -0400 Subject: [PATCH 120/180] Poojawa pointed this out --- .../modules/projectiles/guns/energy/laser.dm | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/energy/laser.dm b/modular_citadel/code/modules/projectiles/guns/energy/laser.dm index 61996a777a..c82a3e9ed9 100644 --- a/modular_citadel/code/modules/projectiles/guns/energy/laser.dm +++ b/modular_citadel/code/modules/projectiles/guns/energy/laser.dm @@ -17,30 +17,3 @@ /obj/item/gun/energy/laser/redtag lefthand_file = 'icons/mob/inhands/weapons/guns_lefthand.dmi' righthand_file = 'icons/mob/inhands/weapons/guns_righthand.dmi' - -/obj/item/gun/energy/laser/carbine - name = "VGS blaster carbine" - desc = "A ruggedized laser carbine featuring much higher capacity and improved handling when compared to a normal blaster carbine." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "lasernew" - item_state = "laser" - force = 10 - throwforce = 10 - ammo_type = list(/obj/item/ammo_casing/energy/lasergun) - cell_type = /obj/item/stock_parts/cell/lascarbine - -/obj/item/gun/energy/laser/carbine/nopin - pin = null - -/obj/item/stock_parts/cell/lascarbine - name = "laser carbine power supply" - maxcharge = 2500 - -/datum/design/lasercarbine - name = "VGS Blaster Carbine" - desc = "Beefed up version of a normal blaster carbine." - id = "lasercarbine" - build_type = PROTOLATHE - materials = list(MAT_GOLD = 2500, MAT_METAL = 5000, MAT_GLASS = 5000) - build_path = /obj/item/gun/energy/laser/carbine/nopin - category = list("Weapons") \ No newline at end of file From 7018372c5c5547004c75bc9102b3c6ee0db54b34 Mon Sep 17 00:00:00 2001 From: Useroth Date: Sun, 28 Apr 2019 15:48:02 +0200 Subject: [PATCH 121/180] Revert "Added myself to the admin list. Duh." This reverts commit 41a0b802e8fdc94f8880fb06de2fa2e4bf909513. --- config/admins.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/admins.txt b/config/admins.txt index 4a2b4ac8da..27a2178e2c 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -8,4 +8,4 @@ # NOTE: syntax was changed to allow hyphenation of ranknames, since spaces are stripped. # ############################################################################################### -Useroth = Host +yourckeygoeshere = Host From cd5317d1375d6e4efc901b807b9f52f52460699b Mon Sep 17 00:00:00 2001 From: Useroth Date: Sun, 28 Apr 2019 15:49:00 +0200 Subject: [PATCH 122/180] Fixed katana jaunt not working on dark tiles. --- code/datums/dash_weapon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/dash_weapon.dm b/code/datums/dash_weapon.dm index 03badb2069..a870ecae66 100644 --- a/code/datums/dash_weapon.dm +++ b/code/datums/dash_weapon.dm @@ -32,7 +32,7 @@ if(!IsAvailable()) return var/turf/T = get_turf(target) - if(target in view(user.client.view, get_turf(user))) + if(target in view(user.client.view, user)) var/obj/spot1 = new phaseout(get_turf(user), user.dir) user.forceMove(T) playsound(T, dash_sound, 25, 1) From b7b4bf1a61dba4353b29b9b4e6d7ce32cf463b3e Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 14:51:53 -0400 Subject: [PATCH 123/180] Update magweapon.dm --- .../projectiles/guns/ballistic/magweapon.dm | 232 ++++++++++++++++-- 1 file changed, 217 insertions(+), 15 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 017a9dd52d..275b003fea 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -1,3 +1,185 @@ +//Stollen vars so this all work for real - Copy pasted addtion + +/obj/item/ammo_casing/mag/ + var/e_cost = 50 + +/obj/item/gun/mag + var/obj/item/stock_parts/cell/cell //What type of power cell this uses + var/cell_type = /obj/item/stock_parts/cell + var/modifystate = 0 + var/list/ammo_type = list(/obj/item/ammo_casing/mag) + var/can_charge = 1 //Can it be charged in a recharger? + var/charge_sections = 4 + ammo_x_offset = 2 + var/old_ratio = 0 // stores the gun's previous ammo "ratio" to see if it needs an updated iconn + var/charge_tick = 0 + var/charge_delay = 4 + var/dead_cell = FALSE //set to true so the gun is given an empty cell + var/spawnwithmagazine = TRUE + var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info + var/obj/item/ammo_box/magazine/magazine + var/casing_ejector = TRUE //whether the gun ejects the chambered casing + +/obj/item/gun/mag/Initialize() + . = ..() + if(!spawnwithmagazine) + update_icon() + return + if (!magazine) + magazine = new mag_type(src) + chamber_round() + update_icon() + +/obj/item/gun/mag/process_chamber(empty_chamber = 1) + var/obj/item/ammo_casing/AC = chambered //Find chambered round + if(istype(AC)) //there's a chambered round + if(casing_ejector) + AC.forceMove(drop_location()) //Eject casing onto ground. + AC.bounce_away(TRUE) + chambered = null + else if(empty_chamber) + chambered = null + chamber_round() + +/obj/item/gun/mag/proc/chamber_round() + if (chambered || !magazine) + return + else if (magazine.ammo_count()) + chambered = magazine.get_round() + chambered.forceMove(src) + +/obj/item/gun/mag/can_shoot() + if(!magazine || !magazine.ammo_count(0)) + return 0 + return 1 + +/obj/item/gun/mag/attackby(obj/item/A, mob/user, params) + ..() + if (istype(A, /obj/item/ammo_box/magazine)) + var/obj/item/ammo_box/magazine/AM = A + if (!magazine && istype(AM, mag_type)) + if(user.transferItemToLoc(AM, src)) + magazine = AM + to_chat(user, "You load a new magazine into \the [src].") + if(magazine.ammo_count()) + playsound(src, "gun_insert_full_magazine", 70, 1) + if(!chambered) + chamber_round() + addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/weapons/gun_chamber_round.ogg', 100, 1), 3) + else + playsound(src, "gun_insert_empty_magazine", 70, 1) + A.update_icon() + update_icon() + return 1 + else + to_chat(user, "You cannot seem to get \the [src] out of your hands!") + return + else if (magazine) + to_chat(user, "There's already a magazine in \the [src].") + +//ATTACK HAND IGNORING PARENT RETURN VALUE + +/obj/item/gun/mag/attack_self(mob/living/user) + var/obj/item/ammo_casing/AC = chambered //Find chambered round + if(magazine) + magazine.forceMove(drop_location()) + user.put_in_hands(magazine) + magazine.update_icon() + if(magazine.ammo_count()) + playsound(src, 'sound/weapons/gun_magazine_remove_full.ogg', 70, 1) + else + playsound(src, "gun_remove_empty_magazine", 70, 1) + magazine = null + to_chat(user, "You pull the magazine out of \the [src].") + else if(chambered) + AC.forceMove(drop_location()) + AC.bounce_away() + chambered = null + to_chat(user, "You unload the round from \the [src]'s chamber.") + playsound(src, "gun_slide_lock", 70, 1) + else + to_chat(user, "There's no magazine in \the [src].") + update_icon() + return + + +/obj/item/gun/mag/examine(mob/user) + ..() + to_chat(user, "It has [get_ammo()] round\s remaining.") + +/obj/item/gun/mag/proc/get_ammo(countchambered = 1) + var/boolets = 0 //mature var names for mature people + if (chambered && countchambered) + boolets++ + if (magazine) + boolets += magazine.ammo_count() + return boolets + +/obj/item/gun/mag/emp_act(severity) + . = ..() + if(!(. & EMP_PROTECT_CONTENTS)) + cell.use(round(cell.charge / severity)) + recharge_newshot() //and try to charge a new shot + +/obj/item/gun/mag/get_cell() + return cell + +/obj/item/gun/mag/Initialize() + . = ..() + if(cell_type) + cell = new cell_type(src) + else + cell = new(src) + if(!dead_cell) + cell.give(cell.maxcharge) + update_ammo_types() + recharge_newshot(TRUE) + +/obj/item/gun/mag/proc/update_ammo_types() + var/obj/item/ammo_casing/mag/shot + for (var/i = 1, i <= ammo_type.len, i++) + var/shottype = ammo_type[i] + shot = new shottype(src) + ammo_type[i] = shot + fire_sound = shot.fire_sound + fire_delay = shot.delay + +/obj/item/gun/mag/Destroy() + QDEL_NULL(cell) + STOP_PROCESSING(SSobj, src) + return ..() + +/obj/item/gun/mag/can_shoot() + var/obj/item/ammo_casing/mag/ = ammo_type + return !QDELETED(cell) ? (cell.charge >= mag.e_cost) : FALSE + +/obj/item/gun/mag/recharge_newshot(no_cyborg_drain) + if (!ammo_type || !cell) + return + if(!chambered) + var/obj/item/ammo_casing/energy/AC = ammo_type + if(cell.charge >= AC.e_cost) //if there's enough power in the cell cell... + chambered = AC //...prepare a new shot based on the current ammo type selected + if(!chambered.BB) + chambered.newshot() + +/obj/item/gun/mag/process_chamber() + if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... + var/obj/item/ammo_casing/mag/ = chambered + cell.use(mag.e_cost)//... drain the cell cell + chambered = null //either way, released the prepared shot + recharge_newshot() //try to charge a new shot + +/obj/item/gun/mag/update_icon(force_update) + if(QDELETED(src)) + return + ..() + var/ratio = CEILING(CLAMP(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) + if(ratio == old_ratio && !force_update) + return + old_ratio = ratio + cut_overlays() + ///////XCOM X9 AR/////// /obj/item/gun/ballistic/automatic/x9 //will be adminspawn only so ERT or something can use them @@ -55,7 +237,7 @@ /obj/item/projectile/bullet/nlmags //non-lethal boolets icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-nl" - damage = 0 + damage = 2 knockdown = 0 stamina = 25 armour_penetration = -10 @@ -67,18 +249,20 @@ /////actual ammo///// -/obj/item/ammo_casing/caseless/amags +/obj/item/ammo_casing/mag/amags desc = "A ferromagnetic slug intended to be launched out of a compatible weapon." caliber = "mags" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" + e_cost = 50 projectile_type = /obj/item/projectile/bullet/mags -/obj/item/ammo_casing/caseless/anlmags +/obj/item/ammo_casing/mag/anlmags desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload." caliber = "mags" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" + e_cost = 50 projectile_type = /obj/item/projectile/bullet/nlmags //////magazines///// @@ -87,7 +271,7 @@ name = "magpistol magazine (non-lethal disabler)" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "nlmagmag" - ammo_type = /obj/item/ammo_casing/caseless/anlmags + ammo_type = /obj/item/ammo_casing/mag/anlmags caliber = "mags" max_ammo = 15 multiple_sprites = 2 @@ -96,11 +280,11 @@ name = "magpistol magazine (lethal)" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "smallmagmag" - ammo_type = /obj/item/ammo_casing/caseless/amags + ammo_type = /obj/item/ammo_casing/mag/amags //////the gun itself////// -/obj/item/gun/ballistic/automatic/pistol/mag +/obj/item/gun/ballistic/mag/pistol/mag name = "magpistol" desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' @@ -108,12 +292,13 @@ force = 10 fire_sound = 'sound/weapons/magpistol.ogg' mag_type = /obj/item/ammo_box/magazine/mmag/small +// cell_type = /obj/item/stock_parts/cell/magpistal can_suppress = 0 casing_ejector = 0 fire_delay = 2 recoil = 0.2 -/obj/item/gun/ballistic/automatic/pistol/mag/update_icon() +/obj/item/gun/mag/automatic/pistol/mag/update_icon() ..() if(magazine) cut_overlays() @@ -122,9 +307,16 @@ cut_overlays() icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" +//////the cell//////////// + +/obj/item/stock_parts/cell/magpistal + name = "magpistal hyper power cell" + desc = "A small hyper cell, used in the mag pistal" + maxcharge = 3500 //70 shots before recharge + ///research memes/// -/obj/item/gun/ballistic/automatic/pistol/mag/nopin +/obj/item/gun/mag/automatic/pistol/mag/nopin pin = null spawnwithmagazine = FALSE @@ -134,7 +326,7 @@ id = "magpisol" build_type = PROTOLATHE materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000) - build_path = /obj/item/gun/ballistic/automatic/pistol/mag/nopin + build_path = /obj/item/gun/mag/automatic/pistol/mag/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -210,7 +402,7 @@ /obj/item/projectile/bullet/nlmagrifle //non-lethal boolets icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magjectile-large-nl" - damage = 0 + damage = 2 knockdown = 0 stamina = 25 armour_penetration = -10 @@ -221,18 +413,20 @@ ///ammo casings/// -/obj/item/ammo_casing/caseless/amagm +/obj/item/ammo_casing/energy/mag/amagm desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon." caliber = "magm" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" + e_cost = 50 projectile_type = /obj/item/projectile/bullet/magrifle -/obj/item/ammo_casing/caseless/anlmagm +/obj/item/ammo_casing/energy/mag/anlmagm desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload." caliber = "magm" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" + e_cost = 50 projectile_type = /obj/item/projectile/bullet/nlmagrifle ///magazines/// @@ -241,7 +435,7 @@ name = "magrifle magazine (non-lethal disabler)" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/caseless/anlmagm + ammo_type = /obj/item/ammo_casing/energy/mag/anlmagm caliber = "magm" max_ammo = 24 multiple_sprites = 2 @@ -250,18 +444,19 @@ name = "magrifle magazine (lethal)" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/caseless/amagm + ammo_type = /obj/item/ammo_casing/energy/mag/amagm max_ammo = 24 ///the gun itself/// -/obj/item/gun/ballistic/automatic/magrifle +/obj/item/gun/mag/automatic/magrifle name = "\improper Magnetic Rifle" desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magrifle" item_state = "arg" slot_flags = 0 + cell_type = /obj/item/stock_parts/cell/magrifle mag_type = /obj/item/ammo_box/magazine/mmag fire_sound = 'sound/weapons/magrifle.ogg' can_suppress = 0 @@ -271,6 +466,13 @@ recoil = 0.15 casing_ejector = 0 +//////the cell//////////// + +/obj/item/stock_parts/cell/magrifle + name = "magrifle hyper power cell" + desc = "A small hyper cell, used in the mag rifle" + maxcharge = 2400 //48 shots before recharge + ///research/// /obj/item/gun/ballistic/automatic/magrifle/nopin From 59226233f854df53604967254a02fa089ec4373b Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 14:52:46 -0400 Subject: [PATCH 124/180] Update recharger.dm --- code/game/machinery/recharger.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 94b6eee8aa..d44053f433 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -15,7 +15,9 @@ /obj/item/gun/energy, /obj/item/melee/baton, /obj/item/ammo_box/magazine/recharge, - /obj/item/modular_computer)) + /obj/item/modular_computer, + /obj/item/gun/mag/automatic/pistol/mag, + /obj/item/gun/mag/automatic/magrifle)) /obj/machinery/recharger/RefreshParts() for(var/obj/item/stock_parts/capacitor/C in component_parts) From c59cb823bb522034f343859ed7ea1459b65f71f2 Mon Sep 17 00:00:00 2001 From: Useroth Date: Sun, 28 Apr 2019 21:14:11 +0200 Subject: [PATCH 125/180] Let's try like this. --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 275b003fea..2a8bbb6877 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -150,7 +150,7 @@ return ..() /obj/item/gun/mag/can_shoot() - var/obj/item/ammo_casing/mag/ = ammo_type + var/obj/item/ammo_casing/mag/mag = ammo_type return !QDELETED(cell) ? (cell.charge >= mag.e_cost) : FALSE /obj/item/gun/mag/recharge_newshot(no_cyborg_drain) @@ -165,7 +165,7 @@ /obj/item/gun/mag/process_chamber() if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... - var/obj/item/ammo_casing/mag/ = chambered + var/obj/item/ammo_casing/mag/mag = chambered cell.use(mag.e_cost)//... drain the cell cell chambered = null //either way, released the prepared shot recharge_newshot() //try to charge a new shot From 6021e80a8b9c68ca95150c846488ca47ae28890b Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Sun, 28 Apr 2019 13:23:16 -0700 Subject: [PATCH 126/180] Update penis.dm --- modular_citadel/code/modules/arousal/organs/penis.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index 38e8e44f39..011fb4d9f3 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -40,7 +40,8 @@ var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]" icon_state = sanitize_text(string) var/lowershape = lowertext(shape) - desc = "You see a [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[length > 1 ? "es" : ""] long." + desc = "You see [aroused_state ? "an erect" : "a flacid"] [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[round(length, 0.25) != 1 ? "es" : ""] long and [round(girth, 0.25)] inch[round(girth, 0.25) != 1 ? "es" : ""] in girth." + if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) if(ishuman(owner)) // Check before recasting type, although someone fucked up if you're not human AND have use_skintones somehow... From 36fc30f7a7a0bba87dcf9f80ccd0c207f884f1f5 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Sun, 28 Apr 2019 13:39:24 -0700 Subject: [PATCH 127/180] fugg --- modular_citadel/code/modules/arousal/organs/penis.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index 011fb4d9f3..18c4d44f13 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -40,7 +40,7 @@ var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]" icon_state = sanitize_text(string) var/lowershape = lowertext(shape) - desc = "You see [aroused_state ? "an erect" : "a flacid"] [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[round(length, 0.25) != 1 ? "es" : ""] long and [round(girth, 0.25)] inch[round(girth, 0.25) != 1 ? "es" : ""] in girth." + desc = "You see [aroused_state ? "an erect" : "a flaccid"] [lowershape] penis. You estimate it's about [round(length, 0.25)] inch[round(length, 0.25) != 1 ? "es" : ""] long and [round(girth, 0.25)] inch[round(girth, 0.25) != 1 ? "es" : ""] in girth." if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) From 0fa3fb6aca7b138681b33b420dc44cf2db98b14f Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 16:46:12 -0400 Subject: [PATCH 128/180] Update magweapon.dm --- .../projectiles/guns/ballistic/magweapon.dm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 2a8bbb6877..b13f564f73 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -16,7 +16,7 @@ var/charge_delay = 4 var/dead_cell = FALSE //set to true so the gun is given an empty cell var/spawnwithmagazine = TRUE - var/mag_type = /obj/item/ammo_box/magazine/m10mm //Removes the need for max_ammo and caliber info + var/mag_type = /obj/item/ammo_box/magazine/mmag //Removes the need for max_ammo and caliber info var/obj/item/ammo_box/magazine/magazine var/casing_ejector = TRUE //whether the gun ejects the chambered casing @@ -284,7 +284,7 @@ //////the gun itself////// -/obj/item/gun/ballistic/mag/pistol/mag +/obj/item/gun/mag/pistol/mag name = "magpistol" desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' @@ -292,13 +292,13 @@ force = 10 fire_sound = 'sound/weapons/magpistol.ogg' mag_type = /obj/item/ammo_box/magazine/mmag/small -// cell_type = /obj/item/stock_parts/cell/magpistal + cell_type = /obj/item/stock_parts/cell/magpistal can_suppress = 0 casing_ejector = 0 fire_delay = 2 recoil = 0.2 -/obj/item/gun/mag/automatic/pistol/mag/update_icon() +/obj/item/gun/mag/pistol/mag/update_icon() ..() if(magazine) cut_overlays() @@ -316,7 +316,7 @@ ///research memes/// -/obj/item/gun/mag/automatic/pistol/mag/nopin +/obj/item/gun/mag/pistol/mag/nopin pin = null spawnwithmagazine = FALSE @@ -326,7 +326,7 @@ id = "magpisol" build_type = PROTOLATHE materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000) - build_path = /obj/item/gun/mag/automatic/pistol/mag/nopin + build_path = /obj/item/gun/mag/pistol/mag/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -449,7 +449,7 @@ ///the gun itself/// -/obj/item/gun/mag/automatic/magrifle +/obj/item/gun/mag/magrifle name = "\improper Magnetic Rifle" desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' @@ -475,7 +475,7 @@ ///research/// -/obj/item/gun/ballistic/automatic/magrifle/nopin +/obj/item/gun/mag/magrifle/nopin pin = null spawnwithmagazine = FALSE @@ -485,7 +485,7 @@ id = "magrifle" build_type = PROTOLATHE materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000) - build_path = /obj/item/gun/ballistic/automatic/magrifle/nopin + build_path = /obj/item/gun/mag/magrifle/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY From 8055d21c0cca74d91274a0fff4abb673d722e175 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 16:46:33 -0400 Subject: [PATCH 129/180] Update recharger.dm --- code/game/machinery/recharger.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index d44053f433..6c703f5763 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -16,8 +16,8 @@ /obj/item/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/modular_computer, - /obj/item/gun/mag/automatic/pistol/mag, - /obj/item/gun/mag/automatic/magrifle)) + /obj/item/gun/mag/pistol/mag, + /obj/item/gun/mag/magrifle)) /obj/machinery/recharger/RefreshParts() for(var/obj/item/stock_parts/capacitor/C in component_parts) From bec3cf89676144ebb481025fe1aa15daf6b2b4c8 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 21:24:45 -0400 Subject: [PATCH 130/180] Update magweapon.dm --- .../projectiles/guns/ballistic/magweapon.dm | 491 +++++++----------- 1 file changed, 180 insertions(+), 311 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index b13f564f73..76450156d9 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -102,7 +102,6 @@ update_icon() return - /obj/item/gun/mag/examine(mob/user) ..() to_chat(user, "It has [get_ammo()] round\s remaining.") @@ -220,113 +219,127 @@ w_class = WEIGHT_CLASS_BULKY weapon_weight = WEAPON_HEAVY -////////XCOM2 Magpistol///////// +///ammo/// -//////projectiles////// +/obj/item/ammo_casing/caseless/mag_e + var/energy_cost = 0 -/obj/item/projectile/bullet/mags +/obj/item/ammo_casing/caseless/mag_e/amagm_e + desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon." + caliber = "magm" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile" - damage = 15 - armour_penetration = 10 - light_range = 2 - speed = 0.6 - range = 25 - light_color = LIGHT_COLOR_RED + icon_state = "mag-casing-live" + projectile_type = /obj/item/projectile/bullet/magrifle + energy_cost = 300 -/obj/item/projectile/bullet/nlmags //non-lethal boolets +/obj/item/ammo_casing/caseless/mag_e/anlmagm_e + desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload." + caliber = "magm" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-nl" - damage = 2 - knockdown = 0 - stamina = 25 - armour_penetration = -10 - light_range = 2 - speed = 0.7 - range = 25 - light_color = LIGHT_COLOR_BLUE + icon_state = "mag-casing-live" + projectile_type = /obj/item/projectile/bullet/nlmagrifle + energy_cost = 300 - -/////actual ammo///// - -/obj/item/ammo_casing/mag/amags +/obj/item/ammo_casing/caseless/mag_e/amags desc = "A ferromagnetic slug intended to be launched out of a compatible weapon." caliber = "mags" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" - e_cost = 50 projectile_type = /obj/item/projectile/bullet/mags + energy_cost = 200 -/obj/item/ammo_casing/mag/anlmags +/obj/item/ammo_casing/caseless/mag_e/anlmags desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload." caliber = "mags" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" - e_cost = 50 projectile_type = /obj/item/projectile/bullet/nlmags + energy_cost = 200 -//////magazines///// +///magazines/// -/obj/item/ammo_box/magazine/mmag/small +/obj/item/ammo_box/magazine/mmag_e/ + name = "magrifle magazine (non-lethal disabler)" + desc = "A 24-round magazine for the non-lethal Magrifle." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mediummagmag" + ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmagm_e + caliber = "magm" + max_ammo = 24 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/mmag_e/lethal + name = "magrifle magazine (lethal)" + desc = "A 24-round magazine for the lethal Magrifle." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mediummagmag" + ammo_type = /obj/item/ammo_casing/caseless/mag_e/amagm_e + max_ammo = 24 + +/obj/item/ammo_box/magazine/mmag_e/small name = "magpistol magazine (non-lethal disabler)" + desc = "A 15-round magazine for the non-lethal Magpistol." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "nlmagmag" - ammo_type = /obj/item/ammo_casing/mag/anlmags + ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmags caliber = "mags" max_ammo = 15 multiple_sprites = 2 -/obj/item/ammo_box/magazine/mmag/small/lethal +/obj/item/ammo_box/magazine/mmag_e/small/lethal name = "magpistol magazine (lethal)" + desc = "A 15-round magazine for the lethal Magpistol." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "smallmagmag" - ammo_type = /obj/item/ammo_casing/mag/amags + ammo_type = /obj/item/ammo_casing/caseless/mag_e/amags -//////the gun itself////// +///cells/// -/obj/item/gun/mag/pistol/mag - name = "magpistol" - desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magpistol" - force = 10 - fire_sound = 'sound/weapons/magpistol.ogg' - mag_type = /obj/item/ammo_box/magazine/mmag/small - cell_type = /obj/item/stock_parts/cell/magpistal - can_suppress = 0 - casing_ejector = 0 - fire_delay = 2 - recoil = 0.2 +/obj/item/stock_parts/cell/magrifle_e + name = "magrifle power supply" + maxcharge = 14400 -/obj/item/gun/mag/pistol/mag/update_icon() - ..() - if(magazine) - cut_overlays() - add_overlay("magpistol-magazine") - else - cut_overlays() - icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" +/obj/item/stock_parts/cell/magpistol_e + name = "magpistol power supply" + maxcharge = 6000 -//////the cell//////////// +///sci designs/// -/obj/item/stock_parts/cell/magpistal - name = "magpistal hyper power cell" - desc = "A small hyper cell, used in the mag pistal" - maxcharge = 3500 //70 shots before recharge +/datum/design/magrifle_e + name = "Magrifle" + desc = "An upscaled Magpistol in rifle form." + id = "magrifle_e" + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000) + build_path = /obj/item/gun/ballistic/automatic/magrifle_e/nopin + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY -///research memes/// +/datum/design/mag_magrifle_e + name = "Magrifle Magazine (Lethal)" + desc = "A 24-round magazine for the Magrifle." + id = "mag_magrifle_e" + build_type = PROTOLATHE + materials = list(MAT_METAL = 8000, MAT_SILVER = 1000) + build_path = /obj/item/ammo_box/magazine/mmag_e/lethal + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/obj/item/gun/mag/pistol/mag/nopin - pin = null - spawnwithmagazine = FALSE +/datum/design/mag_magrifle_e/nl + name = "Magrifle Magazine (Non-Lethal)" + desc = "A 24- round non-lethal magazine for the Magrifle." + id = "mag_magrifle_nl_e" + materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) + build_path = /obj/item/ammo_box/magazine/mmag_e + departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/datum/design/magpistol +/datum/design/magpistol_e name = "Magpistol" desc = "A weapon which fires ferromagnetic slugs." id = "magpisol" build_type = PROTOLATHE materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000) - build_path = /obj/item/gun/mag/pistol/mag/nopin + build_path = /obj/item/gun/ballistic/automatic/pistol/mag_e/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -336,7 +349,7 @@ id = "mag_magpistol" build_type = PROTOLATHE materials = list(MAT_METAL = 4000, MAT_SILVER = 500) - build_path = /obj/item/ammo_box/magazine/mmag/small/lethal + build_path = /obj/item/ammo_box/magazine/mmag_e/small/lethal category = list("Ammo") departmental_flags = DEPARTMENTAL_FLAG_SECURITY @@ -345,119 +358,19 @@ desc = "A 14 round non-lethal magazine for the Magpistol." id = "mag_magpistol_nl" materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250) - build_path = /obj/item/ammo_box/magazine/mmag/small + build_path = /obj/item/ammo_box/magazine/mmag_e/small departmental_flags = DEPARTMENTAL_FLAG_SECURITY -//////toy memes///// +///magrifle/// -/obj/item/projectile/bullet/reusable/foam_dart/mag - name = "magfoam dart" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-toy" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - light_range = 2 - light_color = LIGHT_COLOR_YELLOW - -/obj/item/ammo_casing/caseless/foam_dart/mag - name = "magfoam dart" - desc = "A foam dart with fun light-up projectiles powered by magnets!" - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/mag - -/obj/item/ammo_box/magazine/internal/shot/toy/mag - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - max_ammo = 14 - -/obj/item/gun/ballistic/shotgun/toy/mag - name = "foam force magpistol" - desc = "A fancy toy sold alongside light-up foam force darts. Ages 8 and up." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "toymag" - item_state = "gun" - mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag - fire_sound = 'sound/weapons/magpistol.ogg' - slot_flags = SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - -/obj/item/ammo_box/foambox/mag - name = "ammo box (Magnetic Foam Darts)" - icon = 'icons/obj/guns/toy.dmi' - icon_state = "foambox" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - max_ammo = 42 - -//////Magrifle////// - -///projectiles/// - -/obj/item/projectile/bullet/magrifle - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-large" - damage = 20 - armour_penetration = 25 - light_range = 3 - speed = 0.7 - range = 35 - light_color = LIGHT_COLOR_RED - -/obj/item/projectile/bullet/nlmagrifle //non-lethal boolets - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-large-nl" - damage = 2 - knockdown = 0 - stamina = 25 - armour_penetration = -10 - light_range = 3 - speed = 0.65 - range = 35 - light_color = LIGHT_COLOR_BLUE - -///ammo casings/// - -/obj/item/ammo_casing/energy/mag/amagm - desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon." - caliber = "magm" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mag-casing-live" - e_cost = 50 - projectile_type = /obj/item/projectile/bullet/magrifle - -/obj/item/ammo_casing/energy/mag/anlmagm - desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload." - caliber = "magm" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mag-casing-live" - e_cost = 50 - projectile_type = /obj/item/projectile/bullet/nlmagrifle - -///magazines/// - -/obj/item/ammo_box/magazine/mmag/ - name = "magrifle magazine (non-lethal disabler)" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/energy/mag/anlmagm - caliber = "magm" - max_ammo = 24 - multiple_sprites = 2 - -/obj/item/ammo_box/magazine/mmag/lethal - name = "magrifle magazine (lethal)" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/energy/mag/amagm - max_ammo = 24 - -///the gun itself/// - -/obj/item/gun/mag/magrifle +/obj/item/gun/ballistic/automatic/magrifle_e name = "\improper Magnetic Rifle" desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magrifle" item_state = "arg" slot_flags = 0 - cell_type = /obj/item/stock_parts/cell/magrifle - mag_type = /obj/item/ammo_box/magazine/mmag + mag_type = /obj/item/ammo_box/magazine/mmag_e fire_sound = 'sound/weapons/magrifle.ogg' can_suppress = 0 burst_size = 3 @@ -465,69 +378,111 @@ spread = 5 recoil = 0.15 casing_ejector = 0 + var/obj/item/stock_parts/cell/cell + var/cell_type = /obj/item/stock_parts/cell/magrifle_e + var/dead_cell = FALSE -//////the cell//////////// +/obj/item/gun/ballistic/automatic/magrifle_e/can_shoot() + if(QDELETED(cell)) + return 0 -/obj/item/stock_parts/cell/magrifle - name = "magrifle hyper power cell" - desc = "A small hyper cell, used in the mag rifle" - maxcharge = 2400 //48 shots before recharge + var/obj/item/ammo_casing/caseless/mag_e/shot = chambered + if(!shot) + return 0 + if(cell.charge < shot.energy_cost*burst_size) + return 0 + . = ..() -///research/// +/obj/item/gun/ballistic/automatic/magrifle_e/shoot_live_shot() + var/obj/item/ammo_casing/caseless/mag_e/shot = chambered + cell.use(shot.energy_cost) + . = ..() -/obj/item/gun/mag/magrifle/nopin +/obj/item/gun/ballistic/automatic/magrifle_e/emp_act(severity) + . = ..() + if(!(. & EMP_PROTECT_CONTENTS)) + cell.use(round(cell.charge / severity)) + +/obj/item/gun/ballistic/automatic/magrifle_e/get_cell() + return cell + +/obj/item/gun/ballistic/automatic/magrifle_e/Initialize() + . = ..() + if(cell_type) + cell = new cell_type(src) + else + cell = new(src) + + if(!dead_cell) + cell.give(cell.maxcharge) + +/obj/item/gun/ballistic/automatic/magrifle_e/nopin pin = null spawnwithmagazine = FALSE -/datum/design/magrifle - name = "Magrifle" - desc = "An upscaled Magpistol in rifle form." - id = "magrifle" - build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000) - build_path = /obj/item/gun/mag/magrifle/nopin - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY +///magpistol/// -/datum/design/mag_magrifle - name = "Magrifle Magazine (Lethal)" - desc = "A 24-round magazine for the Magrifle." - id = "mag_magrifle" - build_type = PROTOLATHE - materials = list(MAT_METAL = 8000, MAT_SILVER = 1000) - build_path = /obj/item/ammo_box/magazine/mmag/lethal - category = list("Ammo") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/mag_magrifle/nl - name = "Magrifle Magazine (Non-Lethal)" - desc = "A 24- round non-lethal magazine for the Magrifle." - id = "mag_magrifle_nl" - materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) - build_path = /obj/item/ammo_box/magazine/mmag - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -///foamagrifle/// - -/obj/item/ammo_box/magazine/toy/foamag - name = "foam force magrifle magazine" +/obj/item/gun/ballistic/automatic/pistol/mag_e + name = "magpistol" + desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "foamagmag" - max_ammo = 24 - multiple_sprites = 2 - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - materials = list(MAT_METAL = 200) + icon_state = "magpistol" + force = 10 + fire_sound = 'sound/weapons/magpistol.ogg' + mag_type = /obj/item/ammo_box/magazine/mmag_e/small + can_suppress = 0 + casing_ejector = 0 + fire_delay = 2 + recoil = 0.2 + var/obj/item/stock_parts/cell/cell + var/cell_type = /obj/item/stock_parts/cell/magpistol_e + var/dead_cell = FALSE -/obj/item/gun/ballistic/automatic/magrifle/toy - name = "foamag rifle" - desc = "A foam launching magnetic rifle. Ages 8 and up." - icon_state = "foamagrifle" - obj_flags = 0 - mag_type = /obj/item/ammo_box/magazine/toy/foamag - casing_ejector = FALSE - spread = 60 - w_class = WEIGHT_CLASS_BULKY - weapon_weight = WEAPON_HEAVY +/obj/item/gun/ballistic/automatic/pistol/mag_e/can_shoot() + if(QDELETED(cell)) + return 0 + + var/obj/item/ammo_casing/caseless/mag_e/shot = chambered + if(!shot) + return 0 + if(cell.charge < shot.energy_cost) + return 0 + . = ..() + +/obj/item/gun/ballistic/automatic/pistol/mag_e/shoot_live_shot() + var/obj/item/ammo_casing/caseless/mag_e/shot = chambered + cell.use(shot.energy_cost) + . = ..() + +/obj/item/gun/ballistic/automatic/pistol/mag_e/emp_act(severity) + . = ..() + if(!(. & EMP_PROTECT_CONTENTS)) + cell.use(round(cell.charge / severity)) + +/obj/item/gun/ballistic/automatic/pistol/mag_e/get_cell() + return cell + +/obj/item/gun/ballistic/automatic/pistol/mag_e/Initialize() + . = ..() + if(cell_type) + cell = new cell_type(src) + else + cell = new(src) + if(!dead_cell) + cell.give(cell.maxcharge) + +/obj/item/gun/ballistic/automatic/pistol/mag_e/update_icon() + ..() + if(magazine) + cut_overlays() + add_overlay("magpistol-magazine") + else + cut_overlays() + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + +/obj/item/gun/ballistic/automatic/pistol/mag_e/nopin + pin = null + spawnwithmagazine = FALSE /* // TECHWEBS IMPLEMENTATION @@ -542,93 +497,7 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 - -//////Hyper-Burst Rifle////// - -///projectiles/// - -/obj/item/projectile/bullet/mags/hyper - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile" - damage = 10 - armour_penetration = 10 - stamina = 10 - forcedodge = TRUE - range = 6 - light_range = 1 - light_color = LIGHT_COLOR_RED - -/obj/item/projectile/bullet/mags/hyper/inferno - icon_state = "magjectile-large" - stamina = 0 - forcedodge = FALSE - range = 25 - light_range = 4 - -/obj/item/projectile/bullet/mags/hyper/inferno/on_hit(atom/target, blocked = FALSE) - ..() - explosion(target, -1, 1, 2, 4, 5) - return 1 - -///ammo casings/// - -/obj/item/ammo_casing/caseless/ahyper - desc = "A large block of speciallized ferromagnetic material designed to be fired out of the experimental Hyper-Burst Rifle." - caliber = "hypermag" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "hyper-casing-live" - projectile_type = /obj/item/projectile/bullet/mags/hyper - pellets = 12 - variance = 40 - -/obj/item/ammo_casing/caseless/ahyper/inferno - projectile_type = /obj/item/projectile/bullet/mags/hyper/inferno - pellets = 1 - variance = 0 - -///magazines/// - -/obj/item/ammo_box/magazine/mhyper - name = "hyper-burst rifle magazine" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "hypermag-4" - ammo_type = /obj/item/ammo_casing/caseless/ahyper - caliber = "hypermag" - desc = "A magazine for the Hyper-Burst Rifle. Loaded with a special slug that fragments into 12 smaller shards which can absolutely puncture anything, but has rather short effective range." - max_ammo = 4 - -/obj/item/ammo_box/magazine/mhyper/update_icon() - ..() - icon_state = "hypermag-[ammo_count() ? "4" : "0"]" - -/obj/item/ammo_box/magazine/mhyper/inferno - name = "hyper-burst rifle magazine (inferno)" - ammo_type = /obj/item/ammo_casing/caseless/ahyper/inferno - desc = "A magazine for the Hyper-Burst Rifle. Loaded with a special slug that violently reacts with whatever surface it strikes, generating a massive amount of heat and light." - -///gun itself/// - -/obj/item/gun/ballistic/automatic/hyperburst - name = "\improper Hyper-Burst Rifle" - desc = "An extremely beefed up version of a stolen Nanotrasen weapon prototype, this 'rifle' is more like a cannon, with an extremely large bore barrel capable of generating several smaller magnetic 'barrels' to simultaneously launch multiple projectiles at once." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "hyperburst" - item_state = "arg" - slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/mhyper - fire_sound = 'sound/weapons/magburst.ogg' - can_suppress = 0 - burst_size = 1 - fire_delay = 40 - recoil = 2 - casing_ejector = 0 - weapon_weight = WEAPON_HEAVY - -/obj/item/gun/ballistic/automatic/hyperburst/update_icon() - ..() - icon_state = "hyperburst[magazine ? "-[get_ammo()]" : ""][chambered ? "" : "-e"]" - -///toy memes/// +//Toy Memes /obj/item/projectile/beam/lasertag/mag //the projectile, compatible with regular laser tag armor icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' From a9aa85530503b34eb776d101f66b5ae7531e0ea6 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 21:25:18 -0400 Subject: [PATCH 131/180] Update recharger.dm --- code/game/machinery/recharger.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm index 6c703f5763..927608d3d5 100755 --- a/code/game/machinery/recharger.dm +++ b/code/game/machinery/recharger.dm @@ -16,8 +16,8 @@ /obj/item/melee/baton, /obj/item/ammo_box/magazine/recharge, /obj/item/modular_computer, - /obj/item/gun/mag/pistol/mag, - /obj/item/gun/mag/magrifle)) + /obj/item/gun/ballistic/automatic/magrifle_e, + /obj/item/gun/ballistic/automatic/pistol/mag_e)) /obj/machinery/recharger/RefreshParts() for(var/obj/item/stock_parts/capacitor/C in component_parts) From fb7a129ca573b477c64d797b2763152050b9f685 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 21:56:48 -0400 Subject: [PATCH 132/180] Update magweapon.dm --- .../projectiles/guns/ballistic/magweapon.dm | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index adffe54761..e6ef3e36e4 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -532,6 +532,92 @@ research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 + +//////Hyper-Burst Rifle////// + +///projectiles/// + +/obj/item/projectile/bullet/mags/hyper + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile" + damage = 10 + armour_penetration = 10 + stamina = 10 + forcedodge = TRUE + range = 6 + light_range = 1 + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/bullet/mags/hyper/inferno + icon_state = "magjectile-large" + stamina = 0 + forcedodge = FALSE + range = 25 + light_range = 4 + +/obj/item/projectile/bullet/mags/hyper/inferno/on_hit(atom/target, blocked = FALSE) + ..() + explosion(target, -1, 1, 2, 4, 5) + return 1 + +///ammo casings/// + +/obj/item/ammo_casing/caseless/ahyper + desc = "A large block of speciallized ferromagnetic material designed to be fired out of the experimental Hyper-Burst Rifle." + caliber = "hypermag" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "hyper-casing-live" + projectile_type = /obj/item/projectile/bullet/mags/hyper + pellets = 12 + variance = 40 + +/obj/item/ammo_casing/caseless/ahyper/inferno + projectile_type = /obj/item/projectile/bullet/mags/hyper/inferno + pellets = 1 + variance = 0 + +///magazines/// + +/obj/item/ammo_box/magazine/mhyper + name = "hyper-burst rifle magazine" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "hypermag-4" + ammo_type = /obj/item/ammo_casing/caseless/ahyper + caliber = "hypermag" + desc = "A magazine for the Hyper-Burst Rifle. Loaded with a special slug that fragments into 12 smaller shards which can absolutely puncture anything, but has rather short effective range." + max_ammo = 4 + +/obj/item/ammo_box/magazine/mhyper/update_icon() + ..() + icon_state = "hypermag-[ammo_count() ? "4" : "0"]" + +/obj/item/ammo_box/magazine/mhyper/inferno + name = "hyper-burst rifle magazine (inferno)" + ammo_type = /obj/item/ammo_casing/caseless/ahyper/inferno + desc = "A magazine for the Hyper-Burst Rifle. Loaded with a special slug that violently reacts with whatever surface it strikes, generating a massive amount of heat and light." + +///gun itself/// + +/obj/item/gun/ballistic/automatic/hyperburst + name = "\improper Hyper-Burst Rifle" + desc = "An extremely beefed up version of a stolen Nanotrasen weapon prototype, this 'rifle' is more like a cannon, with an extremely large bore barrel capable of generating several smaller magnetic 'barrels' to simultaneously launch multiple projectiles at once." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "hyperburst" + item_state = "arg" + slot_flags = 0 + mag_type = /obj/item/ammo_box/magazine/mhyper + fire_sound = 'sound/weapons/magburst.ogg' + can_suppress = 0 + burst_size = 1 + fire_delay = 40 + recoil = 2 + casing_ejector = 0 + weapon_weight = WEAPON_HEAVY + +/obj/item/gun/ballistic/automatic/hyperburst/update_icon() + ..() + icon_state = "hyperburst[magazine ? "-[get_ammo()]" : ""][chambered ? "" : "-e"]" + //Toy Memes /obj/item/projectile/beam/lasertag/mag //the projectile, compatible with regular laser tag armor From ad2cacb59ea4ad9d5308cb2f2cbc73f746e7fc69 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 22:05:53 -0400 Subject: [PATCH 133/180] toys --- .../projectiles/guns/ballistic/magweapon.dm | 148 ++++++++++-------- 1 file changed, 85 insertions(+), 63 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index e6ef3e36e4..82b9e94ada 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -196,29 +196,6 @@ spread = 30 //should be 40 for XCOM memes, but since its adminspawn only, might as well make it useable recoil = 1 -///toy memes/// - -/obj/item/ammo_box/magazine/toy/x9 - name = "foam force X9 magazine" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "toy9magazine" - max_ammo = 30 - multiple_sprites = 2 - materials = list(MAT_METAL = 200) - -/obj/item/gun/ballistic/automatic/x9/toy - name = "\improper Foam Force X9" - desc = "An old but reliable assault rifle made for combat against unknown enemies. Appears to be hastily converted. Ages 8 and up." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "toy9" - can_suppress = 0 - obj_flags = 0 - mag_type = /obj/item/ammo_box/magazine/toy/x9 - casing_ejector = 0 - spread = 90 //MAXIMUM XCOM MEMES (actually that'd be 180 spread) - w_class = WEIGHT_CLASS_BULKY - weapon_weight = WEAPON_HEAVY - ///ammo/// /obj/item/ammo_casing/caseless/mag_e @@ -336,17 +313,17 @@ /datum/design/magpistol_e name = "Magpistol" desc = "A weapon which fires ferromagnetic slugs." - id = "magpisol" + id = "magpisol_e" build_type = PROTOLATHE materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000) build_path = /obj/item/gun/ballistic/automatic/pistol/mag_e/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/datum/design/mag_magpistol +/datum/design/mag_magpistol_e name = "Magpistol Magazine" desc = "A 14 round magazine for the Magpistol." - id = "mag_magpistol" + id = "mag_magpistol_e" build_type = PROTOLATHE materials = list(MAT_METAL = 4000, MAT_SILVER = 500) build_path = /obj/item/ammo_box/magazine/mmag_e/small/lethal @@ -356,46 +333,11 @@ /datum/design/mag_magpistol/nl name = "Magpistol Magazine (Non-Lethal)" desc = "A 14 round non-lethal magazine for the Magpistol." - id = "mag_magpistol_nl" + id = "mag_magpistol_nl_e" materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250) build_path = /obj/item/ammo_box/magazine/mmag_e/small departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/obj/item/projectile/bullet/reusable/foam_dart/mag - name = "magfoam dart" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-toy" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - light_range = 2 - light_color = LIGHT_COLOR_YELLOW - -/obj/item/ammo_casing/caseless/foam_dart/mag - name = "magfoam dart" - desc = "A foam dart with fun light-up projectiles powered by magnets!" - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/mag - -/obj/item/ammo_box/magazine/internal/shot/toy/mag - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - max_ammo = 14 - -/obj/item/gun/ballistic/shotgun/toy/mag - name = "foam force magpistol" - desc = "A fancy toy sold alongside light-up foam force darts. Ages 8 and up." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "toymag" - item_state = "gun" - mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag - fire_sound = 'sound/weapons/magpistol.ogg' - slot_flags = SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - -/obj/item/ammo_box/foambox/mag - name = "ammo box (Magnetic Foam Darts)" - icon = 'icons/obj/guns/toy.dmi' - icon_state = "foambox" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - max_ammo = 42 - ///////////////// Mag rifle///////////////// /obj/item/gun/ballistic/automatic/magrifle_e @@ -528,7 +470,7 @@ display_name = "Magnetic Weapons" description = "Weapons using magnetic technology" prereq_ids = list("weaponry", "adv_weaponry", "emp_adv") - design_ids = list("magrifle", "magpisol", "mag_magrifle", "mag_magrifle_nl", "mag_magpistol", "mag_magpistol_nl") + design_ids = list("magrifle_e", "magpisol_e", "mag_magrifle_e", "mag_magrifle_nl_e", "mag_magpistol_e", "mag_magpistol_nl_e") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 @@ -656,3 +598,83 @@ /obj/item/stock_parts/cell/toymagburst name = "toy mag burst rifle power supply" maxcharge = 4000 + +///foamagrifles/// + +/obj/item/gun/ballistic/automatic/magrifle/toy + name = "foamag rifle" + desc = "A foam launching magnetic rifle. Ages 8 and up." + icon_state = "foamagrifle" + obj_flags = 0 + mag_type = /obj/item/ammo_box/magazine/toy/foamag + casing_ejector = FALSE + spread = 60 + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + +/obj/item/gun/ballistic/shotgun/toy/mag + name = "foam force magpistol" + desc = "A fancy toy sold alongside light-up foam force darts. Ages 8 and up." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "toymag" + item_state = "gun" + mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag + fire_sound = 'sound/weapons/magpistol.ogg' + slot_flags = SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + +/obj/item/gun/ballistic/automatic/x9/toy + name = "\improper Foam Force X9" + desc = "An old but reliable assault rifle made for combat against unknown enemies. Appears to be hastily converted. Ages 8 and up." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "toy9" + can_suppress = 0 + obj_flags = 0 + mag_type = /obj/item/ammo_box/magazine/toy/x9 + casing_ejector = 0 + spread = 90 //MAXIMUM XCOM MEMES (actually that'd be 180 spread) + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + +//Toy bullet-things + +/obj/item/projectile/bullet/reusable/foam_dart/mag + name = "magfoam dart" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile-toy" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + light_range = 2 + light_color = LIGHT_COLOR_YELLOW + +/obj/item/ammo_casing/caseless/foam_dart/mag + name = "magfoam dart" + desc = "A foam dart with fun light-up projectiles powered by magnets!" + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/mag + +/obj/item/ammo_box/magazine/internal/shot/toy/mag + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + max_ammo = 14 + +/obj/item/ammo_box/magazine/toy/foamag + name = "foam force magrifle magazine" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "foamagmag" + max_ammo = 24 + multiple_sprites = 2 + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + materials = list(MAT_METAL = 200) + +/obj/item/ammo_box/foambox/mag + name = "ammo box (Magnetic Foam Darts)" + icon = 'icons/obj/guns/toy.dmi' + icon_state = "foambox" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + max_ammo = 42 + +/obj/item/ammo_box/magazine/toy/x9 + name = "foam force X9 magazine" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "toy9magazine" + max_ammo = 30 + multiple_sprites = 2 + materials = list(MAT_METAL = 200) From 9ff3918ffdca6a5456f7b4771a342b6087a69f61 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 22:25:19 -0400 Subject: [PATCH 134/180] Update magweapon.dm --- .../projectiles/guns/ballistic/magweapon.dm | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 82b9e94ada..712dd9729d 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -196,6 +196,76 @@ spread = 30 //should be 40 for XCOM memes, but since its adminspawn only, might as well make it useable recoil = 1 +////bullets/// + +/obj/item/projectile/bullet/mags + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile" + damage = 15 + armour_penetration = 10 + light_range = 2 + speed = 0.6 + range = 25 + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/bullet/nlmags //non-lethal boolets + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile-nl" + damage = 2 + knockdown = 0 + stamina = 25 + armour_penetration = -10 + light_range = 2 + speed = 0.7 + range = 25 + light_color = LIGHT_COLOR_BLUE + +////bullets/// + +/obj/item/projectile/bullet/mags + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile" + damage = 15 + armour_penetration = 10 + light_range = 2 + speed = 0.6 + range = 25 + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/bullet/nlmags //non-lethal boolets + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile-nl" + damage = 2 + knockdown = 0 + stamina = 25 + armour_penetration = -10 + light_range = 2 + speed = 0.7 + range = 25 + light_color = LIGHT_COLOR_BLUE + +/obj/item/projectile/bullet/magrifle + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile-large" + damage = 20 + armour_penetration = 25 + light_range = 3 + speed = 0.7 + range = 35 + light_color = LIGHT_COLOR_RED + +/obj/item/projectile/bullet/nlmagrifle //non-lethal boolets + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile-large-nl" + damage = 2 + knockdown = 0 + stamina = 25 + armour_penetration = -10 + light_range = 3 + speed = 0.65 + range = 35 + light_color = LIGHT_COLOR_BLUE + ///ammo/// /obj/item/ammo_casing/caseless/mag_e From f6bb8b6aefcaed749df49668d32a580abdad6c99 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 22:33:58 -0400 Subject: [PATCH 135/180] Update magweapon.dm --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 712dd9729d..c5d47de86c 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -16,7 +16,7 @@ var/charge_delay = 4 var/dead_cell = FALSE //set to true so the gun is given an empty cell var/spawnwithmagazine = TRUE - var/mag_type = /obj/item/ammo_box/magazine/mmag //Removes the need for max_ammo and caliber info + var/mag_type = /obj/item/ammo_box/magazine/mmag_e //Removes the need for max_ammo and caliber info var/obj/item/ammo_box/magazine/magazine var/casing_ejector = TRUE //whether the gun ejects the chambered casing From bc251b59aa4a1767a6bfdaa06359cec78fb79d03 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 22:43:01 -0400 Subject: [PATCH 136/180] Update magweapon.dm --- .../projectiles/guns/ballistic/magweapon.dm | 716 ++++++------------ 1 file changed, 216 insertions(+), 500 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index c5d47de86c..13e1c0007c 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -1,184 +1,3 @@ -//Stollen vars so this all work for real - Copy pasted addtion - -/obj/item/ammo_casing/mag/ - var/e_cost = 50 - -/obj/item/gun/mag - var/obj/item/stock_parts/cell/cell //What type of power cell this uses - var/cell_type = /obj/item/stock_parts/cell - var/modifystate = 0 - var/list/ammo_type = list(/obj/item/ammo_casing/mag) - var/can_charge = 1 //Can it be charged in a recharger? - var/charge_sections = 4 - ammo_x_offset = 2 - var/old_ratio = 0 // stores the gun's previous ammo "ratio" to see if it needs an updated iconn - var/charge_tick = 0 - var/charge_delay = 4 - var/dead_cell = FALSE //set to true so the gun is given an empty cell - var/spawnwithmagazine = TRUE - var/mag_type = /obj/item/ammo_box/magazine/mmag_e //Removes the need for max_ammo and caliber info - var/obj/item/ammo_box/magazine/magazine - var/casing_ejector = TRUE //whether the gun ejects the chambered casing - -/obj/item/gun/mag/Initialize() - . = ..() - if(!spawnwithmagazine) - update_icon() - return - if (!magazine) - magazine = new mag_type(src) - chamber_round() - update_icon() - -/obj/item/gun/mag/process_chamber(empty_chamber = 1) - var/obj/item/ammo_casing/AC = chambered //Find chambered round - if(istype(AC)) //there's a chambered round - if(casing_ejector) - AC.forceMove(drop_location()) //Eject casing onto ground. - AC.bounce_away(TRUE) - chambered = null - else if(empty_chamber) - chambered = null - chamber_round() - -/obj/item/gun/mag/proc/chamber_round() - if (chambered || !magazine) - return - else if (magazine.ammo_count()) - chambered = magazine.get_round() - chambered.forceMove(src) - -/obj/item/gun/mag/can_shoot() - if(!magazine || !magazine.ammo_count(0)) - return 0 - return 1 - -/obj/item/gun/mag/attackby(obj/item/A, mob/user, params) - ..() - if (istype(A, /obj/item/ammo_box/magazine)) - var/obj/item/ammo_box/magazine/AM = A - if (!magazine && istype(AM, mag_type)) - if(user.transferItemToLoc(AM, src)) - magazine = AM - to_chat(user, "You load a new magazine into \the [src].") - if(magazine.ammo_count()) - playsound(src, "gun_insert_full_magazine", 70, 1) - if(!chambered) - chamber_round() - addtimer(CALLBACK(GLOBAL_PROC, .proc/playsound, src, 'sound/weapons/gun_chamber_round.ogg', 100, 1), 3) - else - playsound(src, "gun_insert_empty_magazine", 70, 1) - A.update_icon() - update_icon() - return 1 - else - to_chat(user, "You cannot seem to get \the [src] out of your hands!") - return - else if (magazine) - to_chat(user, "There's already a magazine in \the [src].") - -//ATTACK HAND IGNORING PARENT RETURN VALUE - -/obj/item/gun/mag/attack_self(mob/living/user) - var/obj/item/ammo_casing/AC = chambered //Find chambered round - if(magazine) - magazine.forceMove(drop_location()) - user.put_in_hands(magazine) - magazine.update_icon() - if(magazine.ammo_count()) - playsound(src, 'sound/weapons/gun_magazine_remove_full.ogg', 70, 1) - else - playsound(src, "gun_remove_empty_magazine", 70, 1) - magazine = null - to_chat(user, "You pull the magazine out of \the [src].") - else if(chambered) - AC.forceMove(drop_location()) - AC.bounce_away() - chambered = null - to_chat(user, "You unload the round from \the [src]'s chamber.") - playsound(src, "gun_slide_lock", 70, 1) - else - to_chat(user, "There's no magazine in \the [src].") - update_icon() - return - -/obj/item/gun/mag/examine(mob/user) - ..() - to_chat(user, "It has [get_ammo()] round\s remaining.") - -/obj/item/gun/mag/proc/get_ammo(countchambered = 1) - var/boolets = 0 //mature var names for mature people - if (chambered && countchambered) - boolets++ - if (magazine) - boolets += magazine.ammo_count() - return boolets - -/obj/item/gun/mag/emp_act(severity) - . = ..() - if(!(. & EMP_PROTECT_CONTENTS)) - cell.use(round(cell.charge / severity)) - recharge_newshot() //and try to charge a new shot - -/obj/item/gun/mag/get_cell() - return cell - -/obj/item/gun/mag/Initialize() - . = ..() - if(cell_type) - cell = new cell_type(src) - else - cell = new(src) - if(!dead_cell) - cell.give(cell.maxcharge) - update_ammo_types() - recharge_newshot(TRUE) - -/obj/item/gun/mag/proc/update_ammo_types() - var/obj/item/ammo_casing/mag/shot - for (var/i = 1, i <= ammo_type.len, i++) - var/shottype = ammo_type[i] - shot = new shottype(src) - ammo_type[i] = shot - fire_sound = shot.fire_sound - fire_delay = shot.delay - -/obj/item/gun/mag/Destroy() - QDEL_NULL(cell) - STOP_PROCESSING(SSobj, src) - return ..() - -/obj/item/gun/mag/can_shoot() - var/obj/item/ammo_casing/mag/mag = ammo_type - return !QDELETED(cell) ? (cell.charge >= mag.e_cost) : FALSE - -/obj/item/gun/mag/recharge_newshot(no_cyborg_drain) - if (!ammo_type || !cell) - return - if(!chambered) - var/obj/item/ammo_casing/energy/AC = ammo_type - if(cell.charge >= AC.e_cost) //if there's enough power in the cell cell... - chambered = AC //...prepare a new shot based on the current ammo type selected - if(!chambered.BB) - chambered.newshot() - -/obj/item/gun/mag/process_chamber() - if(chambered && !chambered.BB) //if BB is null, i.e the shot has been fired... - var/obj/item/ammo_casing/mag/mag = chambered - cell.use(mag.e_cost)//... drain the cell cell - chambered = null //either way, released the prepared shot - recharge_newshot() //try to charge a new shot - -/obj/item/gun/mag/update_icon(force_update) - if(QDELETED(src)) - return - ..() - var/ratio = CEILING(CLAMP(cell.charge / cell.maxcharge, 0, 1) * charge_sections, 1) - if(ratio == old_ratio && !force_update) - return - old_ratio = ratio - cut_overlays() - ///////XCOM X9 AR/////// /obj/item/gun/ballistic/automatic/x9 //will be adminspawn only so ERT or something can use them @@ -196,7 +15,32 @@ spread = 30 //should be 40 for XCOM memes, but since its adminspawn only, might as well make it useable recoil = 1 -////bullets/// +///toy memes/// + +/obj/item/ammo_box/magazine/toy/x9 + name = "foam force X9 magazine" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "toy9magazine" + max_ammo = 30 + multiple_sprites = 2 + materials = list(MAT_METAL = 200) + +/obj/item/gun/ballistic/automatic/x9/toy + name = "\improper Foam Force X9" + desc = "An old but reliable assault rifle made for combat against unknown enemies. Appears to be hastily converted. Ages 8 and up." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "toy9" + can_suppress = 0 + obj_flags = 0 + mag_type = /obj/item/ammo_box/magazine/toy/x9 + casing_ejector = 0 + spread = 90 //MAXIMUM XCOM MEMES (actually that'd be 180 spread) + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY + +////////XCOM2 Magpistol///////// + +//////projectiles////// /obj/item/projectile/bullet/mags icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' @@ -220,29 +64,138 @@ range = 25 light_color = LIGHT_COLOR_BLUE -////bullets/// -/obj/item/projectile/bullet/mags - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile" - damage = 15 - armour_penetration = 10 - light_range = 2 - speed = 0.6 - range = 25 - light_color = LIGHT_COLOR_RED +/////actual ammo///// -/obj/item/projectile/bullet/nlmags //non-lethal boolets +/obj/item/ammo_casing/caseless/amags + desc = "A ferromagnetic slug intended to be launched out of a compatible weapon." + caliber = "mags" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-nl" - damage = 2 - knockdown = 0 - stamina = 25 - armour_penetration = -10 + icon_state = "mag-casing-live" + projectile_type = /obj/item/projectile/bullet/mags + +/obj/item/ammo_casing/caseless/anlmags + desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload." + caliber = "mags" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mag-casing-live" + projectile_type = /obj/item/projectile/bullet/nlmags + +//////magazines///// + +/obj/item/ammo_box/magazine/mmag/small + name = "magpistol magazine (non-lethal disabler)" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "nlmagmag" + ammo_type = /obj/item/ammo_casing/caseless/anlmags + caliber = "mags" + max_ammo = 15 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/mmag/small/lethal + name = "magpistol magazine (lethal)" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "smallmagmag" + ammo_type = /obj/item/ammo_casing/caseless/amags + +//////the gun itself////// + +/obj/item/gun/ballistic/automatic/pistol/mag + name = "magpistol" + desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magpistol" + force = 10 + fire_sound = 'sound/weapons/magpistol.ogg' + mag_type = /obj/item/ammo_box/magazine/mmag/small + can_suppress = 0 + casing_ejector = 0 + fire_delay = 2 + recoil = 0.2 + +/obj/item/gun/ballistic/automatic/pistol/mag/update_icon() + ..() + if(magazine) + cut_overlays() + add_overlay("magpistol-magazine") + else + cut_overlays() + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + +///research memes/// + +/obj/item/gun/ballistic/automatic/pistol/mag/nopin + pin = null + spawnwithmagazine = FALSE + +/datum/design/magpistol + name = "Magpistol" + desc = "A weapon which fires ferromagnetic slugs." + id = "magpisol" + build_type = PROTOLATHE + materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000) + build_path = /obj/item/gun/ballistic/automatic/pistol/mag/nopin + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_magpistol + name = "Magpistol Magazine" + desc = "A 14 round magazine for the Magpistol." + id = "mag_magpistol" + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000, MAT_SILVER = 500) + build_path = /obj/item/ammo_box/magazine/mmag/small/lethal + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_magpistol/nl + name = "Magpistol Magazine (Non-Lethal)" + desc = "A 14 round non-lethal magazine for the Magpistol." + id = "mag_magpistol_nl" + materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250) + build_path = /obj/item/ammo_box/magazine/mmag/small + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +//////toy memes///// + +/obj/item/projectile/bullet/reusable/foam_dart/mag + name = "magfoam dart" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magjectile-toy" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag light_range = 2 - speed = 0.7 - range = 25 - light_color = LIGHT_COLOR_BLUE + light_color = LIGHT_COLOR_YELLOW + +/obj/item/ammo_casing/caseless/foam_dart/mag + name = "magfoam dart" + desc = "A foam dart with fun light-up projectiles powered by magnets!" + projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/mag + +/obj/item/ammo_box/magazine/internal/shot/toy/mag + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + max_ammo = 14 + +/obj/item/gun/ballistic/shotgun/toy/mag + name = "foam force magpistol" + desc = "A fancy toy sold alongside light-up foam force darts. Ages 8 and up." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "toymag" + item_state = "gun" + mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag + fire_sound = 'sound/weapons/magpistol.ogg' + slot_flags = SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + +/obj/item/ammo_box/foambox/mag + name = "ammo box (Magnetic Foam Darts)" + icon = 'icons/obj/guns/toy.dmi' + icon_state = "foambox" + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + max_ammo = 42 + +//////Magrifle////// + +///projectiles/// /obj/item/projectile/bullet/magrifle icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' @@ -266,158 +219,50 @@ range = 35 light_color = LIGHT_COLOR_BLUE -///ammo/// +///ammo casings/// -/obj/item/ammo_casing/caseless/mag_e - var/energy_cost = 0 - -/obj/item/ammo_casing/caseless/mag_e/amagm_e +/obj/item/ammo_casing/caseless/amagm desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon." caliber = "magm" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" projectile_type = /obj/item/projectile/bullet/magrifle - energy_cost = 300 -/obj/item/ammo_casing/caseless/mag_e/anlmagm_e +/obj/item/ammo_casing/caseless/anlmagm desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload." caliber = "magm" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" projectile_type = /obj/item/projectile/bullet/nlmagrifle - energy_cost = 300 - -/obj/item/ammo_casing/caseless/mag_e/amags - desc = "A ferromagnetic slug intended to be launched out of a compatible weapon." - caliber = "mags" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mag-casing-live" - projectile_type = /obj/item/projectile/bullet/mags - energy_cost = 200 - -/obj/item/ammo_casing/caseless/mag_e/anlmags - desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload." - caliber = "mags" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "mag-casing-live" - projectile_type = /obj/item/projectile/bullet/nlmags - energy_cost = 200 ///magazines/// -/obj/item/ammo_box/magazine/mmag_e/ +/obj/item/ammo_box/magazine/mmag/ name = "magrifle magazine (non-lethal disabler)" - desc = "A 24-round magazine for the non-lethal Magrifle." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmagm_e + ammo_type = /obj/item/ammo_casing/caseless/anlmagm caliber = "magm" max_ammo = 24 multiple_sprites = 2 -/obj/item/ammo_box/magazine/mmag_e/lethal +/obj/item/ammo_box/magazine/mmag/lethal name = "magrifle magazine (lethal)" - desc = "A 24-round magazine for the lethal Magrifle." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mediummagmag" - ammo_type = /obj/item/ammo_casing/caseless/mag_e/amagm_e + ammo_type = /obj/item/ammo_casing/caseless/amagm max_ammo = 24 -/obj/item/ammo_box/magazine/mmag_e/small - name = "magpistol magazine (non-lethal disabler)" - desc = "A 15-round magazine for the non-lethal Magpistol." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "nlmagmag" - ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmags - caliber = "mags" - max_ammo = 15 - multiple_sprites = 2 +///the gun itself/// -/obj/item/ammo_box/magazine/mmag_e/small/lethal - name = "magpistol magazine (lethal)" - desc = "A 15-round magazine for the lethal Magpistol." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "smallmagmag" - ammo_type = /obj/item/ammo_casing/caseless/mag_e/amags - -///cells/// - -/obj/item/stock_parts/cell/magrifle_e - name = "magrifle power supply" - maxcharge = 14400 - -/obj/item/stock_parts/cell/magpistol_e - name = "magpistol power supply" - maxcharge = 6000 - -///sci designs/// - -/datum/design/magrifle_e - name = "Magrifle" - desc = "An upscaled Magpistol in rifle form." - id = "magrifle_e" - build_type = PROTOLATHE - materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000) - build_path = /obj/item/gun/ballistic/automatic/magrifle_e/nopin - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/mag_magrifle_e - name = "Magrifle Magazine (Lethal)" - desc = "A 24-round magazine for the Magrifle." - id = "mag_magrifle_e" - build_type = PROTOLATHE - materials = list(MAT_METAL = 8000, MAT_SILVER = 1000) - build_path = /obj/item/ammo_box/magazine/mmag_e/lethal - category = list("Ammo") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/mag_magrifle_e/nl - name = "Magrifle Magazine (Non-Lethal)" - desc = "A 24- round non-lethal magazine for the Magrifle." - id = "mag_magrifle_nl_e" - materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) - build_path = /obj/item/ammo_box/magazine/mmag_e - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/magpistol_e - name = "Magpistol" - desc = "A weapon which fires ferromagnetic slugs." - id = "magpisol_e" - build_type = PROTOLATHE - materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000) - build_path = /obj/item/gun/ballistic/automatic/pistol/mag_e/nopin - category = list("Weapons") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/mag_magpistol_e - name = "Magpistol Magazine" - desc = "A 14 round magazine for the Magpistol." - id = "mag_magpistol_e" - build_type = PROTOLATHE - materials = list(MAT_METAL = 4000, MAT_SILVER = 500) - build_path = /obj/item/ammo_box/magazine/mmag_e/small/lethal - category = list("Ammo") - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -/datum/design/mag_magpistol/nl - name = "Magpistol Magazine (Non-Lethal)" - desc = "A 14 round non-lethal magazine for the Magpistol." - id = "mag_magpistol_nl_e" - materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250) - build_path = /obj/item/ammo_box/magazine/mmag_e/small - departmental_flags = DEPARTMENTAL_FLAG_SECURITY - -///////////////// Mag rifle///////////////// - -/obj/item/gun/ballistic/automatic/magrifle_e +/obj/item/gun/ballistic/automatic/magrifle name = "\improper Magnetic Rifle" desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs." icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "magrifle" item_state = "arg" slot_flags = 0 - mag_type = /obj/item/ammo_box/magazine/mmag_e + mag_type = /obj/item/ammo_box/magazine/mmag fire_sound = 'sound/weapons/magrifle.ogg' can_suppress = 0 burst_size = 3 @@ -425,125 +270,76 @@ spread = 5 recoil = 0.15 casing_ejector = 0 - var/obj/item/stock_parts/cell/cell - var/cell_type = /obj/item/stock_parts/cell/magrifle_e - var/dead_cell = FALSE -/obj/item/gun/ballistic/automatic/magrifle_e/can_shoot() - if(QDELETED(cell)) - return 0 +///research/// - var/obj/item/ammo_casing/caseless/mag_e/shot = chambered - if(!shot) - return 0 - if(cell.charge < shot.energy_cost*burst_size) - return 0 - . = ..() - -/obj/item/gun/ballistic/automatic/magrifle_e/shoot_live_shot() - var/obj/item/ammo_casing/caseless/mag_e/shot = chambered - cell.use(shot.energy_cost) - . = ..() - -/obj/item/gun/ballistic/automatic/magrifle_e/emp_act(severity) - . = ..() - if(!(. & EMP_PROTECT_CONTENTS)) - cell.use(round(cell.charge / severity)) - -/obj/item/gun/ballistic/automatic/magrifle_e/get_cell() - return cell - -/obj/item/gun/ballistic/automatic/magrifle_e/Initialize() - . = ..() - if(cell_type) - cell = new cell_type(src) - else - cell = new(src) - - if(!dead_cell) - cell.give(cell.maxcharge) - -/obj/item/gun/ballistic/automatic/magrifle_e/nopin +/obj/item/gun/ballistic/automatic/magrifle/nopin pin = null spawnwithmagazine = FALSE -///magpistol/// +/datum/design/magrifle + name = "Magrifle" + desc = "An upscaled Magpistol in rifle form." + id = "magrifle" + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000) + build_path = /obj/item/gun/ballistic/automatic/magrifle/nopin + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/obj/item/gun/ballistic/automatic/pistol/mag_e - name = "magpistol" - desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." +/datum/design/mag_magrifle + name = "Magrifle Magazine (Lethal)" + desc = "A 24-round magazine for the Magrifle." + id = "mag_magrifle" + build_type = PROTOLATHE + materials = list(MAT_METAL = 8000, MAT_SILVER = 1000) + build_path = /obj/item/ammo_box/magazine/mmag/lethal + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_magrifle/nl + name = "Magrifle Magazine (Non-Lethal)" + desc = "A 24- round non-lethal magazine for the Magrifle." + id = "mag_magrifle_nl" + materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) + build_path = /obj/item/ammo_box/magazine/mmag + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +///foamagrifle/// + +/obj/item/ammo_box/magazine/toy/foamag + name = "foam force magrifle magazine" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magpistol" - force = 10 - fire_sound = 'sound/weapons/magpistol.ogg' - mag_type = /obj/item/ammo_box/magazine/mmag_e/small - can_suppress = 0 - casing_ejector = 0 - fire_delay = 2 - recoil = 0.2 - var/obj/item/stock_parts/cell/cell - var/cell_type = /obj/item/stock_parts/cell/magpistol_e - var/dead_cell = FALSE + icon_state = "foamagmag" + max_ammo = 24 + multiple_sprites = 2 + ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag + materials = list(MAT_METAL = 200) -/obj/item/gun/ballistic/automatic/pistol/mag_e/can_shoot() - if(QDELETED(cell)) - return 0 - - var/obj/item/ammo_casing/caseless/mag_e/shot = chambered - if(!shot) - return 0 - if(cell.charge < shot.energy_cost) - return 0 - . = ..() - -/obj/item/gun/ballistic/automatic/pistol/mag_e/shoot_live_shot() - var/obj/item/ammo_casing/caseless/mag_e/shot = chambered - cell.use(shot.energy_cost) - . = ..() - -/obj/item/gun/ballistic/automatic/pistol/mag_e/emp_act(severity) - . = ..() - if(!(. & EMP_PROTECT_CONTENTS)) - cell.use(round(cell.charge / severity)) - -/obj/item/gun/ballistic/automatic/pistol/mag_e/get_cell() - return cell - -/obj/item/gun/ballistic/automatic/pistol/mag_e/Initialize() - . = ..() - if(cell_type) - cell = new cell_type(src) - else - cell = new(src) - if(!dead_cell) - cell.give(cell.maxcharge) - -/obj/item/gun/ballistic/automatic/pistol/mag_e/update_icon() - ..() - if(magazine) - cut_overlays() - add_overlay("magpistol-magazine") - else - cut_overlays() - icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" - -/obj/item/gun/ballistic/automatic/pistol/mag_e/nopin - pin = null - spawnwithmagazine = FALSE +/obj/item/gun/ballistic/automatic/magrifle/toy + name = "foamag rifle" + desc = "A foam launching magnetic rifle. Ages 8 and up." + icon_state = "foamagrifle" + obj_flags = 0 + mag_type = /obj/item/ammo_box/magazine/toy/foamag + casing_ejector = FALSE + spread = 60 + w_class = WEIGHT_CLASS_BULKY + weapon_weight = WEAPON_HEAVY /* // TECHWEBS IMPLEMENTATION -*/ +// /datum/techweb_node/magnetic_weapons id = "magnetic_weapons" display_name = "Magnetic Weapons" description = "Weapons using magnetic technology" prereq_ids = list("weaponry", "adv_weaponry", "emp_adv") - design_ids = list("magrifle_e", "magpisol_e", "mag_magrifle_e", "mag_magrifle_nl_e", "mag_magpistol_e", "mag_magpistol_nl_e") + design_ids = list("magrifle", "magpisol", "mag_magrifle", "mag_magrifle_nl", "mag_magpistol", "mag_magpistol_nl") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 - +*/ //////Hyper-Burst Rifle////// @@ -630,7 +426,7 @@ ..() icon_state = "hyperburst[magazine ? "-[get_ammo()]" : ""][chambered ? "" : "-e"]" -//Toy Memes +///toy memes/// /obj/item/projectile/beam/lasertag/mag //the projectile, compatible with regular laser tag armor icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' @@ -668,83 +464,3 @@ /obj/item/stock_parts/cell/toymagburst name = "toy mag burst rifle power supply" maxcharge = 4000 - -///foamagrifles/// - -/obj/item/gun/ballistic/automatic/magrifle/toy - name = "foamag rifle" - desc = "A foam launching magnetic rifle. Ages 8 and up." - icon_state = "foamagrifle" - obj_flags = 0 - mag_type = /obj/item/ammo_box/magazine/toy/foamag - casing_ejector = FALSE - spread = 60 - w_class = WEIGHT_CLASS_BULKY - weapon_weight = WEAPON_HEAVY - -/obj/item/gun/ballistic/shotgun/toy/mag - name = "foam force magpistol" - desc = "A fancy toy sold alongside light-up foam force darts. Ages 8 and up." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "toymag" - item_state = "gun" - mag_type = /obj/item/ammo_box/magazine/internal/shot/toy/mag - fire_sound = 'sound/weapons/magpistol.ogg' - slot_flags = SLOT_BELT - w_class = WEIGHT_CLASS_SMALL - -/obj/item/gun/ballistic/automatic/x9/toy - name = "\improper Foam Force X9" - desc = "An old but reliable assault rifle made for combat against unknown enemies. Appears to be hastily converted. Ages 8 and up." - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "toy9" - can_suppress = 0 - obj_flags = 0 - mag_type = /obj/item/ammo_box/magazine/toy/x9 - casing_ejector = 0 - spread = 90 //MAXIMUM XCOM MEMES (actually that'd be 180 spread) - w_class = WEIGHT_CLASS_BULKY - weapon_weight = WEAPON_HEAVY - -//Toy bullet-things - -/obj/item/projectile/bullet/reusable/foam_dart/mag - name = "magfoam dart" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "magjectile-toy" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - light_range = 2 - light_color = LIGHT_COLOR_YELLOW - -/obj/item/ammo_casing/caseless/foam_dart/mag - name = "magfoam dart" - desc = "A foam dart with fun light-up projectiles powered by magnets!" - projectile_type = /obj/item/projectile/bullet/reusable/foam_dart/mag - -/obj/item/ammo_box/magazine/internal/shot/toy/mag - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - max_ammo = 14 - -/obj/item/ammo_box/magazine/toy/foamag - name = "foam force magrifle magazine" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "foamagmag" - max_ammo = 24 - multiple_sprites = 2 - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - materials = list(MAT_METAL = 200) - -/obj/item/ammo_box/foambox/mag - name = "ammo box (Magnetic Foam Darts)" - icon = 'icons/obj/guns/toy.dmi' - icon_state = "foambox" - ammo_type = /obj/item/ammo_casing/caseless/foam_dart/mag - max_ammo = 42 - -/obj/item/ammo_box/magazine/toy/x9 - name = "foam force X9 magazine" - icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' - icon_state = "toy9magazine" - max_ammo = 30 - multiple_sprites = 2 - materials = list(MAT_METAL = 200) From 22912832d75a87e40cf3628a24af7e1b57215600 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 22:46:50 -0400 Subject: [PATCH 137/180] Create magweapon_energy.dm --- .../guns/ballistic/magweapon_energy.dm | 279 ++++++++++++++++++ 1 file changed, 279 insertions(+) create mode 100644 modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm new file mode 100644 index 0000000000..7324ad1024 --- /dev/null +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm @@ -0,0 +1,279 @@ +///ammo/// + +/obj/item/ammo_casing/caseless/mag_e + var/energy_cost = 0 + +/obj/item/ammo_casing/caseless/mag_e/amagm_e + desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon." + caliber = "magm" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mag-casing-live" + projectile_type = /obj/item/projectile/bullet/magrifle + energy_cost = 300 + +/obj/item/ammo_casing/caseless/mag_e/anlmagm_e + desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload." + caliber = "magm" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mag-casing-live" + projectile_type = /obj/item/projectile/bullet/nlmagrifle + energy_cost = 300 + +/obj/item/ammo_casing/caseless/mag_e/amags + desc = "A ferromagnetic slug intended to be launched out of a compatible weapon." + caliber = "mags" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mag-casing-live" + projectile_type = /obj/item/projectile/bullet/mags + energy_cost = 200 + +/obj/item/ammo_casing/caseless/mag_e/anlmags + desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload." + caliber = "mags" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mag-casing-live" + projectile_type = /obj/item/projectile/bullet/nlmags + energy_cost = 200 + +///magazines/// + +/obj/item/ammo_box/magazine/mmag_e/ + name = "magrifle magazine (non-lethal disabler)" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mediummagmag" + ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmagm_e + caliber = "magm" + max_ammo = 24 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/mmag_e/lethal + name = "magrifle magazine (lethal)" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "mediummagmag" + ammo_type = /obj/item/ammo_casing/caseless/mag_e/amagm_e + max_ammo = 24 + + +/obj/item/ammo_box/magazine/mmag_e/small + name = "magpistol magazine (non-lethal disabler)" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "nlmagmag" + ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmags + caliber = "mags" + max_ammo = 15 + multiple_sprites = 2 + +/obj/item/ammo_box/magazine/mmag_e/small/lethal + name = "magpistol magazine (lethal)" + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "smallmagmag" + ammo_type = /obj/item/ammo_casing/caseless/mag_e/amags + +///cells/// + +/obj/item/stock_parts/cell/magrifle_e + name = "magrifle power supply" + maxcharge = 14400 + +/obj/item/stock_parts/cell/magpistol_e + name = "magpistol power supply" + maxcharge = 6000 + +///sci designs/// + +/datum/design/magrifle_e + name = "Magrifle" + desc = "An upscaled Magpistol in rifle form." + id = "magrifle_e" + build_type = PROTOLATHE + materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 2000, MAT_TITANIUM = 10000, MAT_SILVER = 4000, MAT_GOLD = 2000) + build_path = /obj/item/gun/ballistic/automatic/magrifle_e/nopin + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_magrifle_e + name = "Magrifle Magazine (Lethal)" + desc = "A 24-round magazine for the Magrifle." + id = "mag_magrifle_e" + build_type = PROTOLATHE + materials = list(MAT_METAL = 8000, MAT_SILVER = 1000) + build_path = /obj/item/ammo_box/magazine/mmag_e/lethal + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_magrifle_e/nl + name = "Magrifle Magazine (Non-Lethal)" + desc = "A 24- round non-lethal magazine for the Magrifle." + id = "mag_magrifle_nl" + materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) + build_path = /obj/item/ammo_box/magazine/mmag_e + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/magpistol_e + name = "Magpistol" + desc = "A weapon which fires ferromagnetic slugs." + id = "magpistol_e" + build_type = PROTOLATHE + materials = list(MAT_METAL = 7500, MAT_GLASS = 1000, MAT_URANIUM = 1000, MAT_TITANIUM = 5000, MAT_SILVER = 2000) + build_path = /obj/item/gun/ballistic/automatic/pistol/mag_e/nopin + category = list("Weapons") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_magpistol_e + name = "Magpistol Magazine" + desc = "A 14 round magazine for the Magpistol." + id = "mag_magpistol_e" + build_type = PROTOLATHE + materials = list(MAT_METAL = 4000, MAT_SILVER = 500) + build_path = /obj/item/ammo_box/magazine/mmag_e/small/lethal + category = list("Ammo") + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/datum/design/mag_magpistol_e/nl + name = "Magpistol Magazine (Non-Lethal)" + desc = "A 14 round non-lethal magazine for the Magpistol." + id = "mag_magpistol_e_nl" + materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250) + build_path = /obj/item/ammo_box/magazine/mmag_e/small + departmental_flags = DEPARTMENTAL_FLAG_SECURITY + +/* +// TECHWEBS IMPLEMENTATION +*/ + +/datum/techweb_node/magnetic_weapons + id = "magnetic_weapons" + display_name = "Magnetic Weapons" + description = "Weapons using magnetic technology" + prereq_ids = list("weaponry", "adv_weaponry", "emp_adv") + design_ids = list("magrifle_e", "magpisol_e", "mag_magrifle_e", "mag_magrifle_nl", "mag_magpistol_e", "mag_magpistol_nl") + research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) + export_price = 5000 + +///magrifle/// + +/obj/item/gun/ballistic/automatic/magrifle_e + name = "\improper Magnetic Rifle" + desc = "A simple upscalling of the technologies used in the magpistol, the magrifle is capable of firing slightly larger slugs in bursts. Compatible with the magpistol's slugs." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magrifle" + item_state = "arg" + slot_flags = 0 + mag_type = /obj/item/ammo_box/magazine/mmag_e + fire_sound = 'sound/weapons/magrifle.ogg' + can_suppress = 0 + burst_size = 3 + fire_delay = 2 + spread = 5 + recoil = 0.15 + casing_ejector = 0 + var/obj/item/stock_parts/cell/cell + var/cell_type = /obj/item/stock_parts/cell/magrifle_e + var/dead_cell = FALSE + + +/obj/item/gun/ballistic/automatic/magrifle_e/can_shoot() + if(QDELETED(cell)) + return 0 + + var/obj/item/ammo_casing/caseless/mag_e/shot = chambered + if(!shot) + return 0 + if(cell.charge < shot.energy_cost*burst_size) + return 0 + . = ..() + +/obj/item/gun/ballistic/automatic/magrifle_e/shoot_live_shot() + var/obj/item/ammo_casing/caseless/mag_e/shot = chambered + cell.use(shot.energy_cost) + . = ..() + +/obj/item/gun/ballistic/automatic/magrifle_e/emp_act(severity) + . = ..() + if(!(. & EMP_PROTECT_CONTENTS)) + cell.use(round(cell.charge / severity)) + +/obj/item/gun/ballistic/automatic/magrifle_e/get_cell() + return cell + +/obj/item/gun/ballistic/automatic/magrifle_e/Initialize() + . = ..() + if(cell_type) + cell = new cell_type(src) + else + cell = new(src) + + if(!dead_cell) + cell.give(cell.maxcharge) + +/obj/item/gun/ballistic/automatic/magrifle_e/nopin + pin = null + spawnwithmagazine = FALSE + + +///magpistol/// + +/obj/item/gun/ballistic/automatic/pistol/mag_e + name = "magpistol" + desc = "A handgun utilizing maglev technologies to propel a ferromagnetic slug to extreme velocities." + icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' + icon_state = "magpistol" + force = 10 + fire_sound = 'sound/weapons/magpistol.ogg' + mag_type = /obj/item/ammo_box/magazine/mmag_e/small + can_suppress = 0 + casing_ejector = 0 + fire_delay = 2 + recoil = 0.2 + var/obj/item/stock_parts/cell/cell + var/cell_type = /obj/item/stock_parts/cell/magpistol_e + var/dead_cell = FALSE + +/obj/item/gun/ballistic/automatic/pistol/mag_e/can_shoot() + if(QDELETED(cell)) + return 0 + + var/obj/item/ammo_casing/caseless/mag_e/shot = chambered + if(!shot) + return 0 + if(cell.charge < shot.energy_cost) + return 0 + . = ..() + +/obj/item/gun/ballistic/automatic/pistol/mag_e/shoot_live_shot() + var/obj/item/ammo_casing/caseless/mag_e/shot = chambered + cell.use(shot.energy_cost) + . = ..() + +/obj/item/gun/ballistic/automatic/pistol/mag_e/emp_act(severity) + . = ..() + if(!(. & EMP_PROTECT_CONTENTS)) + cell.use(round(cell.charge / severity)) + +/obj/item/gun/ballistic/automatic/pistol/mag_e/get_cell() + return cell + +/obj/item/gun/ballistic/automatic/pistol/mag_e/Initialize() + . = ..() + if(cell_type) + cell = new cell_type(src) + else + cell = new(src) + + if(!dead_cell) + cell.give(cell.maxcharge) + + +/obj/item/gun/ballistic/automatic/pistol/mag_e/update_icon() + ..() + if(magazine) + cut_overlays() + add_overlay("magpistol-magazine") + else + cut_overlays() + icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" + + +/obj/item/gun/ballistic/automatic/pistol/mag_e/nopin + pin = null + spawnwithmagazine = FALSE From a52dab3e0085c872894b9b0cf8076e272fb79ef4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 22:47:55 -0400 Subject: [PATCH 138/180] Update tgstation.dme --- tgstation.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/tgstation.dme b/tgstation.dme index 5b4c4eabe5..1729380f50 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -2954,6 +2954,7 @@ #include "modular_citadel\code\modules\projectiles\guns\ballistic\flechette.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\handguns.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\magweapon.dm" +#include "modular_citadel\code\modules\projectiles\guns\ballistic\magweapon_energy.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\revolver.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\rifles.dm" #include "modular_citadel\code\modules\projectiles\guns\ballistic\spinfusor.dm" From e51cdf98b24d6ef1eadb6bc5b9bfc3a2a9f5e344 Mon Sep 17 00:00:00 2001 From: Useroth Date: Mon, 29 Apr 2019 04:58:26 +0200 Subject: [PATCH 139/180] Fixed the calibers up. --- .../projectiles/guns/ballistic/magweapon_energy.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm index 7324ad1024..37a6fd59e3 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm @@ -5,7 +5,7 @@ /obj/item/ammo_casing/caseless/mag_e/amagm_e desc = "A large ferromagnetic slug intended to be launched out of a compatible weapon." - caliber = "magm" + caliber = "mag_e" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" projectile_type = /obj/item/projectile/bullet/magrifle @@ -13,7 +13,7 @@ /obj/item/ammo_casing/caseless/mag_e/anlmagm_e desc = "A large, specialized ferromagnetic slug designed with a less-than-lethal payload." - caliber = "magm" + caliber = "mag_e" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" projectile_type = /obj/item/projectile/bullet/nlmagrifle @@ -21,7 +21,7 @@ /obj/item/ammo_casing/caseless/mag_e/amags desc = "A ferromagnetic slug intended to be launched out of a compatible weapon." - caliber = "mags" + caliber = "mag_e" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" projectile_type = /obj/item/projectile/bullet/mags @@ -29,7 +29,7 @@ /obj/item/ammo_casing/caseless/mag_e/anlmags desc = "A specialized ferromagnetic slug designed with a less-than-lethal payload." - caliber = "mags" + caliber = "mag_e" icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mag-casing-live" projectile_type = /obj/item/projectile/bullet/nlmags @@ -42,7 +42,7 @@ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "mediummagmag" ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmagm_e - caliber = "magm" + caliber = "mag_e" max_ammo = 24 multiple_sprites = 2 @@ -59,7 +59,7 @@ icon = 'modular_citadel/icons/obj/guns/cit_guns.dmi' icon_state = "nlmagmag" ammo_type = /obj/item/ammo_casing/caseless/mag_e/anlmags - caliber = "mags" + caliber = "mag_e" max_ammo = 15 multiple_sprites = 2 From 514e15ee6c4758c948f7dbe0455b2ecdcbc0a03b Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 23:32:38 -0400 Subject: [PATCH 140/180] Update magweapon.dm --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 13e1c0007c..4ff4f572fc 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -122,7 +122,7 @@ cut_overlays() icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" -///research memes/// +///*research memes/// /obj/item/gun/ballistic/automatic/pistol/mag/nopin pin = null @@ -155,7 +155,7 @@ materials = list(MAT_METAL = 3000, MAT_SILVER = 250, MAT_TITANIUM = 250) build_path = /obj/item/ammo_box/magazine/mmag/small departmental_flags = DEPARTMENTAL_FLAG_SECURITY - +*/ //////toy memes///// /obj/item/projectile/bullet/reusable/foam_dart/mag @@ -271,7 +271,7 @@ recoil = 0.15 casing_ejector = 0 -///research/// +/*//research/// /obj/item/gun/ballistic/automatic/magrifle/nopin pin = null @@ -304,7 +304,7 @@ materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) build_path = /obj/item/ammo_box/magazine/mmag departmental_flags = DEPARTMENTAL_FLAG_SECURITY - +/* ///foamagrifle/// /obj/item/ammo_box/magazine/toy/foamag From c5f3f678247f9b69f7344c6c921defaa2fcd9d19 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 23:33:31 -0400 Subject: [PATCH 141/180] Update magweapon.dm --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 4ff4f572fc..226d982991 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -122,8 +122,8 @@ cut_overlays() icon_state = "[initial(icon_state)][chambered ? "" : "-e"]" -///*research memes/// - +///research memes/// +/* /obj/item/gun/ballistic/automatic/pistol/mag/nopin pin = null spawnwithmagazine = FALSE From b51751dfa8143614f99060fa97ede5f277f0d290 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 23:38:34 -0400 Subject: [PATCH 142/180] Update magweapon_energy.dm --- .../code/modules/projectiles/guns/ballistic/magweapon_energy.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm index 37a6fd59e3..ba853f3670 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm @@ -104,7 +104,7 @@ /datum/design/mag_magrifle_e/nl name = "Magrifle Magazine (Non-Lethal)" desc = "A 24- round non-lethal magazine for the Magrifle." - id = "mag_magrifle_nl" + id = "mag_magrifle_e_nl" materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) build_path = /obj/item/ammo_box/magazine/mmag_e departmental_flags = DEPARTMENTAL_FLAG_SECURITY From d136d9574386c1d4ac4cab5548c1e086e5b53b54 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 23:56:39 -0400 Subject: [PATCH 143/180] Update magweapon.dm --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 226d982991..409b8eecaf 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -271,7 +271,8 @@ recoil = 0.15 casing_ejector = 0 -/*//research/// +/* +//research/// /obj/item/gun/ballistic/automatic/magrifle/nopin pin = null @@ -326,7 +327,6 @@ spread = 60 w_class = WEIGHT_CLASS_BULKY weapon_weight = WEAPON_HEAVY - /* // TECHWEBS IMPLEMENTATION // From 5430454c7323e03110e9eb0327c0ce307a4fb3fa Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 28 Apr 2019 23:59:29 -0400 Subject: [PATCH 144/180] Update magweapon.dm --- .../code/modules/projectiles/guns/ballistic/magweapon.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm index 409b8eecaf..b3af722332 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon.dm @@ -305,7 +305,7 @@ materials = list(MAT_METAL = 6000, MAT_SILVER = 500, MAT_TITANIUM = 500) build_path = /obj/item/ammo_box/magazine/mmag departmental_flags = DEPARTMENTAL_FLAG_SECURITY -/* +*/ ///foamagrifle/// /obj/item/ammo_box/magazine/toy/foamag From 4492e60a9faacd2f12acc738cbaf0915e5a80b76 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 00:02:53 -0400 Subject: [PATCH 145/180] typo --- .../code/modules/projectiles/guns/ballistic/magweapon_energy.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm index ba853f3670..7140fda076 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm @@ -146,7 +146,7 @@ display_name = "Magnetic Weapons" description = "Weapons using magnetic technology" prereq_ids = list("weaponry", "adv_weaponry", "emp_adv") - design_ids = list("magrifle_e", "magpisol_e", "mag_magrifle_e", "mag_magrifle_nl", "mag_magpistol_e", "mag_magpistol_nl") + design_ids = list("magrifle_e", "magpistol_e", "mag_magrifle_e", "mag_magrifle_nl", "mag_magpistol_e", "mag_magpistol_nl") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 From 60a9544a6bd1f25c9f602f71ea86c262d4f5e05d Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 00:19:47 -0400 Subject: [PATCH 146/180] Update magweapon_energy.dm --- .../code/modules/projectiles/guns/ballistic/magweapon_energy.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm index 7140fda076..90dd577c4b 100644 --- a/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm +++ b/modular_citadel/code/modules/projectiles/guns/ballistic/magweapon_energy.dm @@ -146,7 +146,7 @@ display_name = "Magnetic Weapons" description = "Weapons using magnetic technology" prereq_ids = list("weaponry", "adv_weaponry", "emp_adv") - design_ids = list("magrifle_e", "magpistol_e", "mag_magrifle_e", "mag_magrifle_nl", "mag_magpistol_e", "mag_magpistol_nl") + design_ids = list("magrifle_e", "magpistol_e", "mag_magrifle_e", "mag_magrifle_e_nl", "mag_magpistol_e", "mag_magpistol_e_nl") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) export_price = 5000 From 079dc70dc25c17518518e5499dfce6b9cc4e5efe Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 17:44:05 -0400 Subject: [PATCH 147/180] Delete food.dmi --- modular_citadel/icons/obj/food/food.dmi | Bin 4184 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 modular_citadel/icons/obj/food/food.dmi diff --git a/modular_citadel/icons/obj/food/food.dmi b/modular_citadel/icons/obj/food/food.dmi deleted file mode 100644 index d205b29b8b2969c0f7c114450a742f5329b6697d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4184 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 Date: Mon, 29 Apr 2019 17:44:32 -0400 Subject: [PATCH 148/180] Add files via upload --- modular_citadel/icons/obj/food/food.dmi | Bin 0 -> 5346 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 modular_citadel/icons/obj/food/food.dmi diff --git a/modular_citadel/icons/obj/food/food.dmi b/modular_citadel/icons/obj/food/food.dmi new file mode 100644 index 0000000000000000000000000000000000000000..da9a6c365f697cd66b3f00949ece94110a1bada2 GIT binary patch literal 5346 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 Z=|A_g Date: Mon, 29 Apr 2019 17:45:48 -0400 Subject: [PATCH 149/180] Add files via upload --- .../recipes/tablecraft/snacks_sushi.dm | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm diff --git a/code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm b/code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm new file mode 100644 index 0000000000..a4cbc5e344 --- /dev/null +++ b/code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm @@ -0,0 +1,95 @@ +//////////////////////////Sushi Components/////////////////////// + +/obj/item/reagent_containers/food/snacks/sushi_rice + name = "Sushi Rice" + desc = "A bowl of sticky rice for making sushi." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushi_rice" + list_reagents = list("sodiumchloride" = 5) + tastes = list("rice" = 5, "salt" = 1) + foodtype = GRAIN + +/obj/item/reagent_containers/food/snacks/sea_weed + name = "Sea Weed Sheet" + desc = "A thin, light salt sheet of plant mater. This is commenly used in sushi recipes," + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sea_weed" + list_reagents = list("sodiumchloride" = 2) + tastes = list("plants" = 2, "salt" = 1) + foodtype = VEGETABLES + +/obj/item/reagent_containers/food/snacks/tuna + name = "Canned Tuna" + desc = "A small can of tuna fish beloved by felines." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "tuna_can" +//trash = /obj/item/trash/tuna_used //I dont know if I like this idea - A Masked Cat + list_reagents = list("sodiumchloride" = 5, "mercury" = 2) + tastes = list("tuna" = 15, "mercury" = 1, "salt" = 3) + foodtype = MEAT + +//////////////////////////Sushi///////////////////////////////// +/obj/item/reagent_containers/food/snacks/sushie_basic + name = "Funa Hosomaki" + desc = "A small cylindrical filled with rice and fish." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_basic" + bonus_reagents = list("vitamin" = 2) + list_reagents = list("nutriment" = 1) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/sushie_adv + name = "Funa Nigiri" + desc = "A pice of carp lightly placed on some rice." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_adv" + bonus_reagents = list("vitamin" = 2) + list_reagents = list("nutriment" = 2) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/sushie_pro + name = "Funa Nigiri" + desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_pro" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 8, "vitamin" = 1) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/tobiko + name = "Tobiko" + desc = "Spider eggs wrapped in a thin salted Kudzu pod" + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_egg" + list_reagents = list("nutriment" = 3, "vitamin" = 2) + filling_color = "#FF3333" // R225 G051 B051 + tastes = list("seaweed" = 1, "salty" = 2) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/riceball + name = "Onigiri" + desc = "A ball of rice with some light salt and a wrap of Kudzu skin." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "riceball" + list_reagents = list("nutriment" = 5, "sodiumchloride" = 2) + tastes = list("rice" = 4, "salt" = 1) + foodtype = GRAIN + +/obj/item/reagent_containers/food/snacks/sashimi + name = "carp sashimi" + desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself." + icon_state = "sashimi" + bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4) + list_reagents = list("nutriment" = 6, "capsaicin" = 5) + filling_color = "#FA8072" + tastes = list("fish" = 1, "hot peppers" = 1) + foodtype = MEAT | TOXIC \ No newline at end of file From bf9f9dcac32bdd836cd9915c6898dd4da862c43a Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 17:47:15 -0400 Subject: [PATCH 150/180] Update tgstation.dme --- tgstation.dme | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tgstation.dme b/tgstation.dme index 5b4c4eabe5..55cf2cd18e 100755 --- a/tgstation.dme +++ b/tgstation.dme @@ -1628,6 +1628,7 @@ #include "code\modules\food_and_drinks\food\snacks_sandwichtoast.dm" #include "code\modules\food_and_drinks\food\snacks_soup.dm" #include "code\modules\food_and_drinks\food\snacks_spaghetti.dm" +#include "code\modules\food_and_drinks\food\snacks_sushi.dm" #include "code\modules\food_and_drinks\food\snacks_vend.dm" #include "code\modules\food_and_drinks\food\snacks\dough.dm" #include "code\modules\food_and_drinks\food\snacks\meat.dm" @@ -1655,6 +1656,7 @@ #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sandwich.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_soup.dm" #include "code\modules\food_and_drinks\recipes\tablecraft\recipes_spaghetti.dm" +#include "code\modules\food_and_drinks\recipes\tablecraft\recipes_sushi.dm" #include "code\modules\games\cas.dm" #include "code\modules\goonchat\browserOutput.dm" #include "code\modules\goonchat\jsErrorHandler.dm" From 25df517ad567cab4b8375fadc5335b53cbe8a8be Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 17:48:26 -0400 Subject: [PATCH 151/180] Update construction.dm --- code/__DEFINES/construction.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm index aab49720f6..9f3d38efa1 100644 --- a/code/__DEFINES/construction.dm +++ b/code/__DEFINES/construction.dm @@ -102,6 +102,7 @@ #define CAT_SANDWICH "Sandwiches" #define CAT_SOUP "Soups" #define CAT_SPAGHETTI "Spaghettis" +#define CAT_SUSHI "Fish" #define RCD_FLOORWALL 1 #define RCD_AIRLOCK 2 From 555359f873083b0ac4e2497a52b0d103cf64b7be Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 17:51:53 -0400 Subject: [PATCH 152/180] Update snacks_sandwichtoast.dm --- .../food_and_drinks/food/snacks_sandwichtoast.dm | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm index 747f5f7d35..88f8848315 100644 --- a/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm +++ b/code/modules/food_and_drinks/food/snacks_sandwichtoast.dm @@ -102,3 +102,13 @@ list_reagents = list("nutriment" = 2, "vitamin" = 2) tastes = list("bread" = 2) foodtype = GRAIN + +/obj/item/reagent_containers/food/snacks/tuna_sandwich + name = "tuna sandwich" + desc = "Both a salad and a sandwich in one." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "tunasandwich" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + tastes = list("tuna" = 4, "mayonnaise" = 2, "bread" = 2) + foodtype = GRAIN | MEAT From 5737a4e951d34070df6691ed0f2b2ec34eea3773 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 17:52:28 -0400 Subject: [PATCH 153/180] Add files via upload --- .../food_and_drinks/food/snacks_sushi.dm | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 code/modules/food_and_drinks/food/snacks_sushi.dm diff --git a/code/modules/food_and_drinks/food/snacks_sushi.dm b/code/modules/food_and_drinks/food/snacks_sushi.dm new file mode 100644 index 0000000000..a4cbc5e344 --- /dev/null +++ b/code/modules/food_and_drinks/food/snacks_sushi.dm @@ -0,0 +1,95 @@ +//////////////////////////Sushi Components/////////////////////// + +/obj/item/reagent_containers/food/snacks/sushi_rice + name = "Sushi Rice" + desc = "A bowl of sticky rice for making sushi." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushi_rice" + list_reagents = list("sodiumchloride" = 5) + tastes = list("rice" = 5, "salt" = 1) + foodtype = GRAIN + +/obj/item/reagent_containers/food/snacks/sea_weed + name = "Sea Weed Sheet" + desc = "A thin, light salt sheet of plant mater. This is commenly used in sushi recipes," + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sea_weed" + list_reagents = list("sodiumchloride" = 2) + tastes = list("plants" = 2, "salt" = 1) + foodtype = VEGETABLES + +/obj/item/reagent_containers/food/snacks/tuna + name = "Canned Tuna" + desc = "A small can of tuna fish beloved by felines." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "tuna_can" +//trash = /obj/item/trash/tuna_used //I dont know if I like this idea - A Masked Cat + list_reagents = list("sodiumchloride" = 5, "mercury" = 2) + tastes = list("tuna" = 15, "mercury" = 1, "salt" = 3) + foodtype = MEAT + +//////////////////////////Sushi///////////////////////////////// +/obj/item/reagent_containers/food/snacks/sushie_basic + name = "Funa Hosomaki" + desc = "A small cylindrical filled with rice and fish." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_basic" + bonus_reagents = list("vitamin" = 2) + list_reagents = list("nutriment" = 1) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/sushie_adv + name = "Funa Nigiri" + desc = "A pice of carp lightly placed on some rice." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_adv" + bonus_reagents = list("vitamin" = 2) + list_reagents = list("nutriment" = 2) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/sushie_pro + name = "Funa Nigiri" + desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_pro" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 8, "vitamin" = 1) + bitesize = 1 + filling_color = "#F2EEEA" //rgb(242, 238, 234) + tastes = list("fish" = 1, "rice" = 1, "salt" = 1) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/tobiko + name = "Tobiko" + desc = "Spider eggs wrapped in a thin salted Kudzu pod" + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "sushie_egg" + list_reagents = list("nutriment" = 3, "vitamin" = 2) + filling_color = "#FF3333" // R225 G051 B051 + tastes = list("seaweed" = 1, "salty" = 2) + foodtype = MEAT | VEGETABLES + +/obj/item/reagent_containers/food/snacks/riceball + name = "Onigiri" + desc = "A ball of rice with some light salt and a wrap of Kudzu skin." + icon = 'modular_citadel/icons/obj/food/food.dmi' + icon_state = "riceball" + list_reagents = list("nutriment" = 5, "sodiumchloride" = 2) + tastes = list("rice" = 4, "salt" = 1) + foodtype = GRAIN + +/obj/item/reagent_containers/food/snacks/sashimi + name = "carp sashimi" + desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself." + icon_state = "sashimi" + bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4) + list_reagents = list("nutriment" = 6, "capsaicin" = 5) + filling_color = "#FA8072" + tastes = list("fish" = 1, "hot peppers" = 1) + foodtype = MEAT | TOXIC \ No newline at end of file From 862512fba749ff11bfc71962999bd5a1f7ed5760 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 17:53:44 -0400 Subject: [PATCH 154/180] Update recipes_sandwich.dm --- .../recipes/tablecraft/recipes_sandwich.dm | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm index 9750e91930..a2e83a09b4 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sandwich.dm @@ -62,5 +62,13 @@ result = /obj/item/reagent_containers/food/snacks/notasandwich subcategory = CAT_SANDWICH - - +/datum/crafting_recipe/food/notasandwich + name = "Tuna sandwich" + reqs = list( + /obj/item/reagent_containers/food/snacks/breadslice/plain = 2, + /obj/item/reagent_containers/food/snacks/tuna = 1, + /obj/item/reagent_containers/food/snacks/grown/onion = 1, + /obj/item/reagent_containers/food/condiment/mayonnaise = 5 + ) + result = /obj/item/reagent_containers/food/snacks/tuna_sandwich + subcategory = CAT_SANDWICH From adc6ef506e609689ebd6493f6c5b445eaa9fc81c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 17:58:17 -0400 Subject: [PATCH 155/180] Update recipes_meat.dm --- .../recipes/tablecraft/recipes_meat.dm | 486 ++++++++++-------- 1 file changed, 269 insertions(+), 217 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index e401e08062..d48d71c63c 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -1,240 +1,292 @@ +//Not only meat, actually, but also snacks that are almost meat, such as fish meat or tofu -////////////////////////////////////////////////KEBABS//////////////////////////////////////////////// +////////////////////////////////////////////FISH//////////////////////////////////////////// -/datum/crafting_recipe/food/humankebab - name = "Human kebab" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/reagent_containers/food/snacks/meat/steak/plain/human = 2 - ) - result = /obj/item/reagent_containers/food/snacks/kebab/human - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/cubancarp + name = "\improper Cuban carp" + desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!" + icon_state = "cubancarp" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + bitesize = 3 + filling_color = "#CD853F" + list_reagents = list("nutriment" = 6, "capsaicin" = 1) + tastes = list("fish" = 4, "batter" = 1, "hot peppers" = 1) + foodtype = MEAT -/datum/crafting_recipe/food/kebab - name = "Kebab" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/reagent_containers/food/snacks/meat/steak = 2 - ) - result = /obj/item/reagent_containers/food/snacks/kebab/monkey - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/carpmeat + name = "carp fillet" + desc = "A fillet of spess carp meat." + icon_state = "fishfillet" + list_reagents = list("nutriment" = 3, "carpotoxin" = 2, "vitamin" = 2) + bitesize = 6 + filling_color = "#FA8072" + tastes = list("fish" = 1) + foodtype = MEAT -/datum/crafting_recipe/food/tofukebab - name = "Tofu kebab" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/reagent_containers/food/snacks/tofu = 2 - ) - result = /obj/item/reagent_containers/food/snacks/kebab/tofu - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/carpmeat/Initialize() + . = ..() + eatverb = pick("bite","chew","choke down","gnaw","swallow","chomp") -/datum/crafting_recipe/food/tailkebab - name = "Lizard tail kebab" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/organ/tail/lizard = 1 - ) - result = /obj/item/reagent_containers/food/snacks/kebab/tail - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/carpmeat/imitation + name = "imitation carp fillet" + desc = "Almost just like the real thing, kinda." -// see code/module/crafting/table.dm +/obj/item/reagent_containers/food/snacks/fishfingers + name = "fish fingers" + desc = "A finger of fish." + icon_state = "fishfingers" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 4) + bitesize = 1 + filling_color = "#CD853F" + tastes = list("fish" = 1, "breadcrumbs" = 1) + foodtype = MEAT -////////////////////////////////////////////////FISH//////////////////////////////////////////////// +/obj/item/reagent_containers/food/snacks/fishandchips + name = "fish and chips" + desc = "I do say so myself chap." + icon_state = "fishandchips" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + list_reagents = list("nutriment" = 6) + filling_color = "#FA8072" + tastes = list("fish" = 1, "chips" = 1) + foodtype = MEAT | VEGETABLES | FRIED -/datum/crafting_recipe/food/cubancarp - name = "Cuban carp" - reqs = list( - /datum/reagent/consumable/flour = 5, - /obj/item/reagent_containers/food/snacks/grown/chili = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/cubancarp - subcategory = CAT_MEAT +////////////////////////////////////////////MEATS AND ALIKE//////////////////////////////////////////// -/datum/crafting_recipe/food/fishandchips - name = "Fish and chips" - reqs = list( - /obj/item/reagent_containers/food/snacks/fries = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/fishandchips - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/tofu + name = "tofu" + desc = "We all love tofu." + icon_state = "tofu" + list_reagents = list("nutriment" = 2) + filling_color = "#F0E68C" + tastes = list("tofu" = 1) + foodtype = VEGETABLES -/datum/crafting_recipe/food/fishfingers - name = "Fish fingers" - reqs = list( - /datum/reagent/consumable/flour = 5, - /obj/item/reagent_containers/food/snacks/bun = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/fishfingers - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/spiderleg + name = "spider leg" + desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?" + icon_state = "spiderleg" + list_reagents = list("nutriment" = 2, "toxin" = 2) + cooked_type = /obj/item/reagent_containers/food/snacks/boiledspiderleg + filling_color = "#000000" + tastes = list("cobwebs" = 1) + foodtype = MEAT | TOXIC -/datum/crafting_recipe/food/sashimi - name = "Sashimi" - reqs = list( - /datum/reagent/consumable/soysauce = 5, - /obj/item/reagent_containers/food/snacks/spidereggs = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/sashimi - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/cornedbeef + name = "corned beef and cabbage" + desc = "Now you can feel like a real tourist vacationing in Ireland." + icon_state = "cornedbeef" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 5) + tastes = list("meat" = 1, "cabbage" = 1) + foodtype = MEAT | VEGETABLES -/datum/crafting_recipe/food/sushi_basic - name = "Funa Hosomaki" - reqs = list( - /datum/reagent/consumable/soysauce = 3, - /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 2, - /obj/item/reagent_containers/food/snacks/grown/kudzupod = 3, - ) - result = /obj/item/reagent_containers/food/snacks/sushi_basic - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/sushi_adv - name = "Funa Nigiri" - reqs = list( - /datum/reagent/consumable/soysauce = 5, - /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/sushi_adv - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/sushi_pro - name = "Well made Funa Nigiri" - reqs = list( - /datum/reagent/consumable/soysauce = 10, - /obj/item/reagent_containers/food/snacks/salad/ricebowl = 2, - /obj/item/reagent_containers/food/snacks/carpmeat = 2 - ) - result = /obj/item/reagent_containers/food/snacks/sushi_pro - subcategory = CAT_MEAT - -////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// - -/datum/crafting_recipe/food/spidereggsham - name = "Spider eggs ham" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 1, - /obj/item/reagent_containers/food/snacks/spidereggs = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet/spider = 2 - ) - result = /obj/item/reagent_containers/food/snacks/spidereggsham - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/sushi_egg - name = "Tobiko" - reqs = list( - /datum/reagent/consumable/soysauce = 6, - /obj/item/reagent_containers/food/snacks/spidereggs = 1, - /obj/item/reagent_containers/food/snacks/grown/kudzupod = 2, - ) - result = /obj/item/reagent_containers/food/snacks/tobiko - subcategory = CAT_MEAT - -////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// - -/datum/crafting_recipe/food/cornedbeef - name = "Corned beef" - reqs = list( - /datum/reagent/consumable/sodiumchloride = 5, - /obj/item/reagent_containers/food/snacks/meat/steak = 1, - /obj/item/reagent_containers/food/snacks/grown/cabbage = 2 - ) - result = /obj/item/reagent_containers/food/snacks/cornedbeef - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/bearsteak +/obj/item/reagent_containers/food/snacks/bearsteak name = "Filet migrawr" - reqs = list( - /datum/reagent/consumable/ethanol/manly_dorf = 5, - /obj/item/reagent_containers/food/snacks/meat/steak/bear = 1, - ) - tools = list(/obj/item/lighter) - result = /obj/item/reagent_containers/food/snacks/bearsteak - subcategory = CAT_MEAT + desc = "Because eating bear wasn't manly enough." + icon_state = "bearsteak" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 2, "vitamin" = 6) + list_reagents = list("nutriment" = 2, "vitamin" = 5, "manlydorf" = 5) + tastes = list("meat" = 1, "salmon" = 1) + foodtype = MEAT | ALCOHOL -/datum/crafting_recipe/food/enchiladas - name = "Enchiladas" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, - /obj/item/reagent_containers/food/snacks/grown/chili = 2, - /obj/item/reagent_containers/food/snacks/tortilla = 2 - ) - result = /obj/item/reagent_containers/food/snacks/enchiladas - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/faggot + name = "faggot" + desc = "A great meal all round. Not a cord of wood." + icon_state = "faggot" + list_reagents = list("nutriment" = 4, "vitamin" = 1) + filling_color = "#800000" + tastes = list("meat" = 1) + foodtype = MEAT -/datum/crafting_recipe/food/stewedsoymeat - name = "Stewed soymeat" - reqs = list( - /obj/item/reagent_containers/food/snacks/soydope = 2, - /obj/item/reagent_containers/food/snacks/grown/carrot = 1, - /obj/item/reagent_containers/food/snacks/grown/tomato = 1 - ) - result = /obj/item/reagent_containers/food/snacks/stewedsoymeat - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/sausage + name = "sausage" + desc = "A piece of mixed, long meat." + icon_state = "sausage" + filling_color = "#CD5C5C" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 6, "vitamin" = 1) + tastes = list("meat" = 1) + foodtype = MEAT + var/roasted = FALSE -/datum/crafting_recipe/food/sausage - name = "Sausage" - reqs = list( - /obj/item/reagent_containers/food/snacks/faggot = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 2 - ) - result = /obj/item/reagent_containers/food/snacks/sausage - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/sausage/Initialize() + . = ..() + eatverb = pick("bite","chew","nibble","deep throat","gobble","chomp") -/datum/crafting_recipe/food/nugget - name = "Chicken nugget" - reqs = list( - /obj/item/reagent_containers/food/snacks/meat/cutlet = 1 - ) - result = /obj/item/reagent_containers/food/snacks/nugget - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/kebab + trash = /obj/item/stack/rods + icon_state = "kebab" + w_class = WEIGHT_CLASS_NORMAL + list_reagents = list("nutriment" = 8) + tastes = list("meat" = 3, "metal" = 1) + foodtype = MEAT -/datum/crafting_recipe/food/rawkhinkali - name = "Raw Khinkali" - reqs = list( - /obj/item/reagent_containers/food/snacks/doughslice = 1, - /obj/item/reagent_containers/food/snacks/faggot = 1 - ) - result = /obj/item/reagent_containers/food/snacks/rawkhinkali - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/kebab/human + name = "human-kebab" + desc = "A human meat, on a stick." + bonus_reagents = list("nutriment" = 1, "vitamin" = 6) + tastes = list("tender meat" = 3, "metal" = 1) + foodtype = MEAT | GROSS -/datum/crafting_recipe/food/pigblanket - name = "Pig in a Blanket" - reqs = list( - /obj/item/reagent_containers/food/snacks/bun = 1, - /obj/item/reagent_containers/food/snacks/butter = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 1 - ) - result = /obj/item/reagent_containers/food/snacks/pigblanket - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/kebab/monkey + name = "meat-kebab" + desc = "Delicious meat, on a stick." + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + tastes = list("meat" = 3, "metal" = 1) + foodtype = MEAT -/datum/crafting_recipe/food/ratkebab - name = "Rat Kebab" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/reagent_containers/food/snacks/deadmouse = 1 - ) - result = /obj/item/reagent_containers/food/snacks/kebab/rat - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/kebab/tofu + name = "tofu-kebab" + desc = "Vegan meat, on a stick." + bonus_reagents = list("nutriment" = 1) + tastes = list("tofu" = 3, "metal" = 1) + foodtype = VEGETABLES -/datum/crafting_recipe/food/doubleratkebab - name = "Double Rat Kebab" - reqs = list( - /obj/item/stack/rods = 1, - /obj/item/reagent_containers/food/snacks/deadmouse = 2 - ) - result = /obj/item/reagent_containers/food/snacks/kebab/rat/double - subcategory = CAT_MEAT +/obj/item/reagent_containers/food/snacks/kebab/tail + name = "lizard-tail kebab" + desc = "Severed lizard tail on a stick." + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + tastes = list("meat" = 8, "metal" = 4, "scales" = 1) + foodtype = MEAT + +/obj/item/reagent_containers/food/snacks/rawkhinkali + name = "raw khinkali" + desc = "One hundred khinkalis? Do I look like a pig?" + icon_state = "khinkali" + list_reagents = list("nutriment" = 1, "vitamin" = 1) + cooked_type = /obj/item/reagent_containers/food/snacks/khinkali + tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) + foodtype = MEAT + +/obj/item/reagent_containers/food/snacks/khinkali + name = "khinkali" + desc = "One hundred khinkalis? Do I look like a pig?" + icon_state = "khinkali" + list_reagents = list("nutriment" = 4, "vitamin" = 2) + bitesize = 3 + filling_color = "#F0F0F0" + tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) + foodtype = MEAT + +/obj/item/reagent_containers/food/snacks/monkeycube + name = "monkey cube" + desc = "Just add water!" + icon_state = "monkeycube" + bitesize = 12 + list_reagents = list("nutriment" = 2) + filling_color = "#CD853F" + tastes = list("the jungle" = 1, "bananas" = 1) + foodtype = MEAT | SUGAR + +/obj/item/reagent_containers/food/snacks/monkeycube/On_Consume(mob/living/carbon/M) + if(iscarbon(M)) + M.visible_message("[src] bursts out of [M]!") + M.emote("scream") + M.Knockdown(40) + M.adjustBruteLoss(60) + Expand() + return ..() + +/obj/item/reagent_containers/food/snacks/monkeycube/proc/Expand() + var/mob/spammer = get_mob_by_key(fingerprintslast) + var/mob/living/carbon/monkey/bananas = new(drop_location(), TRUE, spammer) + if (!QDELETED(bananas)) + visible_message("[src] expands!") + bananas.log_message("Spawned via [src] at [AREACOORD(src)], Last attached mob: [key_name(spammer)].", LOG_ATTACK) + else if (!spammer) // Visible message in case there are no fingerprints + visible_message("[src] fails to expand!") + qdel(src) + +/obj/item/reagent_containers/food/snacks/enchiladas + name = "enchiladas" + desc = "Viva La Mexico!" + icon_state = "enchiladas" + bonus_reagents = list("nutriment" = 1, "vitamin" = 2) + bitesize = 4 + filling_color = "#FFA07A" + list_reagents = list("nutriment" = 8, "capsaicin" = 6) + tastes = list("hot peppers" = 1, "meat" = 3, "cheese" = 1, "sour cream" = 1) + foodtype = MEAT + +/obj/item/reagent_containers/food/snacks/stewedsoymeat + name = "stewed soy meat" + desc = "Even non-vegetarians will LOVE this!" + icon_state = "stewedsoymeat" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1) + list_reagents = list("nutriment" = 8) + filling_color = "#D2691E" + tastes = list("soy" = 1, "vegetables" = 1) + foodtype = VEGETABLES + +/obj/item/reagent_containers/food/snacks/stewedsoymeat/Initialize() + . = ..() + eatverb = pick("slurp","sip","suck","inhale","drink") + +/obj/item/reagent_containers/food/snacks/boiledspiderleg + name = "boiled spider leg" + desc = "A giant spider's leg that's still twitching after being cooked. Gross!" + icon_state = "spiderlegcooked" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "capsaicin" = 2, "vitamin" = 2) + list_reagents = list("nutriment" = 3, "capsaicin" = 2) + filling_color = "#000000" + tastes = list("hot peppers" = 1, "cobwebs" = 1) + foodtype = MEAT + +/obj/item/reagent_containers/food/snacks/spidereggsham + name = "green eggs and ham" + desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?" + icon_state = "spidereggsham" + trash = /obj/item/trash/plate + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + list_reagents = list("nutriment" = 6) + bitesize = 4 + filling_color = "#7FFF00" + tastes = list("meat" = 1, "the colour green" = 1) + foodtype = MEAT + +/obj/item/reagent_containers/food/snacks/nugget + name = "chicken nugget" + filling_color = "#B22222" + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + list_reagents = list("nutriment" = 2) + tastes = list("\"chicken\"" = 1) + foodtype = MEAT + +/obj/item/reagent_containers/food/snacks/nugget/Initialize() + . = ..() + var/shape = pick("lump", "star", "lizard", "corgi") + desc = "A 'chicken' nugget vaguely shaped like a [shape]." + icon_state = "nugget_[shape]" + +/obj/item/reagent_containers/food/snacks/pigblanket + name = "pig in a blanket" + desc = "A tiny sausage wrapped in a flakey, buttery roll. Free this pig from its blanket prison by eating it." + icon_state = "pigblanket" + list_reagents = list("nutriment" = 6, "vitamin" = 1) + bonus_reagents = list("nutriment" = 1, "vitamin" = 1) + filling_color = "#800000" + tastes = list("meat" = 1, "butter" = 1) + +/obj/item/reagent_containers/food/snacks/kebab/rat + name = "rat-kebab" + desc = "Not so delicious rat meat, on a stick." + icon_state = "ratkebab" + w_class = WEIGHT_CLASS_NORMAL + list_reagents = list("nutriment" = 6, "vitamin" = 2) + tastes = list("rat meat" = 1, "metal" = 1) + foodtype = MEAT | GROSS + +/obj/item/reagent_containers/food/snacks/kebab/rat/double + name = "double rat-kebab" + icon_state = "doubleratkebab" + tastes = list("rat meat" = 2, "metal" = 1) + bonus_reagents = list("nutriment" = 6, "vitamin" = 2) -/datum/crafting_recipe/food/ricepork - name = "Rice and pork" - reqs = list( - /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1, - /obj/item/reagent_containers/food/snacks/meat/cutlet = 2 - ) - result = /obj/item/reagent_containers/food/snacks/salad/ricepork - subcategory = CAT_MEAT From 0d099cb627bf544194ef1e11af9d1d8209fe6aae Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 18:13:42 -0400 Subject: [PATCH 156/180] Update recipes_meat.dm --- code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm | 1 - 1 file changed, 1 deletion(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index d48d71c63c..a4a3cdd298 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -1,6 +1,5 @@ //Not only meat, actually, but also snacks that are almost meat, such as fish meat or tofu - ////////////////////////////////////////////FISH//////////////////////////////////////////// /obj/item/reagent_containers/food/snacks/cubancarp From fd5554dc2176fdc12ce420b345af31b94ddd8364 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 18:17:53 -0400 Subject: [PATCH 157/180] Update recipes_meat.dm --- .../modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index a4a3cdd298..620418e2d0 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -1,6 +1,6 @@ //Not only meat, actually, but also snacks that are almost meat, such as fish meat or tofu -////////////////////////////////////////////FISH//////////////////////////////////////////// +///////////////////////////////////////////FISH//////////////////////////////////////////// /obj/item/reagent_containers/food/snacks/cubancarp name = "\improper Cuban carp" @@ -288,4 +288,3 @@ icon_state = "doubleratkebab" tastes = list("rat meat" = 2, "metal" = 1) bonus_reagents = list("nutriment" = 6, "vitamin" = 2) - From c03febe17e394b32ba0317df7b34ec2fc75bee62 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 18:20:38 -0400 Subject: [PATCH 158/180] THATS WHY --- .../recipes/tablecraft/recipes_meat.dm | 496 ++++++++---------- 1 file changed, 228 insertions(+), 268 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index 620418e2d0..fe71e9e154 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -1,290 +1,250 @@ -//Not only meat, actually, but also snacks that are almost meat, such as fish meat or tofu -///////////////////////////////////////////FISH//////////////////////////////////////////// -/obj/item/reagent_containers/food/snacks/cubancarp - name = "\improper Cuban carp" - desc = "A grifftastic sandwich that burns your tongue and then leaves it numb!" - icon_state = "cubancarp" - trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - bitesize = 3 - filling_color = "#CD853F" - list_reagents = list("nutriment" = 6, "capsaicin" = 1) - tastes = list("fish" = 4, "batter" = 1, "hot peppers" = 1) - foodtype = MEAT +////////////////////////////////////////////////KEBABS//////////////////////////////////////////////// -/obj/item/reagent_containers/food/snacks/carpmeat - name = "carp fillet" - desc = "A fillet of spess carp meat." - icon_state = "fishfillet" - list_reagents = list("nutriment" = 3, "carpotoxin" = 2, "vitamin" = 2) - bitesize = 6 - filling_color = "#FA8072" - tastes = list("fish" = 1) - foodtype = MEAT +/datum/crafting_recipe/food/humankebab + name = "Human kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/reagent_containers/food/snacks/meat/steak/plain/human = 2 + ) + result = /obj/item/reagent_containers/food/snacks/kebab/human + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/carpmeat/Initialize() - . = ..() - eatverb = pick("bite","chew","choke down","gnaw","swallow","chomp") +/datum/crafting_recipe/food/kebab + name = "Kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/reagent_containers/food/snacks/meat/steak = 2 + ) + result = /obj/item/reagent_containers/food/snacks/kebab/monkey + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/carpmeat/imitation - name = "imitation carp fillet" - desc = "Almost just like the real thing, kinda." +/datum/crafting_recipe/food/tofukebab + name = "Tofu kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/reagent_containers/food/snacks/tofu = 2 + ) + result = /obj/item/reagent_containers/food/snacks/kebab/tofu + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/fishfingers - name = "fish fingers" - desc = "A finger of fish." - icon_state = "fishfingers" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 4) - bitesize = 1 - filling_color = "#CD853F" - tastes = list("fish" = 1, "breadcrumbs" = 1) - foodtype = MEAT +/datum/crafting_recipe/food/tailkebab + name = "Lizard tail kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/organ/tail/lizard = 1 + ) + result = /obj/item/reagent_containers/food/snacks/kebab/tail + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/fishandchips - name = "fish and chips" - desc = "I do say so myself chap." - icon_state = "fishandchips" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 6) - filling_color = "#FA8072" - tastes = list("fish" = 1, "chips" = 1) - foodtype = MEAT | VEGETABLES | FRIED +// see code/module/crafting/table.dm -////////////////////////////////////////////MEATS AND ALIKE//////////////////////////////////////////// +////////////////////////////////////////////////FISH//////////////////////////////////////////////// -/obj/item/reagent_containers/food/snacks/tofu - name = "tofu" - desc = "We all love tofu." - icon_state = "tofu" - list_reagents = list("nutriment" = 2) - filling_color = "#F0E68C" - tastes = list("tofu" = 1) - foodtype = VEGETABLES +/datum/crafting_recipe/food/cubancarp + name = "Cuban carp" + reqs = list( + /datum/reagent/consumable/flour = 5, + /obj/item/reagent_containers/food/snacks/grown/chili = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/cubancarp + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/spiderleg - name = "spider leg" - desc = "A still twitching leg of a giant spider... you don't really want to eat this, do you?" - icon_state = "spiderleg" - list_reagents = list("nutriment" = 2, "toxin" = 2) - cooked_type = /obj/item/reagent_containers/food/snacks/boiledspiderleg - filling_color = "#000000" - tastes = list("cobwebs" = 1) - foodtype = MEAT | TOXIC +/datum/crafting_recipe/food/fishandchips + name = "Fish and chips" + reqs = list( + /obj/item/reagent_containers/food/snacks/fries = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/fishandchips + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/cornedbeef - name = "corned beef and cabbage" - desc = "Now you can feel like a real tourist vacationing in Ireland." - icon_state = "cornedbeef" - trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - list_reagents = list("nutriment" = 5) - tastes = list("meat" = 1, "cabbage" = 1) - foodtype = MEAT | VEGETABLES +/datum/crafting_recipe/food/fishfingers + name = "Fish fingers" + reqs = list( + /datum/reagent/consumable/flour = 5, + /obj/item/reagent_containers/food/snacks/bun = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/fishfingers + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/bearsteak +/datum/crafting_recipe/food/sashimi + name = "Sashimi" + reqs = list( + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/spidereggs = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/sashimi + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/riceball + name = "Onigiri" + reqs = list( + /datum/reagent/consumable/soysauce = 1, + /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, + /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1 + ) + result = /obj/item/reagent_containers/food/snacks/riceball + subcategory = CAT_MISCFOOD + +/datum/crafting_recipe/food/sushie_egg + name = "Tobiko" + reqs = list( + /datum/reagent/consumable/soysauce = 6, + /obj/item/reagent_containers/food/snacks/spidereggs = 1, + /obj/item/reagent_containers/food/snacks/grown/kudzupod = 2, + ) + result = /obj/item/reagent_containers/food/snacks/tobiko + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/sushie_basic + name = "Funa Hosomaki" + reqs = list( + /datum/reagent/consumable/soysauce = 3, + /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 2, + /obj/item/reagent_containers/food/snacks/grown/kudzupod = 3, + ) + result = /obj/item/reagent_containers/food/snacks/sushie_basic + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/sushie_adv + name = "Funa Nigiri" + reqs = list( + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/sushie_adv + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/sushie_pro + name = "Well made Funa Nigiri" + reqs = list( + /datum/reagent/consumable/soysauce = 10, + /obj/item/reagent_containers/food/snacks/salad/ricebowl = 2, + /obj/item/reagent_containers/food/snacks/carpmeat = 5 + ) + result = /obj/item/reagent_containers/food/snacks/sushie_pro + subcategory = CAT_MEAT + +////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// + +/datum/crafting_recipe/food/spidereggsham + name = "Spider eggs ham" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 1, + /obj/item/reagent_containers/food/snacks/spidereggs = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet/spider = 2 + ) + result = /obj/item/reagent_containers/food/snacks/spidereggsham + subcategory = CAT_MEAT + +////////////////////////////////////////////////MISC RECIPE's//////////////////////////////////////////////// + +/datum/crafting_recipe/food/cornedbeef + name = "Corned beef" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 5, + /obj/item/reagent_containers/food/snacks/meat/steak = 1, + /obj/item/reagent_containers/food/snacks/grown/cabbage = 2 + ) + result = /obj/item/reagent_containers/food/snacks/cornedbeef + subcategory = CAT_MEAT + +/datum/crafting_recipe/food/bearsteak name = "Filet migrawr" - desc = "Because eating bear wasn't manly enough." - icon_state = "bearsteak" - trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 2, "vitamin" = 6) - list_reagents = list("nutriment" = 2, "vitamin" = 5, "manlydorf" = 5) - tastes = list("meat" = 1, "salmon" = 1) - foodtype = MEAT | ALCOHOL + reqs = list( + /datum/reagent/consumable/ethanol/manly_dorf = 5, + /obj/item/reagent_containers/food/snacks/meat/steak/bear = 1, + ) + tools = list(/obj/item/lighter) + result = /obj/item/reagent_containers/food/snacks/bearsteak + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/faggot - name = "faggot" - desc = "A great meal all round. Not a cord of wood." - icon_state = "faggot" - list_reagents = list("nutriment" = 4, "vitamin" = 1) - filling_color = "#800000" - tastes = list("meat" = 1) - foodtype = MEAT +/datum/crafting_recipe/food/enchiladas + name = "Enchiladas" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/cutlet = 2, + /obj/item/reagent_containers/food/snacks/grown/chili = 2, + /obj/item/reagent_containers/food/snacks/tortilla = 2 + ) + result = /obj/item/reagent_containers/food/snacks/enchiladas + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/sausage - name = "sausage" - desc = "A piece of mixed, long meat." - icon_state = "sausage" - filling_color = "#CD5C5C" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 6, "vitamin" = 1) - tastes = list("meat" = 1) - foodtype = MEAT - var/roasted = FALSE +/datum/crafting_recipe/food/stewedsoymeat + name = "Stewed soymeat" + reqs = list( + /obj/item/reagent_containers/food/snacks/soydope = 2, + /obj/item/reagent_containers/food/snacks/grown/carrot = 1, + /obj/item/reagent_containers/food/snacks/grown/tomato = 1 + ) + result = /obj/item/reagent_containers/food/snacks/stewedsoymeat + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/sausage/Initialize() - . = ..() - eatverb = pick("bite","chew","nibble","deep throat","gobble","chomp") +/datum/crafting_recipe/food/sausage + name = "Sausage" + reqs = list( + /obj/item/reagent_containers/food/snacks/faggot = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 2 + ) + result = /obj/item/reagent_containers/food/snacks/sausage + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/kebab - trash = /obj/item/stack/rods - icon_state = "kebab" - w_class = WEIGHT_CLASS_NORMAL - list_reagents = list("nutriment" = 8) - tastes = list("meat" = 3, "metal" = 1) - foodtype = MEAT +/datum/crafting_recipe/food/nugget + name = "Chicken nugget" + reqs = list( + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1 + ) + result = /obj/item/reagent_containers/food/snacks/nugget + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/kebab/human - name = "human-kebab" - desc = "A human meat, on a stick." - bonus_reagents = list("nutriment" = 1, "vitamin" = 6) - tastes = list("tender meat" = 3, "metal" = 1) - foodtype = MEAT | GROSS +/datum/crafting_recipe/food/rawkhinkali + name = "Raw Khinkali" + reqs = list( + /obj/item/reagent_containers/food/snacks/doughslice = 1, + /obj/item/reagent_containers/food/snacks/faggot = 1 + ) + result = /obj/item/reagent_containers/food/snacks/rawkhinkali + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/kebab/monkey - name = "meat-kebab" - desc = "Delicious meat, on a stick." - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - tastes = list("meat" = 3, "metal" = 1) - foodtype = MEAT +/datum/crafting_recipe/food/pigblanket + name = "Pig in a Blanket" + reqs = list( + /obj/item/reagent_containers/food/snacks/bun = 1, + /obj/item/reagent_containers/food/snacks/butter = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 1 + ) + result = /obj/item/reagent_containers/food/snacks/pigblanket + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/kebab/tofu - name = "tofu-kebab" - desc = "Vegan meat, on a stick." - bonus_reagents = list("nutriment" = 1) - tastes = list("tofu" = 3, "metal" = 1) - foodtype = VEGETABLES +/datum/crafting_recipe/food/ratkebab + name = "Rat Kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/reagent_containers/food/snacks/deadmouse = 1 + ) + result = /obj/item/reagent_containers/food/snacks/kebab/rat + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/kebab/tail - name = "lizard-tail kebab" - desc = "Severed lizard tail on a stick." - bonus_reagents = list("nutriment" = 1, "vitamin" = 4) - tastes = list("meat" = 8, "metal" = 4, "scales" = 1) - foodtype = MEAT +/datum/crafting_recipe/food/doubleratkebab + name = "Double Rat Kebab" + reqs = list( + /obj/item/stack/rods = 1, + /obj/item/reagent_containers/food/snacks/deadmouse = 2 + ) + result = /obj/item/reagent_containers/food/snacks/kebab/rat/double + subcategory = CAT_MEAT -/obj/item/reagent_containers/food/snacks/rawkhinkali - name = "raw khinkali" - desc = "One hundred khinkalis? Do I look like a pig?" - icon_state = "khinkali" - list_reagents = list("nutriment" = 1, "vitamin" = 1) - cooked_type = /obj/item/reagent_containers/food/snacks/khinkali - tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) - foodtype = MEAT - -/obj/item/reagent_containers/food/snacks/khinkali - name = "khinkali" - desc = "One hundred khinkalis? Do I look like a pig?" - icon_state = "khinkali" - list_reagents = list("nutriment" = 4, "vitamin" = 2) - bitesize = 3 - filling_color = "#F0F0F0" - tastes = list("meat" = 1, "onions" = 1, "garlic" = 1) - foodtype = MEAT - -/obj/item/reagent_containers/food/snacks/monkeycube - name = "monkey cube" - desc = "Just add water!" - icon_state = "monkeycube" - bitesize = 12 - list_reagents = list("nutriment" = 2) - filling_color = "#CD853F" - tastes = list("the jungle" = 1, "bananas" = 1) - foodtype = MEAT | SUGAR - -/obj/item/reagent_containers/food/snacks/monkeycube/On_Consume(mob/living/carbon/M) - if(iscarbon(M)) - M.visible_message("[src] bursts out of [M]!") - M.emote("scream") - M.Knockdown(40) - M.adjustBruteLoss(60) - Expand() - return ..() - -/obj/item/reagent_containers/food/snacks/monkeycube/proc/Expand() - var/mob/spammer = get_mob_by_key(fingerprintslast) - var/mob/living/carbon/monkey/bananas = new(drop_location(), TRUE, spammer) - if (!QDELETED(bananas)) - visible_message("[src] expands!") - bananas.log_message("Spawned via [src] at [AREACOORD(src)], Last attached mob: [key_name(spammer)].", LOG_ATTACK) - else if (!spammer) // Visible message in case there are no fingerprints - visible_message("[src] fails to expand!") - qdel(src) - -/obj/item/reagent_containers/food/snacks/enchiladas - name = "enchiladas" - desc = "Viva La Mexico!" - icon_state = "enchiladas" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - bitesize = 4 - filling_color = "#FFA07A" - list_reagents = list("nutriment" = 8, "capsaicin" = 6) - tastes = list("hot peppers" = 1, "meat" = 3, "cheese" = 1, "sour cream" = 1) - foodtype = MEAT - -/obj/item/reagent_containers/food/snacks/stewedsoymeat - name = "stewed soy meat" - desc = "Even non-vegetarians will LOVE this!" - icon_state = "stewedsoymeat" - trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1) - list_reagents = list("nutriment" = 8) - filling_color = "#D2691E" - tastes = list("soy" = 1, "vegetables" = 1) - foodtype = VEGETABLES - -/obj/item/reagent_containers/food/snacks/stewedsoymeat/Initialize() - . = ..() - eatverb = pick("slurp","sip","suck","inhale","drink") - -/obj/item/reagent_containers/food/snacks/boiledspiderleg - name = "boiled spider leg" - desc = "A giant spider's leg that's still twitching after being cooked. Gross!" - icon_state = "spiderlegcooked" - trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "capsaicin" = 2, "vitamin" = 2) - list_reagents = list("nutriment" = 3, "capsaicin" = 2) - filling_color = "#000000" - tastes = list("hot peppers" = 1, "cobwebs" = 1) - foodtype = MEAT - -/obj/item/reagent_containers/food/snacks/spidereggsham - name = "green eggs and ham" - desc = "Would you eat them on a train? Would you eat them on a plane? Would you eat them on a state of the art corporate deathtrap floating through space?" - icon_state = "spidereggsham" - trash = /obj/item/trash/plate - bonus_reagents = list("nutriment" = 1, "vitamin" = 3) - list_reagents = list("nutriment" = 6) - bitesize = 4 - filling_color = "#7FFF00" - tastes = list("meat" = 1, "the colour green" = 1) - foodtype = MEAT - -/obj/item/reagent_containers/food/snacks/nugget - name = "chicken nugget" - filling_color = "#B22222" - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - list_reagents = list("nutriment" = 2) - tastes = list("\"chicken\"" = 1) - foodtype = MEAT - -/obj/item/reagent_containers/food/snacks/nugget/Initialize() - . = ..() - var/shape = pick("lump", "star", "lizard", "corgi") - desc = "A 'chicken' nugget vaguely shaped like a [shape]." - icon_state = "nugget_[shape]" - -/obj/item/reagent_containers/food/snacks/pigblanket - name = "pig in a blanket" - desc = "A tiny sausage wrapped in a flakey, buttery roll. Free this pig from its blanket prison by eating it." - icon_state = "pigblanket" - list_reagents = list("nutriment" = 6, "vitamin" = 1) - bonus_reagents = list("nutriment" = 1, "vitamin" = 1) - filling_color = "#800000" - tastes = list("meat" = 1, "butter" = 1) - -/obj/item/reagent_containers/food/snacks/kebab/rat - name = "rat-kebab" - desc = "Not so delicious rat meat, on a stick." - icon_state = "ratkebab" - w_class = WEIGHT_CLASS_NORMAL - list_reagents = list("nutriment" = 6, "vitamin" = 2) - tastes = list("rat meat" = 1, "metal" = 1) - foodtype = MEAT | GROSS - -/obj/item/reagent_containers/food/snacks/kebab/rat/double - name = "double rat-kebab" - icon_state = "doubleratkebab" - tastes = list("rat meat" = 2, "metal" = 1) - bonus_reagents = list("nutriment" = 6, "vitamin" = 2) +/datum/crafting_recipe/food/ricepork + name = "Rice and pork" + reqs = list( + /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1, + /obj/item/reagent_containers/food/snacks/meat/cutlet = 2 + ) + result = /obj/item/reagent_containers/food/snacks/salad/ricepork + subcategory = CAT_MEAT From 482ee83621294711934aa244ae1aad1427ffa62a Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 18:22:31 -0400 Subject: [PATCH 159/180] Update recipes_meat.dm --- .../recipes/tablecraft/recipes_meat.dm | 63 ------------------- 1 file changed, 63 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm index fe71e9e154..c16c7268b9 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_meat.dm @@ -1,5 +1,3 @@ - - ////////////////////////////////////////////////KEBABS//////////////////////////////////////////////// /datum/crafting_recipe/food/humankebab @@ -71,67 +69,6 @@ result = /obj/item/reagent_containers/food/snacks/fishfingers subcategory = CAT_MEAT -/datum/crafting_recipe/food/sashimi - name = "Sashimi" - reqs = list( - /datum/reagent/consumable/soysauce = 5, - /obj/item/reagent_containers/food/snacks/spidereggs = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/sashimi - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/riceball - name = "Onigiri" - reqs = list( - /datum/reagent/consumable/soysauce = 1, - /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, - /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1 - ) - result = /obj/item/reagent_containers/food/snacks/riceball - subcategory = CAT_MISCFOOD - -/datum/crafting_recipe/food/sushie_egg - name = "Tobiko" - reqs = list( - /datum/reagent/consumable/soysauce = 6, - /obj/item/reagent_containers/food/snacks/spidereggs = 1, - /obj/item/reagent_containers/food/snacks/grown/kudzupod = 2, - ) - result = /obj/item/reagent_containers/food/snacks/tobiko - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/sushie_basic - name = "Funa Hosomaki" - reqs = list( - /datum/reagent/consumable/soysauce = 3, - /obj/item/reagent_containers/food/snacks/salad/boiledrice = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 2, - /obj/item/reagent_containers/food/snacks/grown/kudzupod = 3, - ) - result = /obj/item/reagent_containers/food/snacks/sushie_basic - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/sushie_adv - name = "Funa Nigiri" - reqs = list( - /datum/reagent/consumable/soysauce = 5, - /obj/item/reagent_containers/food/snacks/salad/ricebowl = 1, - /obj/item/reagent_containers/food/snacks/carpmeat = 1 - ) - result = /obj/item/reagent_containers/food/snacks/sushie_adv - subcategory = CAT_MEAT - -/datum/crafting_recipe/food/sushie_pro - name = "Well made Funa Nigiri" - reqs = list( - /datum/reagent/consumable/soysauce = 10, - /obj/item/reagent_containers/food/snacks/salad/ricebowl = 2, - /obj/item/reagent_containers/food/snacks/carpmeat = 5 - ) - result = /obj/item/reagent_containers/food/snacks/sushie_pro - subcategory = CAT_MEAT - ////////////////////////////////////////////////MR SPIDER//////////////////////////////////////////////// /datum/crafting_recipe/food/spidereggsham From ee007ecae041800944c4bdd305bf6ad140895097 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 18:26:19 -0400 Subject: [PATCH 160/180] Update snacks_sushi.dm --- .../recipes/tablecraft/snacks_sushi.dm | 165 +++++++++--------- 1 file changed, 82 insertions(+), 83 deletions(-) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm b/code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm index a4cbc5e344..99d48cf69d 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm @@ -1,95 +1,94 @@ //////////////////////////Sushi Components/////////////////////// -/obj/item/reagent_containers/food/snacks/sushi_rice +/datum/crafting_recipe/food/sushi_rice name = "Sushi Rice" - desc = "A bowl of sticky rice for making sushi." - icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "sushi_rice" - list_reagents = list("sodiumchloride" = 5) - tastes = list("rice" = 5, "salt" = 1) - foodtype = GRAIN + reqs = list( + /datum/reagent/water = 40, + /datum/reagent/consumable/rice = 10 + ) + result = /obj/item/reagent_containers/food/snacks/sushi_rice + subcategory = CAT_SUSHI -/obj/item/reagent_containers/food/snacks/sea_weed +/datum/crafting_recipe/food/sea_weed name = "Sea Weed Sheet" - desc = "A thin, light salt sheet of plant mater. This is commenly used in sushi recipes," - icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "sea_weed" - list_reagents = list("sodiumchloride" = 2) - tastes = list("plants" = 2, "salt" = 1) - foodtype = VEGETABLES + reqs = list( + /datum/reagent/water = 30, + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/grown/kudzupod = 1, + ) + result = /obj/item/reagent_containers/food/snacks/sea_weed + subcategory = CAT_SUSHI -/obj/item/reagent_containers/food/snacks/tuna - name = "Canned Tuna" - desc = "A small can of tuna fish beloved by felines." - icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "tuna_can" -//trash = /obj/item/trash/tuna_used //I dont know if I like this idea - A Masked Cat - list_reagents = list("sodiumchloride" = 5, "mercury" = 2) - tastes = list("tuna" = 15, "mercury" = 1, "salt" = 3) - foodtype = MEAT +/datum/crafting_recipe/food/tuna_can + name = "Can of Tuna" + reqs = list( + /datum/reagent/consumable/sodiumchloride = 15, + /datum/reagent/consumable/cooking_oil = 5, + /obj/item/reagent_containers/food/snacks/carpmeat = 1, + ) + result = /obj/item/reagent_containers/food/snacks/tuna + subcategory = CAT_SUSHI //////////////////////////Sushi///////////////////////////////// -/obj/item/reagent_containers/food/snacks/sushie_basic - name = "Funa Hosomaki" - desc = "A small cylindrical filled with rice and fish." - icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "sushie_basic" - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 1) - bitesize = 1 - filling_color = "#F2EEEA" //rgb(242, 238, 234) - tastes = list("fish" = 1, "rice" = 1, "salt" = 1) - foodtype = MEAT | VEGETABLES -/obj/item/reagent_containers/food/snacks/sushie_adv - name = "Funa Nigiri" - desc = "A pice of carp lightly placed on some rice." - icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "sushie_adv" - bonus_reagents = list("vitamin" = 2) - list_reagents = list("nutriment" = 2) - bitesize = 1 - filling_color = "#F2EEEA" //rgb(242, 238, 234) - tastes = list("fish" = 1, "rice" = 1, "salt" = 1) - foodtype = MEAT | VEGETABLES +/datum/crafting_recipe/food/sashimi + name = "Sashimi" + reqs = list( + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/spidereggs = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/sashimi + subcategory = CAT_SUSHI -/obj/item/reagent_containers/food/snacks/sushie_pro - name = "Funa Nigiri" - desc = "A well prepared pice of the best of the carp fillet placed on rice. Looks fancy and fresh!" - icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "sushie_pro" - bonus_reagents = list("nutriment" = 1, "vitamin" = 2) - list_reagents = list("nutriment" = 8, "vitamin" = 1) - bitesize = 1 - filling_color = "#F2EEEA" //rgb(242, 238, 234) - tastes = list("fish" = 1, "rice" = 1, "salt" = 1) - foodtype = MEAT | VEGETABLES - -/obj/item/reagent_containers/food/snacks/tobiko - name = "Tobiko" - desc = "Spider eggs wrapped in a thin salted Kudzu pod" - icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "sushie_egg" - list_reagents = list("nutriment" = 3, "vitamin" = 2) - filling_color = "#FF3333" // R225 G051 B051 - tastes = list("seaweed" = 1, "salty" = 2) - foodtype = MEAT | VEGETABLES - -/obj/item/reagent_containers/food/snacks/riceball +/datum/crafting_recipe/food/riceball name = "Onigiri" - desc = "A ball of rice with some light salt and a wrap of Kudzu skin." - icon = 'modular_citadel/icons/obj/food/food.dmi' - icon_state = "riceball" - list_reagents = list("nutriment" = 5, "sodiumchloride" = 2) - tastes = list("rice" = 4, "salt" = 1) - foodtype = GRAIN + reqs = list( + /datum/reagent/consumable/soysauce = 1, + /obj/item/reagent_containers/food/snacks/sea_weed = 1, + /obj/item/reagent_containers/food/snacks/sushi_rice = 1 + ) + result = /obj/item/reagent_containers/food/snacks/riceball + subcategory = CAT_SUSHI -/obj/item/reagent_containers/food/snacks/sashimi - name = "carp sashimi" - desc = "Celebrate surviving attack from hostile alien lifeforms by hospitalising yourself." - icon_state = "sashimi" - bonus_reagents = list("nutriment" = 1, "capsaicin" = 4, "vitamin" = 4) - list_reagents = list("nutriment" = 6, "capsaicin" = 5) - filling_color = "#FA8072" - tastes = list("fish" = 1, "hot peppers" = 1) - foodtype = MEAT | TOXIC \ No newline at end of file +/datum/crafting_recipe/food/sushie_egg + name = "Tobiko" + reqs = list( + /datum/reagent/consumable/soysauce = 6, + /obj/item/reagent_containers/food/snacks/spidereggs = 1, + /obj/item/reagent_containers/food/snacks/sea_weed = 2, + ) + result = /obj/item/reagent_containers/food/snacks/tobiko + subcategory = CAT_SUSHI + +/datum/crafting_recipe/food/sushie_basic + name = "Funa Hosomaki" + reqs = list( + /datum/reagent/consumable/soysauce = 3, + /obj/item/reagent_containers/food/snacks/sushi_rice = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 2, + /obj/item/reagent_containers/food/snacks/sea_weed = 3, + ) + result = /obj/item/reagent_containers/food/snacks/sushie_basic + subcategory = CAT_SUSHI + +/datum/crafting_recipe/food/sushie_adv + name = "Funa Nigiri" + reqs = list( + /datum/reagent/consumable/soysauce = 5, + /obj/item/reagent_containers/food/snacks/sushi_rice = 1, + /obj/item/reagent_containers/food/snacks/carpmeat = 1 + ) + result = /obj/item/reagent_containers/food/snacks/sushie_adv + subcategory = CAT_SUSHI + +/datum/crafting_recipe/food/sushie_pro + name = "Well made Funa Nigiri" + reqs = list( + /datum/reagent/consumable/soysauce = 10, + /obj/item/reagent_containers/food/snacks/sushi_rice = 2, + /obj/item/reagent_containers/food/snacks/carpmeat = 5, + /obj/item/reagent_containers/food/snacks/sea_weed = 1 + ) + result = /obj/item/reagent_containers/food/snacks/sushie_pro + subcategory = CAT_SUSHI From 0d868bc660f13c7dcbc7d828da40478d7b914171 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 29 Apr 2019 18:52:04 -0400 Subject: [PATCH 161/180] Rename snacks_sushi.dm to recipes_sushi.dm --- .../recipes/tablecraft/{snacks_sushi.dm => recipes_sushi.dm} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename code/modules/food_and_drinks/recipes/tablecraft/{snacks_sushi.dm => recipes_sushi.dm} (100%) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm similarity index 100% rename from code/modules/food_and_drinks/recipes/tablecraft/snacks_sushi.dm rename to code/modules/food_and_drinks/recipes/tablecraft/recipes_sushi.dm From e77188d461b99b2b5eed0eadc6583dc2b6b053e9 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:14:13 -0500 Subject: [PATCH 162/180] Automatic changelog generation for PR #8302 [ci skip] --- html/changelogs/AutoChangeLog-pr-8302.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8302.yml diff --git a/html/changelogs/AutoChangeLog-pr-8302.yml b/html/changelogs/AutoChangeLog-pr-8302.yml new file mode 100644 index 0000000000..e2b535c40f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8302.yml @@ -0,0 +1,5 @@ +author: "BurgerBB" +delete-after: True +changes: + - tweak: "Tweaked penis." + - balance: "Rebalanced penis." From 8cf8d87658d9a0456d302b445b0ae2f7d6b4dd3c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:18:17 -0500 Subject: [PATCH 163/180] Automatic changelog generation for PR #8287 [ci skip] --- html/changelogs/AutoChangeLog-pr-8287.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8287.yml diff --git a/html/changelogs/AutoChangeLog-pr-8287.yml b/html/changelogs/AutoChangeLog-pr-8287.yml new file mode 100644 index 0000000000..aafba03474 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8287.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "new lockable colalr" From 5802c75389b7f71fb9051212edc253382415c291 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:18:55 -0500 Subject: [PATCH 164/180] Automatic changelog generation for PR #8289 [ci skip] --- html/changelogs/AutoChangeLog-pr-8289.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8289.yml diff --git a/html/changelogs/AutoChangeLog-pr-8289.yml b/html/changelogs/AutoChangeLog-pr-8289.yml new file mode 100644 index 0000000000..d389d95cd6 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8289.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "armor" From 202d901c2584e3d918aa6ebeb415dce67702e90c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:24:19 -0500 Subject: [PATCH 165/180] Automatic changelog generation for PR #8301 [ci skip] --- html/changelogs/AutoChangeLog-pr-8301.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8301.yml diff --git a/html/changelogs/AutoChangeLog-pr-8301.yml b/html/changelogs/AutoChangeLog-pr-8301.yml new file mode 100644 index 0000000000..90e893bdf2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8301.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "mag gun uses cells" + - balance: "kev things their to op" From 2661b08d287fb18914e24e8a2ab703322dccffcd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:28:58 -0500 Subject: [PATCH 166/180] Automatic changelog generation for PR #8283 [ci skip] --- html/changelogs/AutoChangeLog-pr-8283.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8283.yml diff --git a/html/changelogs/AutoChangeLog-pr-8283.yml b/html/changelogs/AutoChangeLog-pr-8283.yml new file mode 100644 index 0000000000..7a614e2e82 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8283.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - rscadd: "Adds a new 0 cost trait that makes you immune* to Crocin and Hexacrocin" From 1d69ac167200bcfb68c15424c48fa07aed1eff4e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:30:03 -0500 Subject: [PATCH 167/180] Automatic changelog generation for PR #8294 [ci skip] --- html/changelogs/AutoChangeLog-pr-8294.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8294.yml diff --git a/html/changelogs/AutoChangeLog-pr-8294.yml b/html/changelogs/AutoChangeLog-pr-8294.yml new file mode 100644 index 0000000000..bce0031c2b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8294.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - imageadd: "This means sprite right?" From 52cff725c455907132187b32dbb128020fb53943 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:31:36 -0500 Subject: [PATCH 168/180] Automatic changelog generation for PR #8290 [ci skip] --- html/changelogs/AutoChangeLog-pr-8290.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8290.yml diff --git a/html/changelogs/AutoChangeLog-pr-8290.yml b/html/changelogs/AutoChangeLog-pr-8290.yml new file mode 100644 index 0000000000..553bfbf4f9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8290.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "missing hopes and dreams" + - code_imp: "orgized the weapon file to be more cat brain friendly" From ea9e2a7d149000a557cdf3bc3cd7bffbdd75df1a Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:32:23 -0500 Subject: [PATCH 169/180] Automatic changelog generation for PR #8286 [ci skip] --- html/changelogs/AutoChangeLog-pr-8286.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8286.yml diff --git a/html/changelogs/AutoChangeLog-pr-8286.yml b/html/changelogs/AutoChangeLog-pr-8286.yml new file mode 100644 index 0000000000..d59a8dad66 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8286.yml @@ -0,0 +1,5 @@ +author: "BurgerBB" +delete-after: True +changes: + - tweak: "Tweaks how slurring works so it's more of a gradual change into slurring instead of immediate." + - balance: "Slurring is now directly proportional to your drunkenness, with other sources of slur being added on top of it." From 3b0ea2e293b58da98c269f353f6489b68d018286 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:37:05 -0500 Subject: [PATCH 170/180] Automatic changelog generation for PR #8288 [ci skip] --- html/changelogs/AutoChangeLog-pr-8288.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8288.yml diff --git a/html/changelogs/AutoChangeLog-pr-8288.yml b/html/changelogs/AutoChangeLog-pr-8288.yml new file mode 100644 index 0000000000..6b3fbadbd8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8288.yml @@ -0,0 +1,7 @@ +author: "BurgerBB" +delete-after: True +changes: + - tweak: "Bras are now separate from underwear, meaning you can mix and match bras if you're into that." + - tweak: "Men can wear female accessory clothing, and females can wear men accessory clothing. It's not a fetish, mom, it's PROGRESSIVE." + - code_imp: "Reorganized accessories into their own files to prevent a massive 1000 line file." + - server: "i'm 10% sure that merging this PR will cause preference corruption sooooooooooo I just need to hear from @deathride58 or perhaps someone else on how much damage this could possibly do." From 6168d615ac16b3dd82e795a89abcc21a332d0530 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 30 Apr 2019 07:38:44 -0500 Subject: [PATCH 171/180] Automatic changelog generation for PR #8274 [ci skip] --- html/changelogs/AutoChangeLog-pr-8274.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8274.yml diff --git a/html/changelogs/AutoChangeLog-pr-8274.yml b/html/changelogs/AutoChangeLog-pr-8274.yml new file mode 100644 index 0000000000..41b2de1d9e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8274.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - tweak: "Increased the spawn area of the City of Cogs (Reebe). This does not affect the area in which builders can build." From faeb4bc22d2ac54c3c1cb79335d3eff3ac74fe3b Mon Sep 17 00:00:00 2001 From: Poojawa Date: Wed, 1 May 2019 00:58:19 -0500 Subject: [PATCH 172/180] Mawp Mawp --- code/modules/mob/living/carbon/human/emote.dm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 950ac5fb8b..d1d5fb7cd4 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -39,6 +39,19 @@ restraint_check = TRUE emote_type = EMOTE_AUDIBLE +/datum/emote/living/carbon/human/mawp + key = "mawp" + key_third_person = "mawps" + message = "mawps annoyingly." + emote_type = EMOTE_AUDIBLE + +/datum/emote/living/carbon/human/mawp/run_emote(mob/living/user, params) + . = ..() + if(.) + if(ishuman(user)) + if(prob(10)) + user.adjustEarDamage(-5, -5) + /datum/emote/living/carbon/human/mumble key = "mumble" key_third_person = "mumbles" From fd251d3dd2ce7b39193f276d8eaacd0bfcfb6ed0 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 1 May 2019 15:15:29 -0400 Subject: [PATCH 173/180] Update laser.dm --- code/modules/projectiles/guns/energy/laser.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 4e97d0a9b3..a5e2cb6651 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -42,6 +42,7 @@ /obj/item/gun/energy/laser/carbine name = "laser carbine" desc = "A ruggedized laser carbine featuring much higher capacity and improved handling when compared to a normal laser gun." + icon = 'icons/obj/guns/energy.dmi' icon_state = "lasernew" item_state = "laser" force = 10 From 150db880def14cbf647e165813ae6227ff6808e0 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 1 May 2019 16:07:11 -0400 Subject: [PATCH 174/180] Update laser.dm --- code/modules/projectiles/guns/energy/laser.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index a5e2cb6651..cd0dd53d48 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -51,6 +51,9 @@ cell_type = /obj/item/stock_parts/cell/lascarbine resistance_flags = FIRE_PROOF | ACID_PROOF +/obj/item/gun/energy/laser/carbine/nopin + pin = null + /obj/item/gun/energy/laser/captain/scattershot name = "scatter shot laser rifle" icon_state = "lasercannon" From 831e450b3f09097a9b409976ebd35bc1001d8023 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 1 May 2019 16:08:17 -0400 Subject: [PATCH 175/180] Update weapon_designs.dm --- code/modules/research/designs/weapon_designs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 4e31fe50a9..03c0582245 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -145,7 +145,7 @@ id = "lasercarbine" build_type = PROTOLATHE materials = list(MAT_METAL = 15000, MAT_GLASS = 10000, MAT_GOLD = 2500, MAT_SILVER = 2500) - build_path = /obj/item/gun/energy/laser/carbine + build_path = /obj/item/gun/energy/laser/carbine/nopin category = list("Weapons") departmental_flags = DEPARTMENTAL_FLAG_SECURITY From 7dd5e563b0d6e1065a532b4b7ed38b5b3aaff15a Mon Sep 17 00:00:00 2001 From: deathride58 Date: Thu, 2 May 2019 00:21:38 -0400 Subject: [PATCH 176/180] Clamps biogen amount to a sane amount --- code/modules/hydroponics/biogenerator.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index e1eb976966..eaffeaf016 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -304,6 +304,8 @@ else if(href_list["create"]) var/amount = (text2num(href_list["amount"])) + //Can't be outside these (if you change this keep a sane limit) + amount = CLAMP(amount, 1, 50) var/datum/design/D = locate(href_list["create"]) create_product(D, amount) updateUsrDialog() From 1557c3300851ac81657fef335de6fd1b425c58d9 Mon Sep 17 00:00:00 2001 From: BurgerLua Date: Thu, 2 May 2019 14:55:04 -0700 Subject: [PATCH 177/180] Adds Penis Enlargement Pills --- code/__DEFINES/DNA.dm | 1 + code/_globalvars/lists/maintenance_loot.dm | 1 + code/game/objects/items/storage/firstaid.dm | 10 +++++++++- .../chemistry/reagents/other_reagents.dm | 17 +++++++++++++++++ .../modules/reagents/reagent_containers/pill.dm | 4 ++++ .../code/modules/arousal/organs/penis.dm | 2 +- 6 files changed, 33 insertions(+), 2 deletions(-) diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index aea7d42be6..4ed099d9e2 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -121,3 +121,4 @@ #define ORGAN_SLOT_BRAIN_ANTIDROP "brain_antidrop" #define ORGAN_SLOT_BRAIN_ANTISTUN "brain_antistun" #define ORGAN_SLOT_TAIL "tail" +#define ORGAN_SLOT_PENIS "penis" diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index d0506c7dcb..36049de77b 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -108,5 +108,6 @@ GLOBAL_LIST_INIT(maintenance_loot, list( /obj/item/toy/eightball = 1, /obj/item/reagent_containers/pill/floorpill = 1, /obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint + /obj/item/storage/pill_bottle/penis_enlargement = 2, "" = 3 )) diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 079feec17a..1a666ce921 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -122,7 +122,7 @@ new /obj/item/reagent_containers/pill/antirad(src) new /obj/item/reagent_containers/food/drinks/bottle/vodka(src) new /obj/item/healthanalyzer(src) - + /obj/item/storage/firstaid/o2 name = "oxygen deprivation treatment kit" @@ -312,3 +312,11 @@ /obj/item/storage/pill_bottle/mutarad/PopulateContents() for(var/i in 1 to 7) new /obj/item/reagent_containers/pill/mutarad(src) + +/obj/item/storage/pill_bottle/penis_enlargement + name = "penis enlargement pills" + desc = "You want penis enlargement pills?" + +/obj/item/storage/pill_bottle/penis_enlargement/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/reagent_containers/pill/penis_enlargement(src) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 15a2ef1cba..5d1593d1e7 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1863,3 +1863,20 @@ description = "The primary precursor for an ancient feline delicacy known as skooma. While it has no notable effects on it's own, mixing it with morphine in a chilled container may yield interesting results." color = "#FAEAFF" taste_description = "synthetic catnip" + +/datum/reagent/penis_enlargement + name = "Penis Enlargement" + id = "penis_enlargement" + description = "A patented chemical forumula by Doctor Ronald Hyatt that is guaranteed to bring maximum GROWTH and LENGTH to your penis, today!" + color = "#888888" + taste_description = "chinese dragon powder" + metabolization_rate = INFINITY //So it instantly removes all of itself. Don't want to put strain on the system. + +/datum/reagent/penis_enlargement/on_mob_life(mob/living/carbon/C) + var/obj/item/organ/genital/penis/P = C.getorganslot(ORGAN_SLOT_PENIS) + if(P) + var/added_length = round(volume/30,0.01) //Every 30u gives an extra inch. Rounded to the nearest 0.01 so float fuckery doesn't occur with the division by 30. + if(added_length >= 0.20) //Only add the length if it's greater than or equal to 0.2. This is to prevent people from smoking the reagents and causing the penis to update constantly. + P.length += added_length + P.update() + ..() \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 38d47d5185..ed2ca66aae 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -233,3 +233,7 @@ /obj/item/reagent_containers/pill/get_belt_overlay() return mutable_appearance('icons/obj/clothing/belt_overlays.dmi', "pouch") + +/obj/item/reagent_containers/pill/penis_enlargement + name = "penis enlargement pill" + list_reagents = list("penis_enlargement" = 30) diff --git a/modular_citadel/code/modules/arousal/organs/penis.dm b/modular_citadel/code/modules/arousal/organs/penis.dm index 18c4d44f13..f6b9f1d999 100644 --- a/modular_citadel/code/modules/arousal/organs/penis.dm +++ b/modular_citadel/code/modules/arousal/organs/penis.dm @@ -4,7 +4,7 @@ icon_state = "penis" icon = 'modular_citadel/icons/obj/genitals/penis.dmi' zone = "groin" - slot = "penis" + slot = ORGAN_SLOT_PENIS w_class = 3 can_masturbate_with = TRUE masturbation_verb = "stroke" From 9cc8ed4bba3d9bb120087a9175edcc9cc4008e93 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 5 May 2019 01:17:20 -0500 Subject: [PATCH 178/180] Automatic changelog generation for PR #8319 [ci skip] --- html/changelogs/AutoChangeLog-pr-8319.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8319.yml diff --git a/html/changelogs/AutoChangeLog-pr-8319.yml b/html/changelogs/AutoChangeLog-pr-8319.yml new file mode 100644 index 0000000000..e46b83c121 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8319.yml @@ -0,0 +1,4 @@ +author: "BurgerBB" +delete-after: True +changes: + - rscadd: "Adds penis enlargement pills." From 1480d534073049f554ea6fc2f2ff9a39b6ee455f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 5 May 2019 01:17:53 -0500 Subject: [PATCH 179/180] Automatic changelog generation for PR #8315 [ci skip] --- html/changelogs/AutoChangeLog-pr-8315.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8315.yml diff --git a/html/changelogs/AutoChangeLog-pr-8315.yml b/html/changelogs/AutoChangeLog-pr-8315.yml new file mode 100644 index 0000000000..5d0b85e162 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8315.yml @@ -0,0 +1,4 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - bugfix: "laser carbine" From c039043d0f6804675f4aa033a829afe70b5be849 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sun, 5 May 2019 01:18:38 -0500 Subject: [PATCH 180/180] Automatic changelog generation for PR #8317 [ci skip] --- html/changelogs/AutoChangeLog-pr-8317.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-8317.yml diff --git a/html/changelogs/AutoChangeLog-pr-8317.yml b/html/changelogs/AutoChangeLog-pr-8317.yml new file mode 100644 index 0000000000..0fd31c3c52 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-8317.yml @@ -0,0 +1,4 @@ +author: "deathride58" +delete-after: True +changes: + - tweak: "Biogenerators now have a sane limit for production"