From e5236eebb187db0dba4e82694c9d8f0c528bd9b0 Mon Sep 17 00:00:00 2001 From: TrilbySpaceClone Date: Sat, 8 Feb 2020 17:39:00 -0500 Subject: [PATCH 01/40] hey lets do corrections --- .../game/objects/items/stacks/sheets/glass.dm | 3 +++ .../objects/items/stacks/sheets/mineral.dm | 3 +++ .../crates_lockers/crates/secure.dm | 5 +++++ code/modules/cargo/exports/materials.dm | 5 ----- code/modules/cargo/exports/sheets.dm | 10 ++++++++++ code/modules/cargo/packs/armory.dm | 8 ++++---- code/modules/cargo/packs/emergency.dm | 2 +- code/modules/cargo/packs/materials.dm | 16 ++++++++++++++++ code/modules/cargo/packs/medical.dm | 3 ++- code/modules/cargo/packs/organic.dm | 11 ++++++----- code/modules/cargo/packs/security.dm | 2 +- icons/obj/crates.dmi | Bin 22382 -> 22621 bytes 12 files changed, 51 insertions(+), 17 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 21de34faa1..72904a80ed 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -254,6 +254,9 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( merge_type = /obj/item/stack/sheet/plastitaniumglass shard_type = /obj/item/shard +/obj/item/stack/sheet/plastitaniumglass/fifty + amount = 50 + /obj/item/stack/sheet/plastitaniumglass/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.plastitaniumglass_recipes return ..() diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 53b78b2ecf..8541b539c9 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -323,6 +323,9 @@ GLOBAL_LIST_INIT(titanium_recipes, list ( \ point_value = 45 merge_type = /obj/item/stack/sheet/mineral/plastitanium +/obj/item/stack/sheet/mineral/plastitanium/fifty + amount = 50 + GLOBAL_LIST_INIT(plastitanium_recipes, list ( \ new/datum/stack_recipe("plastitanium tile", /obj/item/stack/tile/mineral/plastitanium, 1, 4, 20), \ )) diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm index 290e69370b..602adfb367 100644 --- a/code/game/objects/structures/crates_lockers/crates/secure.dm +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -70,3 +70,8 @@ name = "secure science crate" desc = "A crate with a lock on it, painted in the scheme of the station's scientists." icon_state = "scisecurecrate" + +/obj/structure/closet/crate/secure/medical + desc = "A secure medical crate." + name = "medical crate" + icon_state = "medical_secure_crate" \ No newline at end of file diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index d8fc5f22ab..1b38a809cf 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -65,11 +65,6 @@ material_id = MAT_TITANIUM message = "cm3 of titanium" -/datum/export/material/plastitanium - cost = 165 // plasma + titanium costs - material_id = MAT_TITANIUM // code can only check for one material_id; plastitanium is half plasma, half titanium - message = "cm3 of plastitanium" - /datum/export/material/plastic cost = 5 material_id = MAT_PLASTIC diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm index f784083097..df1704d660 100644 --- a/code/modules/cargo/exports/sheets.dm +++ b/code/modules/cargo/exports/sheets.dm @@ -67,6 +67,16 @@ message = "of plasteel" export_types = list(/obj/item/stack/sheet/plasteel) +/datum/export/material/plastitanium + cost = 165 // plasma + titanium costs + export_types = list(/obj/item/stack/sheet/mineral/plastitanium) + message = "of plastitanium" + +/datum/export/material/plastitanium_glass + cost = 168 // plasma + titanium + glass costs + export_types = list(/obj/item/stack/sheet/plastitaniumglass) + message = "of plastitanium glass" + // 1 glass + 0.5 metal, cost is rounded up. /datum/export/stack/rglass cost = 6 diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index ea8ef8ba0f..4c500a0162 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -178,7 +178,7 @@ /datum/supply_pack/security/armory/russian name = "Russian Surplus Crate" desc = "Hello Comrade, we have the most modern russian military equipment the black market can offer, for the right price of course. Sadly we couldnt remove the lock so it requires Armory access to open." - cost = 5000 + cost = 7500 contraband = TRUE contains = list(/obj/item/reagent_containers/food/snacks/rationpack, /obj/item/ammo_box/a762, @@ -193,11 +193,11 @@ /obj/item/clothing/head/helmet/rus_ushanka, /obj/item/clothing/suit/armor/vest/russian_coat, /obj/item/gun/ballistic/shotgun/boltaction, - /obj/item/gun/ballistic/shotgun/boltaction) + /obj/item/staff/broom) //Its... A real thing that was done in the Russian army crate_name = "surplus military crate" /datum/supply_pack/security/armory/russian/fill(obj/structure/closet/crate/C) - for(var/i in 1 to 10) + for(var/i in 1 to 5) var/item = pick(contains) new item(C) @@ -218,7 +218,7 @@ crate_name = "swat crate" /datum/supply_pack/security/armory/swattasers //Lesser AEG tbh - name = "SWAT tatical tasers Crate" + name = "SWAT tactical tasers Crate" desc = "Contains two tactical energy gun, these guns are able to tase, disable and lethal as well as hold a seclight. Requires Armory access to open." cost = 7000 contains = list(/obj/item/gun/energy/e_gun/stun, diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index e32811f2d0..e5036c34a5 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -130,7 +130,7 @@ /datum/supply_pack/emergency/bomb name = "Explosive Emergency Crate" - desc = "Science gone bonkers? Beeping behind the airlock? Buy now and be the hero the station des... I mean needs! (Time not included.)" + desc = "Science gone bonkers? Beeping behind the airlock? Buy now and be the hero the station kills-... I mean needs! Time not included, but what is a full bomb suit and hood, gas mask with the tools you need to defuse a none-nuclear bomb." cost = 1500 contains = list(/obj/item/clothing/head/bomb_hood, /obj/item/clothing/suit/bomb_suit, diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm index 6c1742896f..ea7df06bda 100644 --- a/code/modules/cargo/packs/materials.dm +++ b/code/modules/cargo/packs/materials.dm @@ -48,6 +48,22 @@ contains = list(/obj/item/stack/sheet/plasteel/fifty) crate_name = "plasteel sheets crate" +/datum/supply_pack/materials/plastitanium50 + name = "50 Plastitanium Sheets" + desc = "Build an evil empire with fifty plastitanium sheets." + cost = 9250 + contraband = TRUE + contains = list(/obj/item/stack/sheet/mineral/plastitanium/fifty) + crate_name = "plastitanium sheets crate" + +/datum/supply_pack/materials/plastitanium_glass50 + name = "50 Plastitanium Glass Sheets" + desc = "Look out from your evil empire with fifty plastitanium glass sheets." + cost = 9500 + contraband = TRUE + contains = list(/obj/item/stack/sheet/plastitaniumglass/fifty) + crate_name = "plastitanium glass sheets crate" + /datum/supply_pack/materials/plastic50 name = "50 Plastic Sheets" desc = "Build a limitless amount of toys with fifty plastic sheets!" diff --git a/code/modules/cargo/packs/medical.dm b/code/modules/cargo/packs/medical.dm index ea327ae820..5d02bbe60f 100644 --- a/code/modules/cargo/packs/medical.dm +++ b/code/modules/cargo/packs/medical.dm @@ -88,6 +88,7 @@ /obj/item/clothing/mask/gas, /obj/item/clothing/suit/space/hardsuit/medical) crate_name = "medical hardsuit" + crate_type = /obj/structure/closet/crate/secure/medical /datum/supply_pack/medical/supplies name = "Medical Supplies Crate" @@ -125,7 +126,7 @@ /obj/item/reagent_containers/medspray/synthflesh, /obj/item/reagent_containers/medspray/sterilizine) crate_name = "medco surgery tools" - crate_type = /obj/structure/closet/crate/medical + crate_type = /obj/structure/closet/crate/secure/medical /datum/supply_pack/medical/surgery name = "Surgical Supplies Crate" diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 4aa991fc3f..7d28ceefef 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -193,6 +193,7 @@ /obj/item/reagent_containers/food/snacks/meat/slab/bear, /obj/item/reagent_containers/food/snacks/meat/slab/xeno, /obj/item/reagent_containers/food/snacks/meat/slab/spider, + /obj/item/reagent_containers/food/snacks/meat/rawcrab, /obj/item/reagent_containers/food/snacks/meat/rawbacon, /obj/item/reagent_containers/food/snacks/spiderleg, /obj/item/reagent_containers/food/snacks/carpmeat, @@ -213,7 +214,7 @@ /datum/supply_pack/organic/fakemeat name = "Meat Crate 'Synthetic'" - desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 12 slabs of meat product, and 4 slabs of *carp*." + desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 9 slabs of meat product, 3 carb meat and 4 slabs of *carp*." cost = 1200 // Buying 3 food crates nets you 9 meat for 900 points, plus like, 6 bags of rice, flour, and egg boxes. This is 12 for 500, but you -only- get meat and carp. contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, @@ -224,9 +225,9 @@ /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, - /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, - /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, - /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, + /obj/item/reagent_containers/food/snacks/meat/rawcrab, + /obj/item/reagent_containers/food/snacks/meat/rawcrab, + /obj/item/reagent_containers/food/snacks/meat/rawcrab, /obj/item/reagent_containers/food/snacks/carpmeat/imitation, /obj/item/reagent_containers/food/snacks/carpmeat/imitation, /obj/item/reagent_containers/food/snacks/carpmeat/imitation, @@ -327,7 +328,7 @@ /datum/supply_pack/organic/seeds name = "Seeds Crate" - desc = "Big things have small beginnings. Contains thirteen different seeds." + desc = "Big things have small beginnings. Contains fourteen different seeds." cost = 1250 contains = list(/obj/item/seeds/chili, /obj/item/seeds/berry, diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index fd7e07a66c..90bc837767 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -103,7 +103,7 @@ desc = "An old russian Minutemen crate, comes with a full russian outfit, a mosin and a stripper clip." contraband = TRUE access = FALSE - cost = 5500 // + cost = 6500 // contains = list(/obj/item/clothing/suit/armor/navyblue/russian, /obj/item/clothing/shoes/combat, /obj/item/clothing/head/ushanka, diff --git a/icons/obj/crates.dmi b/icons/obj/crates.dmi index ca81686e942e0c2973dacff3450a0d3214d4df33..ecb66d0119b504f18f5309f07896199483565a1d 100644 GIT binary patch literal 22621 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 R0o!1ZHdJ4uLftmv{{YB;Je>dl literal 22382 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 Gul@s1egnP$ From 1e2562ed0206c567273bfc86eccdd31d4abcfb57 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 8 Feb 2020 18:59:00 -0500 Subject: [PATCH 02/40] Update organic.dm --- code/modules/cargo/packs/organic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 7d28ceefef..79853e1aaf 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -214,7 +214,7 @@ /datum/supply_pack/organic/fakemeat name = "Meat Crate 'Synthetic'" - desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 9 slabs of meat product, 3 carb meat and 4 slabs of *carp*." + desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 9 slabs of meat product, 3 crab meat and 4 slabs of *carp*." cost = 1200 // Buying 3 food crates nets you 9 meat for 900 points, plus like, 6 bags of rice, flour, and egg boxes. This is 12 for 500, but you -only- get meat and carp. contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, From d49a53e19388920e915784eb9ceeca8f9739daca Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sat, 8 Feb 2020 22:17:58 -0500 Subject: [PATCH 03/40] Update costumes_toys.dm --- code/modules/cargo/packs/costumes_toys.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index 4a64979502..c559e7925a 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -63,6 +63,7 @@ /obj/item/toy/cards/deck/syndicate, /obj/item/reagent_containers/food/drinks/bottle/absinthe, /obj/item/clothing/under/syndicate/tacticool, + /obj/item/clothing/under/syndicate/skirt, /obj/item/clothing/under/syndicate, /obj/item/suppressor, /obj/item/storage/fancy/cigarettes/cigpack_syndicate, From 4b880276d891c604e3bfbbd0d8fe7c99ce28c171 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Wed, 12 Feb 2020 14:41:38 -0500 Subject: [PATCH 04/40] Update emergency.dm --- code/modules/cargo/packs/emergency.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index e5036c34a5..b06561a1c2 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -130,7 +130,7 @@ /datum/supply_pack/emergency/bomb name = "Explosive Emergency Crate" - desc = "Science gone bonkers? Beeping behind the airlock? Buy now and be the hero the station kills-... I mean needs! Time not included, but what is a full bomb suit and hood, gas mask with the tools you need to defuse a none-nuclear bomb." + desc = "Science gone bonkers? Beeping behind the airlock? Buy now and become the hero the station ki-... I mean needs! Time not included, but a full bomb suit and hood, as well as a mask and defusal kit are! Non-Nuclear ordinance only." cost = 1500 contains = list(/obj/item/clothing/head/bomb_hood, /obj/item/clothing/suit/bomb_suit, From 1276453dc4a4dccee4cbb979da5dc205555ccb54 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Thu, 13 Feb 2020 21:01:28 -0600 Subject: [PATCH 05/40] initial commit - preservahyde --- code/modules/mob/living/carbon/life.dm | 6 +++--- .../reagents/chemistry/reagents/medicine_reagents.dm | 5 ++--- code/modules/reagents/chemistry/reagents/other_reagents.dm | 7 +++++++ code/modules/reagents/reagent_containers/hypospray.dm | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 534509523a..15b50fbeed 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -357,8 +357,8 @@ if(istype(loc, /obj/structure/closet/crate/coffin)|| istype(loc, /obj/structure/closet/body_bag) || istype(loc, /obj/structure/bodycontainer)) return - // No decay if formaldehyde in corpse or when the corpse is charred - if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1) || HAS_TRAIT(src, TRAIT_HUSK)) + // No decay if formaldehyde/preservahyde in corpse or when the corpse is charred + if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1) || HAS_TRAIT(src, TRAIT_HUSK) || reagents.has_reagent(/datum/reagent/preservahyde, 1)) return // Also no decay if corpse chilled or not organic/undead @@ -397,7 +397,7 @@ if(O) O.on_life() else - if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1)) // No organ decay if the body contains formaldehyde. + if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1) || reagents.has_reagent(/datum/reagent/preservahyde, 1)) // No organ decay if the body contains formaldehyde. Or preservahyde. return for(var/V in internal_organs) var/obj/item/organ/O = V diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm index 6d37f30884..0a040a4f17 100644 --- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm @@ -1482,14 +1482,14 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) /datum/reagent/medicine/polypyr //This is intended to be an ingredient in advanced chems. name = "Polypyrylium Oligomers" - description = "A�purple mixture of short polyelectrolyte chains not easily synthesized in the laboratory. It is valued as an intermediate in the synthesis of the cutting edge pharmaceuticals." + description = "A purple mixture of short polyelectrolyte chains not easily synthesized in the laboratory. It is valued as an intermediate in the synthesis of the cutting edge pharmaceuticals." reagent_state = SOLID color = "#9423FF" metabolization_rate = 0.25 * REAGENTS_METABOLISM overdose_threshold = 50 taste_description = "numbing bitterness" -/datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/M) //I w�nted a collection of small positive effects, this is as hard to obtain as coniine after all. +/datum/reagent/medicine/polypyr/on_mob_life(mob/living/carbon/M) //I wanted a collection of small positive effects, this is as hard to obtain as coniine after all. M.adjustOrganLoss(ORGAN_SLOT_LUNGS, -0.25) M.adjustBruteLoss(-0.35, 0) if(prob(50)) @@ -1511,4 +1511,3 @@ datum/reagent/medicine/styptic_powder/overdose_start(mob/living/M) M.adjustOrganLoss(ORGAN_SLOT_LUNGS, 0.5) ..() . = 1 - diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index c7e574594b..81cfabb1ef 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2139,3 +2139,10 @@ to_chat(M, "You feel like playing with your [G.name]!") ..() + +/datum/reagent/preservahyde + name = "Preservahyde" + description = "A powerful preservation agent, utilizing the preservative effects of formaldehyde with significantly less of the histamine." + reagent_state = LIQUID + color = "#f7685e" + metabolization_rate = REAGENTS_METABOLISM * 0.25 diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index eac8edcbc8..fba0bad809 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -95,7 +95,7 @@ ignore_flags = 1 //so you can medipen through hardsuits reagent_flags = DRAWABLE flags_1 = null - list_reagents = list(/datum/reagent/medicine/epinephrine = 10, /datum/reagent/toxin/formaldehyde = 3) + list_reagents = list(/datum/reagent/medicine/epinephrine = 10, /datum/reagent/preservahyde = 3) /obj/item/reagent_containers/hypospray/medipen/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to choke on \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") From c8d0cacf51217c0e5a47ba987600dd30bac2fa0d Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Thu, 13 Feb 2020 21:08:38 -0600 Subject: [PATCH 06/40] bad recipe --- code/modules/reagents/chemistry/recipes/others.dm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index b463b5758b..347313cceb 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -47,6 +47,12 @@ results = list(/datum/reagent/consumable/sodiumchloride = 3) required_reagents = list(/datum/reagent/water = 1, /datum/reagent/sodium = 1, /datum/reagent/chlorine = 1) +/datum/chemical_reaction/preservahyde + name = "Preservahyde" + id = "preservahyde" + results = list(/datum/reagent/preservahyde = 3) + required_reagents = list(/datum/reagent/water = 1, /datum/reagent/toxin/formaldehyde = 1, /datum/reagent/bromine = 1) + /datum/chemical_reaction/plasmasolidification name = "Solid Plasma" id = "solidplasma" From b2e3243760a8c43e993321e3fe7812842206f391 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Thu, 13 Feb 2020 21:32:27 -0600 Subject: [PATCH 07/40] there's no way this should have worked --- code/game/objects/items/storage/book.dm | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 2762be8edf..157d88e725 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -173,22 +173,24 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", var/unholy2clean = A.reagents.get_reagent_amount(/datum/reagent/fuel/unholywater) A.reagents.del_reagent(/datum/reagent/fuel/unholywater) A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean) - if(istype(A, /obj/item/twohanded/required/cult_bastard) && !iscultist(user)) - var/obj/item/twohanded/required/cult_bastard/sword = A + if(istype(A, /obj/item/twohanded/required/cult_bastard) || istype(A, /obj/item/melee/cultblade) && !iscultist(user)) + var/isbastardsword = FALSE + var/obj/item/sword = A to_chat(user, "You begin to exorcise [sword].") playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1) if(do_after(user, 40, target = sword)) playsound(src,'sound/effects/pray_chaplain.ogg',60,1) - for(var/obj/item/soulstone/SS in sword.contents) - SS.usability = TRUE - for(var/mob/living/simple_animal/shade/EX in SS) - SSticker.mode.remove_cultist(EX.mind, 1, 0) - EX.icon_state = "ghost1" - EX.name = "Purified [EX.name]" - SS.release_shades(user) - qdel(SS) + if(isbastardsword) + for(var/obj/item/soulstone/SS in sword.contents) + SS.usability = TRUE + for(var/mob/living/simple_animal/shade/EX in SS) + SSticker.mode.remove_cultist(EX.mind, 1, 0) + EX.icon_state = "ghost1" + EX.name = "Purified [EX.name]" + SS.release_shades(user) + qdel(SS) new /obj/item/nullrod/claymore(get_turf(sword)) - user.visible_message("[user] has purified the [sword]!") + user.visible_message("[user] has purified [sword]!") qdel(sword) else if(istype(A, /obj/item/soulstone) && !iscultist(user)) From e0537218200fa2ff0664975ebb028583219255c0 Mon Sep 17 00:00:00 2001 From: Ghommie <42542238+Ghommie@users.noreply.github.com> Date: Fri, 14 Feb 2020 07:15:13 +0100 Subject: [PATCH 08/40] Fix for solar panels/trackers being wonky. --- code/modules/power/solar.dm | 27 +++++++++++++-------------- code/modules/power/tracker.dm | 20 +++++++++----------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index e6d44de194..a0eeae1ea9 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -24,7 +24,16 @@ /obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S) . = ..() - Make(S) + if(!S) + assembly = new /obj/item/solar_assembly + assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2) + assembly.anchored = TRUE + else + S.moveToNullspace() + assembly = S + assembly.glass_type.on_solar_construction(src) + obj_integrity = max_integrity + update_icon() connect_to_network() /obj/machinery/power/solar/Destroy() @@ -45,17 +54,6 @@ control.connected_panels.Remove(src) control = null -/obj/machinery/power/solar/proc/Make(obj/item/solar_assembly/S) - if(!S) - S = new /obj/item/solar_assembly - S.glass_type = new /obj/item/stack/sheet/glass(null, 2) - S.anchored = TRUE - else - S.moveToNullspace() - S.glass_type.on_solar_construction(src) - obj_integrity = max_integrity - update_icon() - /obj/machinery/power/solar/crowbar_act(mob/user, obj/item/I) playsound(src.loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] begins to take the glass off [src].", "You begin to take the glass off [src]...") @@ -201,7 +199,7 @@ new shard(Tsec) new shard(Tsec) else if(glass_type) - forceMove(glass_type, Tsec) + glass_type.forceMove(Tsec) glass_type = null /obj/item/solar_assembly/attackby(obj/item/W, mob/user, params) @@ -226,7 +224,8 @@ var/obj/item/stack/sheet/G = S.change_stack(null, 2) if(G) glass_type = G - playsound(src.loc, 'sound/machines/click.ogg', 50, 1) + G.moveToNullspace() + playsound(loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] places the glass on the solar assembly.", "You place the glass on the solar assembly.") if(tracker) new /obj/machinery/power/tracker(get_turf(src), src) diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index c25ece3594..8701dfea7f 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -20,7 +20,15 @@ /obj/machinery/power/tracker/Initialize(mapload, obj/item/solar_assembly/S) . = ..() - Make(S) + if(!S) + assembly = new /obj/item/solar_assembly + assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2) + assembly.tracker = TRUE + assembly.anchored = TRUE + else + S.moveToNullspace() + assembly = S + update_icon() connect_to_network() /obj/machinery/power/tracker/Destroy() @@ -41,16 +49,6 @@ control.connected_tracker = null control = null -/obj/machinery/power/tracker/proc/Make(obj/item/solar_assembly/S) - if(!S) - S = new /obj/item/solar_assembly - S.glass_type = new /obj/item/stack/sheet/glass(null, 2) - S.tracker = TRUE - S.anchored = TRUE - else - S.moveToNullspace() - update_icon() - //updates the tracker icon and the facing angle for the control computer /obj/machinery/power/tracker/proc/set_angle(angle) sun_angle = angle From d45a20c19b0a8d2249a731eaa46ce384ff575dcb Mon Sep 17 00:00:00 2001 From: Blue Wildrose Date: Fri, 14 Feb 2020 05:12:50 -0700 Subject: [PATCH 09/40] Podpeople tweaks - Podpeople can wag tails now - Moved a few features into the podperson race itself instead of its weaker, roundstart variant; this in theory, will allow pod-grown hydroponics podpeople to have hair now, as well as all those anthropomorphic features, should they be revived through this method. - Fixed the lifebringers having no name somehow but... currently lifebringers under this change will turn them into animal anthropomorphic hairy mutants of some kind until I figure out how to make them the bald podpeople that they once were, could use some help with this. --- .../objects/structures/ghost_role_spawners.dm | 24 +++++++++---- .../carbon/human/species_types/podpeople.dm | 35 ++++++++++++++++--- 2 files changed, 48 insertions(+), 11 deletions(-) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index e9d9e4ce77..3b1b20d46a 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -20,13 +20,7 @@ assignedrole = "Lifebringer" /obj/effect/mob_spawn/human/seed_vault/special(mob/living/new_spawn) - var/plant_name = pick("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", \ - "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") - new_spawn.real_name = plant_name - if(ishuman(new_spawn)) - var/mob/living/carbon/human/H = new_spawn - H.underwear = "Nude" //You're a plant, partner - H.update_body() + /obj/effect/mob_spawn/human/seed_vault/Destroy() new/obj/structure/fluff/empty_terrarium(get_turf(src)) @@ -34,6 +28,22 @@ /obj/effect/mob_spawn/human/seed_vault/special(mob/living/carbon/human/new_spawn) ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT) + var/plant_name = pick("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", \ + "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") + new_spawn.real_name = plant_name + new_spawn.underwear = "Nude" //You're a plant, partner + new_spawn.undershirt = "Nude" + new_spawn.socks = "Nude" + new_spawn.dna.features["snout"] = "None" + new_spawn.dna.features["body_markings"] = "Plain" + new_spawn.dna.features["mam_tail"] = "None" + new_spawn.dna.features["taur"] = "None" + new_spawn.dna.features["ears"] = "None" + new_spawn.dna.features["legs"] = "Plantigrade" + new_spawn.facial_hair_style = "Shaved" + new_spawn.hair_style = "Bald" + new_spawn.regenerate_icons() + //Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers. /obj/effect/mob_spawn/human/ash_walker diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 66eb207670..4fcf1eebec 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -3,7 +3,9 @@ name = "Anthromorphic Plant" id = "pod" default_color = "59CE00" - species_traits = list(MUTCOLORS,EYECOLOR) + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS) + mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "taur", "legs") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") attack_verb = "slash" attack_sound = 'sound/weapons/slice.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -70,13 +72,38 @@ if(/obj/item/projectile/energy/florayield) H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) +/datum/species/pod/spec_death(gibbed, mob/living/carbon/human/H) + if(H) + stop_wagging_tail(H) + +/datum/species/pod/spec_stun(mob/living/carbon/human/H,amount) + if(H) + stop_wagging_tail(H) + . = ..() + +/datum/species/pod/can_wag_tail(mob/living/carbon/human/H) + return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + +/datum/species/pod/is_wagging_tail(mob/living/carbon/human/H) + return ("mam_waggingtail" in mutant_bodyparts) + +/datum/species/pod/start_wagging_tail(mob/living/carbon/human/H) + if("mam_tail" in mutant_bodyparts) + mutant_bodyparts -= "mam_tail" + mutant_bodyparts |= "mam_waggingtail" + H.update_body() + +/datum/species/pod/stop_wagging_tail(mob/living/carbon/human/H) + if("mam_waggingtail" in mutant_bodyparts) + mutant_bodyparts -= "mam_waggingtail" + mutant_bodyparts |= "mam_tail" + H.update_body() + + /datum/species/pod/pseudo_weak name = "Anthromorphic Plant" id = "podweak" limbs_id = "pod" - species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS) - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "taur", "legs") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") light_nutrition_gain_factor = 7.5 light_bruteheal = 0.2 light_burnheal = 0.2 From 3b873d40007b1eb14d3493dc6df625b027e9795d Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Fri, 14 Feb 2020 16:28:39 -0600 Subject: [PATCH 10/40] thanks ghommie --- code/game/objects/items/storage/book.dm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 157d88e725..ed0181da55 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -174,14 +174,12 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", A.reagents.del_reagent(/datum/reagent/fuel/unholywater) A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean) if(istype(A, /obj/item/twohanded/required/cult_bastard) || istype(A, /obj/item/melee/cultblade) && !iscultist(user)) - var/isbastardsword = FALSE - var/obj/item/sword = A to_chat(user, "You begin to exorcise [sword].") playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1) - if(do_after(user, 40, target = sword)) + if(do_after(user, 40, target = A)) playsound(src,'sound/effects/pray_chaplain.ogg',60,1) - if(isbastardsword) - for(var/obj/item/soulstone/SS in sword.contents) + if(istype(A, /obj/item/twohanded/required/cult_bastard)) + for(var/obj/item/soulstone/SS in A.contents) SS.usability = TRUE for(var/mob/living/simple_animal/shade/EX in SS) SSticker.mode.remove_cultist(EX.mind, 1, 0) From 5a9208bc423523d2cbb71d9af1018a6a1e3b9e0b Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Fri, 14 Feb 2020 16:29:17 -0600 Subject: [PATCH 11/40] shit whoops --- code/game/objects/items/storage/book.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index ed0181da55..37f5b8d756 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -174,7 +174,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", A.reagents.del_reagent(/datum/reagent/fuel/unholywater) A.reagents.add_reagent(/datum/reagent/water/holywater,unholy2clean) if(istype(A, /obj/item/twohanded/required/cult_bastard) || istype(A, /obj/item/melee/cultblade) && !iscultist(user)) - to_chat(user, "You begin to exorcise [sword].") + to_chat(user, "You begin to exorcise [A].") playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1) if(do_after(user, 40, target = A)) playsound(src,'sound/effects/pray_chaplain.ogg',60,1) @@ -187,9 +187,9 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", EX.name = "Purified [EX.name]" SS.release_shades(user) qdel(SS) - new /obj/item/nullrod/claymore(get_turf(sword)) - user.visible_message("[user] has purified [sword]!") - qdel(sword) + new /obj/item/nullrod/claymore(get_turf(A)) + user.visible_message("[user] has purified [A]!") + qdel(A) else if(istype(A, /obj/item/soulstone) && !iscultist(user)) var/obj/item/soulstone/SS = A From 0c9244f6694edd3c5ae7a56ae7ea57daf318b8ce Mon Sep 17 00:00:00 2001 From: Persi Date: Sat, 15 Feb 2020 14:17:22 -0500 Subject: [PATCH 12/40] Clarifies comments and locks defusal kits behind an emag --- code/modules/cargo/packs.dm | 2 +- code/modules/cargo/packs/science.dm | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 4c9ddfe3bc..07a75bbfaf 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -2,7 +2,7 @@ var/name = "Crate" var/group = "" var/hidden = FALSE //Aka emag only - var/contraband = FALSE //Hacking the console with a multitool + var/contraband = FALSE //Requires a hacked console UNLESS DropPodOnly = TRUE, in which case it requires an emag var/cost = 700 // Minimum cost, or infinite points are possible. var/access = FALSE //What access does the Crate itself need? var/access_any = FALSE //Do we care about access? diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index 8852a7e945..7a56e6d29b 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -84,7 +84,7 @@ /datum/supply_pack/science/glasswork name = "Glass Blower Kit Crate" - desc = "Learn and make glassworks of usefull things for a profit! Contains glassworking tools and blowing rods. Glass not included." + desc = "Learn and make glassworks of useful things for a profit! Contains glassworking tools and blowing rods. Glass not included." cost = 1000 contains = list(/obj/item/glasswork/glasskit, /obj/item/glasswork/glasskit, @@ -111,8 +111,9 @@ /datum/supply_pack/science/nuke_b_gone name = "Nuke Defusal Kit" desc = "Contains set of tools to defuse a nuke." - cost = 7500 //Usefull for traitors/nukies that fucked up + cost = 7500 //Useful for traitors/nukies that fucked up dangerous = TRUE + contraband = TRUE DropPodOnly = TRUE contains = list(/obj/item/nuke_core_container/nt, /obj/item/screwdriver/nuke/nt, @@ -194,7 +195,7 @@ /datum/supply_pack/science/supermater name = "Supermatter Extraction Tools Crate" desc = "Contains a set of tools to extract a sliver of supermatter. Consult your CE today!" - cost = 7500 //Usefull for traitors that fucked up + cost = 7500 //Useful for traitors that fucked up hidden = TRUE contains = list(/obj/item/nuke_core_container/supermatter, /obj/item/scalpel/supermatter, From c9af8dc71358854b98bce12d9577a088eb0f112d Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sat, 15 Feb 2020 14:05:27 -0600 Subject: [PATCH 13/40] perhaps --- code/game/objects/items/storage/book.dm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 37f5b8d756..21749eea56 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -187,7 +187,10 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", EX.name = "Purified [EX.name]" SS.release_shades(user) qdel(SS) - new /obj/item/nullrod/claymore(get_turf(A)) + new /obj/item/nullrod/claymore(get_turf(A)) + user.visible_message("[user] has purified [A]!") + qdel(A) + new /obj/item/claymore(get_turf(A)) user.visible_message("[user] has purified [A]!") qdel(A) From 0f5ea361e70d373b20094768a7c2eba57a366137 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sat, 15 Feb 2020 14:07:35 -0600 Subject: [PATCH 14/40] bada bing bada boom --- code/game/objects/items/storage/book.dm | 2 +- code/game/objects/items/weaponry.dm | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index 21749eea56..a0b1a25078 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -190,7 +190,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", new /obj/item/nullrod/claymore(get_turf(A)) user.visible_message("[user] has purified [A]!") qdel(A) - new /obj/item/claymore(get_turf(A)) + new /obj/item/claymore/purified(get_turf(A)) user.visible_message("[user] has purified [A]!") qdel(A) diff --git a/code/game/objects/items/weaponry.dm b/code/game/objects/items/weaponry.dm index cd6cc5f520..ea9899b2c2 100644 --- a/code/game/objects/items/weaponry.dm +++ b/code/game/objects/items/weaponry.dm @@ -79,6 +79,11 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301 user.visible_message("[user] is falling on [src]! It looks like [user.p_theyre()] trying to commit suicide!") return(BRUTELOSS) +/obj/item/claymore/purified + name = "purified longsword" + desc = "A hastily-purified longsword. While not as holy as it could be, it's still a formidable weapon against those who would rather see you dead." + force = 25 + /obj/item/claymore/highlander //ALL COMMENTS MADE REGARDING THIS SWORD MUST BE MADE IN ALL CAPS desc = "THERE CAN BE ONLY ONE, AND IT WILL BE YOU!!!\nActivate it in your hand to point to the nearest victim." flags_1 = CONDUCT_1 From 18feba7fddcfc425fc8f89ae74e14764b5f10b58 Mon Sep 17 00:00:00 2001 From: Persi Date: Sun, 16 Feb 2020 00:14:15 -0500 Subject: [PATCH 15/40] Defusal kits are now emag only and don't require a drop pod console. --- code/modules/cargo/packs/science.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/cargo/packs/science.dm b/code/modules/cargo/packs/science.dm index 7a56e6d29b..e6671a02ea 100644 --- a/code/modules/cargo/packs/science.dm +++ b/code/modules/cargo/packs/science.dm @@ -113,8 +113,7 @@ desc = "Contains set of tools to defuse a nuke." cost = 7500 //Useful for traitors/nukies that fucked up dangerous = TRUE - contraband = TRUE - DropPodOnly = TRUE + hidden = TRUE contains = list(/obj/item/nuke_core_container/nt, /obj/item/screwdriver/nuke/nt, /obj/item/paper/guides/nt/nuke_instructions) From b60b0a95aaa8cb27144244a56487c2e50540a4f2 Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Sun, 16 Feb 2020 02:28:12 -0600 Subject: [PATCH 16/40] you ever just forget that if statements exist --- code/game/objects/items/storage/book.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/storage/book.dm b/code/game/objects/items/storage/book.dm index a0b1a25078..311657aba9 100644 --- a/code/game/objects/items/storage/book.dm +++ b/code/game/objects/items/storage/book.dm @@ -188,9 +188,8 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "bible", SS.release_shades(user) qdel(SS) new /obj/item/nullrod/claymore(get_turf(A)) - user.visible_message("[user] has purified [A]!") - qdel(A) - new /obj/item/claymore/purified(get_turf(A)) + else + new /obj/item/claymore/purified(get_turf(A)) user.visible_message("[user] has purified [A]!") qdel(A) From 0f7618b348adf38ede943d0e5cb3cfb5edf8b5a4 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 16 Feb 2020 14:07:00 -0500 Subject: [PATCH 17/40] Update organic.dm --- code/modules/cargo/packs/organic.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/cargo/packs/organic.dm b/code/modules/cargo/packs/organic.dm index 79853e1aaf..cdac6f49f2 100644 --- a/code/modules/cargo/packs/organic.dm +++ b/code/modules/cargo/packs/organic.dm @@ -214,7 +214,7 @@ /datum/supply_pack/organic/fakemeat name = "Meat Crate 'Synthetic'" - desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 9 slabs of meat product, 3 crab meat and 4 slabs of *carp*." + desc = "Run outta meat already? Keep the lizards content with this freezer filled with cruelty-free chemically compounded meat! Contains 12 slabs of meat product, and 4 slabs of *carp*." cost = 1200 // Buying 3 food crates nets you 9 meat for 900 points, plus like, 6 bags of rice, flour, and egg boxes. This is 12 for 500, but you -only- get meat and carp. contains = list(/obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, @@ -225,9 +225,9 @@ /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, - /obj/item/reagent_containers/food/snacks/meat/rawcrab, - /obj/item/reagent_containers/food/snacks/meat/rawcrab, - /obj/item/reagent_containers/food/snacks/meat/rawcrab, + /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, + /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, + /obj/item/reagent_containers/food/snacks/meat/slab/meatproduct, /obj/item/reagent_containers/food/snacks/carpmeat/imitation, /obj/item/reagent_containers/food/snacks/carpmeat/imitation, /obj/item/reagent_containers/food/snacks/carpmeat/imitation, From 031580233096ff1e22e8b89badda7d097934b52c Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 16 Feb 2020 18:25:54 -0500 Subject: [PATCH 18/40] Update armory.dm --- code/modules/cargo/packs/armory.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index 4c500a0162..fc95b05007 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -192,8 +192,7 @@ /obj/item/clothing/mask/russian_balaclava, /obj/item/clothing/head/helmet/rus_ushanka, /obj/item/clothing/suit/armor/vest/russian_coat, - /obj/item/gun/ballistic/shotgun/boltaction, - /obj/item/staff/broom) //Its... A real thing that was done in the Russian army + /obj/item/gun/ballistic/shotgun/boltaction) crate_name = "surplus military crate" /datum/supply_pack/security/armory/russian/fill(obj/structure/closet/crate/C) From c5eaac62bdbed49c0abeec29f493ec7fe2bccaba Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Sun, 16 Feb 2020 18:26:22 -0500 Subject: [PATCH 19/40] Update materials.dm --- code/modules/cargo/packs/materials.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm index ea7df06bda..556c3175d2 100644 --- a/code/modules/cargo/packs/materials.dm +++ b/code/modules/cargo/packs/materials.dm @@ -47,7 +47,7 @@ cost = 9050 contains = list(/obj/item/stack/sheet/plasteel/fifty) crate_name = "plasteel sheets crate" - +/* /datum/supply_pack/materials/plastitanium50 name = "50 Plastitanium Sheets" desc = "Build an evil empire with fifty plastitanium sheets." @@ -63,7 +63,7 @@ contraband = TRUE contains = list(/obj/item/stack/sheet/plastitaniumglass/fifty) crate_name = "plastitanium glass sheets crate" - +*/ /datum/supply_pack/materials/plastic50 name = "50 Plastic Sheets" desc = "Build a limitless amount of toys with fifty plastic sheets!" From 262b4d95fbdbc7af3e211c5e6fd34dbed94abe9d Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Sun, 16 Feb 2020 16:44:29 -0700 Subject: [PATCH 20/40] Update projectile.dm --- code/modules/projectiles/projectile.dm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 4521e4ea13..139f5a051c 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -52,7 +52,6 @@ var/hitscan = FALSE //Whether this is hitscan. If it is, speed is basically ignored. var/list/beam_segments //assoc list of datum/point or datum/point/vector, start = end. Used for hitscan effect generation. var/datum/point/beam_index - var/turf/hitscan_last //last turf touched during hitscanning. var/tracer_type var/muzzle_type var/impact_type @@ -492,8 +491,6 @@ process_homing() var/forcemoved = FALSE for(var/i in 1 to SSprojectiles.global_iterations_per_move) - if(QDELETED(src)) - return trajectory.increment(trajectory_multiplier) var/turf/T = trajectory.return_turf() if(!istype(T)) @@ -506,14 +503,16 @@ forceMove(T) trajectory_ignore_forcemove = FALSE after_z_change(old, loc) + forcemoved = TRUE + if(QDELETED(src)) + return if(!hitscanning) pixel_x = trajectory.return_px() pixel_y = trajectory.return_py() - forcemoved = TRUE - hitscan_last = loc else if(T != loc) step_towards(src, T) - hitscan_last = loc + if(QDELETED(src)) + return if(!hitscanning && !forcemoved) pixel_x = trajectory.return_px() - trajectory.mpx * trajectory_multiplier * SSprojectiles.global_iterations_per_move pixel_y = trajectory.return_py() - trajectory.mpy * trajectory_multiplier * SSprojectiles.global_iterations_per_move From 217661184d951e221fd2e2572cdc1b4842d2ffa8 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Mon, 17 Feb 2020 21:29:34 +0800 Subject: [PATCH 21/40] nerf'd --- code/modules/spells/spell_types/bloodcrawl.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/spells/spell_types/bloodcrawl.dm b/code/modules/spells/spell_types/bloodcrawl.dm index e4c33380b2..49d73b445b 100644 --- a/code/modules/spells/spell_types/bloodcrawl.dm +++ b/code/modules/spells/spell_types/bloodcrawl.dm @@ -13,6 +13,7 @@ action_icon_state = "bloodcrawl" action_background_icon_state = "bg_demon" var/phased = 0 + charge_max = 6 /obj/effect/proc_holder/spell/bloodcrawl/choose_targets(mob/user = usr) for(var/obj/effect/decal/cleanable/target in range(range, get_turf(user))) From cc685b813cf48b72e0cef37119dfc1d18859d25b Mon Sep 17 00:00:00 2001 From: Hatterhat Date: Mon, 17 Feb 2020 14:35:37 -0600 Subject: [PATCH 22/40] ignore the branch name i just needed icons --- icons/mecha/mech_construction.dmi | Bin 17377 -> 19228 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mecha/mech_construction.dmi b/icons/mecha/mech_construction.dmi index 42cc8eeb57416a14af3e1daaf2096d6a751ca160..d7f0f3e05487beaa68496e7dd3a8bdcbaba78297 100644 GIT binary patch literal 19228 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 Cf{L*K literal 17377 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�*Z{Z32vdL*!U789U=BJIYpXqX)v`yFvI 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 From 3b82e34db6e88727e8f08b552f4920234c8dd066 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 17 Feb 2020 15:48:02 -0500 Subject: [PATCH 23/40] Update code/modules/cargo/packs/emergency.dm Co-Authored-By: Ghom <42542238+Ghommie@users.noreply.github.com> --- code/modules/cargo/packs/emergency.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/cargo/packs/emergency.dm b/code/modules/cargo/packs/emergency.dm index b06561a1c2..be81da3b92 100644 --- a/code/modules/cargo/packs/emergency.dm +++ b/code/modules/cargo/packs/emergency.dm @@ -130,7 +130,7 @@ /datum/supply_pack/emergency/bomb name = "Explosive Emergency Crate" - desc = "Science gone bonkers? Beeping behind the airlock? Buy now and become the hero the station ki-... I mean needs! Time not included, but a full bomb suit and hood, as well as a mask and defusal kit are! Non-Nuclear ordinance only." + desc = "Science gone bonkers? Beeping behind the airlock? Buy now and become the hero the station des... I mean needs! Time not included, but a full bomb suit and hood, as well as a mask and defusal kit are! Non-Nuclear ordnances only." cost = 1500 contains = list(/obj/item/clothing/head/bomb_hood, /obj/item/clothing/suit/bomb_suit, From 8f653b4dd6809beb312bb99f49bda701bca48b85 Mon Sep 17 00:00:00 2001 From: Trilbyspaceclone <30435998+Trilbyspaceclone@users.noreply.github.com> Date: Mon, 17 Feb 2020 15:48:31 -0500 Subject: [PATCH 24/40] Update materials.dm --- code/modules/cargo/packs/materials.dm | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm index 556c3175d2..6c1742896f 100644 --- a/code/modules/cargo/packs/materials.dm +++ b/code/modules/cargo/packs/materials.dm @@ -47,23 +47,7 @@ cost = 9050 contains = list(/obj/item/stack/sheet/plasteel/fifty) crate_name = "plasteel sheets crate" -/* -/datum/supply_pack/materials/plastitanium50 - name = "50 Plastitanium Sheets" - desc = "Build an evil empire with fifty plastitanium sheets." - cost = 9250 - contraband = TRUE - contains = list(/obj/item/stack/sheet/mineral/plastitanium/fifty) - crate_name = "plastitanium sheets crate" -/datum/supply_pack/materials/plastitanium_glass50 - name = "50 Plastitanium Glass Sheets" - desc = "Look out from your evil empire with fifty plastitanium glass sheets." - cost = 9500 - contraband = TRUE - contains = list(/obj/item/stack/sheet/plastitaniumglass/fifty) - crate_name = "plastitanium glass sheets crate" -*/ /datum/supply_pack/materials/plastic50 name = "50 Plastic Sheets" desc = "Build a limitless amount of toys with fifty plastic sheets!" From 78fcd706b3fa4a5b689f5076ebc05921a2bba0cd Mon Sep 17 00:00:00 2001 From: BlueWildrose <57083662+BlueWildrose@users.noreply.github.com> Date: Mon, 17 Feb 2020 19:41:30 -0700 Subject: [PATCH 25/40] Requested changes, podpeople.dm --- .../carbon/human/species_types/podpeople.dm | 61 ++++++++++--------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 4fcf1eebec..05bca6653a 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -3,9 +3,7 @@ name = "Anthromorphic Plant" id = "pod" default_color = "59CE00" - species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS) - mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "taur", "legs") - default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") + species_traits = list(MUTCOLORS,EYECOLOR) attack_verb = "slash" attack_sound = 'sound/weapons/slice.ogg' miss_sound = 'sound/weapons/slashmiss.ogg' @@ -72,39 +70,42 @@ if(/obj/item/projectile/energy/florayield) H.nutrition = min(H.nutrition+30, NUTRITION_LEVEL_FULL) -/datum/species/pod/spec_death(gibbed, mob/living/carbon/human/H) - if(H) - stop_wagging_tail(H) - -/datum/species/pod/spec_stun(mob/living/carbon/human/H,amount) - if(H) - stop_wagging_tail(H) - . = ..() - -/datum/species/pod/can_wag_tail(mob/living/carbon/human/H) - return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) - -/datum/species/pod/is_wagging_tail(mob/living/carbon/human/H) - return ("mam_waggingtail" in mutant_bodyparts) - -/datum/species/pod/start_wagging_tail(mob/living/carbon/human/H) - if("mam_tail" in mutant_bodyparts) - mutant_bodyparts -= "mam_tail" - mutant_bodyparts |= "mam_waggingtail" - H.update_body() - -/datum/species/pod/stop_wagging_tail(mob/living/carbon/human/H) - if("mam_waggingtail" in mutant_bodyparts) - mutant_bodyparts -= "mam_waggingtail" - mutant_bodyparts |= "mam_tail" - H.update_body() - /datum/species/pod/pseudo_weak name = "Anthromorphic Plant" id = "podweak" + species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS) + mutant_bodyparts = list("mam_tail", "mam_ears", "mam_body_markings", "mam_snouts", "taur", "legs") + default_features = list("mcolor" = "FFF","mcolor2" = "FFF","mcolor3" = "FFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") limbs_id = "pod" light_nutrition_gain_factor = 7.5 light_bruteheal = 0.2 light_burnheal = 0.2 light_toxheal = 0.7 + +/datum/species/pod/pseudo_weak/spec_death(gibbed, mob/living/carbon/human/H) + if(H) + stop_wagging_tail(H) + +/datum/species/pod/pseudo_weak/spec_stun(mob/living/carbon/human/H,amount) + if(H) + stop_wagging_tail(H) + . = ..() + +/datum/species/pod/pseudo_weak/can_wag_tail(mob/living/carbon/human/H) + return ("mam_tail" in mutant_bodyparts) || ("mam_waggingtail" in mutant_bodyparts) + +/datum/species/pod/pseudo_weak/is_wagging_tail(mob/living/carbon/human/H) + return ("mam_waggingtail" in mutant_bodyparts) + +/datum/species/pod/pseudo_weak/start_wagging_tail(mob/living/carbon/human/H) + if("mam_tail" in mutant_bodyparts) + mutant_bodyparts -= "mam_tail" + mutant_bodyparts |= "mam_waggingtail" + H.update_body() + +/datum/species/pod/pseudo_weak/stop_wagging_tail(mob/living/carbon/human/H) + if("mam_waggingtail" in mutant_bodyparts) + mutant_bodyparts -= "mam_waggingtail" + mutant_bodyparts |= "mam_tail" + H.update_body() From 930e6f98767b4833e953cfc45c283626f5d0b711 Mon Sep 17 00:00:00 2001 From: BlueWildrose <57083662+BlueWildrose@users.noreply.github.com> Date: Mon, 17 Feb 2020 19:47:48 -0700 Subject: [PATCH 26/40] Requested changes, ghost_role_spawner.dm --- .../objects/structures/ghost_role_spawners.dm | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 3b1b20d46a..724c921d07 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -19,9 +19,6 @@ Estimated time of last contact: Deployment, 5000 millennia ago." assignedrole = "Lifebringer" -/obj/effect/mob_spawn/human/seed_vault/special(mob/living/new_spawn) - - /obj/effect/mob_spawn/human/seed_vault/Destroy() new/obj/structure/fluff/empty_terrarium(get_turf(src)) return ..() @@ -30,18 +27,10 @@ ADD_TRAIT(new_spawn,TRAIT_EXEMPT_HEALTH_EVENTS,GHOSTROLE_TRAIT) var/plant_name = pick("Tomato", "Potato", "Broccoli", "Carrot", "Ambrosia", "Pumpkin", "Ivy", "Kudzu", "Banana", "Moss", "Flower", "Bloom", "Root", "Bark", "Glowshroom", "Petal", "Leaf", \ "Venus", "Sprout","Cocoa", "Strawberry", "Citrus", "Oak", "Cactus", "Pepper", "Juniper") - new_spawn.real_name = plant_name + new_spawn.real_name = plant_name //why this works when moving it from one function to another is beyond me new_spawn.underwear = "Nude" //You're a plant, partner - new_spawn.undershirt = "Nude" + new_spawn.undershirt = "Nude" //changing underwear/shirt/socks doesn't seem to function correctly right now because of some bug elsewhere? new_spawn.socks = "Nude" - new_spawn.dna.features["snout"] = "None" - new_spawn.dna.features["body_markings"] = "Plain" - new_spawn.dna.features["mam_tail"] = "None" - new_spawn.dna.features["taur"] = "None" - new_spawn.dna.features["ears"] = "None" - new_spawn.dna.features["legs"] = "Plantigrade" - new_spawn.facial_hair_style = "Shaved" - new_spawn.hair_style = "Bald" new_spawn.regenerate_icons() //Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers. From cfca197fbb5a487f9e570aac3eb360aedffaf674 Mon Sep 17 00:00:00 2001 From: BlueWildrose <57083662+BlueWildrose@users.noreply.github.com> Date: Mon, 17 Feb 2020 19:55:32 -0700 Subject: [PATCH 27/40] forgot one last change that I made out of frustration because making things bald wasn't working for some reason --- code/game/objects/structures/ghost_role_spawners.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index 724c921d07..54c44330fc 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -31,7 +31,7 @@ new_spawn.underwear = "Nude" //You're a plant, partner new_spawn.undershirt = "Nude" //changing underwear/shirt/socks doesn't seem to function correctly right now because of some bug elsewhere? new_spawn.socks = "Nude" - new_spawn.regenerate_icons() + new_spawn.update_body() //Ash walker eggs: Spawns in ash walker dens in lavaland. Ghosts become unbreathing lizards that worship the Necropolis and are advised to retrieve corpses to create more ash walkers. From 139508a9a4357f79490caf03e7056c6b9d77ae6a Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 17 Feb 2020 22:36:57 -0700 Subject: [PATCH 28/40] Update drag_drop.dm --- code/_onclick/drag_drop.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/_onclick/drag_drop.dm b/code/_onclick/drag_drop.dm index dc18107a95..9638b040f9 100644 --- a/code/_onclick/drag_drop.dm +++ b/code/_onclick/drag_drop.dm @@ -42,7 +42,7 @@ selected_target[1] = object selected_target[2] = params while(selected_target[1]) - Click(selected_target[1], location, control, selected_target[2]) + Click(selected_target[1], location, control, selected_target[2], TRUE) sleep(delay) active_mousedown_item = mob.canMobMousedown(object, location, params) if(active_mousedown_item) @@ -145,4 +145,4 @@ if (middragatom == src_object) middragtime = 0 middragatom = null - ..() \ No newline at end of file + ..() From 9dbc6ca18355e225900042f2241a5ce6e1e755c7 Mon Sep 17 00:00:00 2001 From: kevinz000 <2003111+kevinz000@users.noreply.github.com> Date: Mon, 17 Feb 2020 22:37:58 -0700 Subject: [PATCH 29/40] Update client_procs.dm --- code/modules/client/client_procs.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index e05cee3487..dc550179f8 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -737,13 +737,13 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) message_admins("Proxy Detection: [key_name_admin(src)] IP intel rated [res.intel*100]% likely to be a Proxy/VPN.") ip_intel = res.intel -/client/Click(atom/object, atom/location, control, params) +/client/Click(atom/object, atom/location, control, params, ignore_spam = FALSE) var/ab = FALSE var/list/L = params2list(params) if (object && object == middragatom && L["left"]) ab = max(0, 5 SECONDS-(world.time-middragtime)*0.1) var/mcl = CONFIG_GET(number/minute_click_limit) - if (!holder && mcl) + if (!holder && !ignore_spam && mcl) var/minute = round(world.time, 600) if (!clicklimiter) clicklimiter = new(LIMITER_SIZE) @@ -768,7 +768,7 @@ GLOBAL_LIST_EMPTY(external_rsc_urls) return var/scl = CONFIG_GET(number/second_click_limit) - if (!holder && scl) + if (!holder && !ignore_spam && scl) var/second = round(world.time, 10) if (!clicklimiter) clicklimiter = new(LIMITER_SIZE) From 47adcaa5c59de7c39df3bba6b89b516720d0e8d0 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 03:21:19 -0600 Subject: [PATCH 30/40] Automatic changelog generation for PR #11087 [ci skip] --- html/changelogs/AutoChangeLog-pr-11087.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11087.yml diff --git a/html/changelogs/AutoChangeLog-pr-11087.yml b/html/changelogs/AutoChangeLog-pr-11087.yml new file mode 100644 index 0000000000..179ef6a2b7 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11087.yml @@ -0,0 +1,4 @@ +author: "Ghommie" +delete-after: True +changes: + - bugfix: "Fixed solar panels/trackers (de)construction being a bit wonky." From 1c156996f4a2995372b2964c575fb2436e1864eb Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 03:21:39 -0600 Subject: [PATCH 31/40] Automatic changelog generation for PR #11082 [ci skip] --- html/changelogs/AutoChangeLog-pr-11082.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11082.yml diff --git a/html/changelogs/AutoChangeLog-pr-11082.yml b/html/changelogs/AutoChangeLog-pr-11082.yml new file mode 100644 index 0000000000..89d9b4ca52 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11082.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscadd: "Preservahyde! Made with water, bromine, and formaldehyde, it doesn't decay into histamine. Instead, it just prevents your organs from rotting into nothing." From 541ecffa1aa3f1eefc4d9e2fb3a2d83b623963cd Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 08:52:20 -0600 Subject: [PATCH 32/40] Automatic changelog generation for PR #11134 [ci skip] --- html/changelogs/AutoChangeLog-pr-11134.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11134.yml diff --git a/html/changelogs/AutoChangeLog-pr-11134.yml b/html/changelogs/AutoChangeLog-pr-11134.yml new file mode 100644 index 0000000000..8ec6c97164 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11134.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - bugfix: "mechs with stock parts now have icons" From e860a36c3d928bd7b4fc1bd64797205b4fad3936 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 10:02:20 -0600 Subject: [PATCH 33/40] Automatic changelog generation for PR #11131 [ci skip] --- html/changelogs/AutoChangeLog-pr-11131.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11131.yml diff --git a/html/changelogs/AutoChangeLog-pr-11131.yml b/html/changelogs/AutoChangeLog-pr-11131.yml new file mode 100644 index 0000000000..9a14049c2f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11131.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - balance: "bloodcrawl's cooldown" From 33c0422453b3aa81cb7c2d2feedbf92e82bd4887 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 10:11:52 -0600 Subject: [PATCH 34/40] Automatic changelog generation for PR #11091 [ci skip] --- html/changelogs/AutoChangeLog-pr-11091.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11091.yml diff --git a/html/changelogs/AutoChangeLog-pr-11091.yml b/html/changelogs/AutoChangeLog-pr-11091.yml new file mode 100644 index 0000000000..5d43d7dbdf --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11091.yml @@ -0,0 +1,5 @@ +author: "BlueWildrose" +delete-after: True +changes: + - bugfix: "podpeople tail wagging" + - tweak: "lifebringer ghost role fixes" From 19ca51a6395c6d9b67459d1ec0670e35ed0ccfaa Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 12:02:37 -0600 Subject: [PATCH 35/40] Automatic changelog generation for PR #11083 [ci skip] --- html/changelogs/AutoChangeLog-pr-11083.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11083.yml diff --git a/html/changelogs/AutoChangeLog-pr-11083.yml b/html/changelogs/AutoChangeLog-pr-11083.yml new file mode 100644 index 0000000000..757d9fcb63 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11083.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - balance: "You can now purify eldritch longswords with a bible. This creates purified longswords, which do not have anti-magic properties, but are still good for swinging at cultists." From 4f13765f3ccce96546f1223c1fc70f0b8ee3d800 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 19:09:04 -0600 Subject: [PATCH 36/40] Automatic changelog generation for PR #11103 [ci skip] --- html/changelogs/AutoChangeLog-pr-11103.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11103.yml diff --git a/html/changelogs/AutoChangeLog-pr-11103.yml b/html/changelogs/AutoChangeLog-pr-11103.yml new file mode 100644 index 0000000000..f38e23f76e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11103.yml @@ -0,0 +1,5 @@ +author: "PersianXerxes" +delete-after: True +changes: + - rscadd: "Better clarified the comment explaining the contraband tag." + - tweak: "Cargo nuclear defusal kits now require an emag'd drop pod console to be purchased." From 9a51caf834309dfcc62b4b803af8cb2fa0bc210c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 19:10:28 -0600 Subject: [PATCH 37/40] Automatic changelog generation for PR #10980 [ci skip] --- html/changelogs/AutoChangeLog-pr-10980.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-10980.yml diff --git a/html/changelogs/AutoChangeLog-pr-10980.yml b/html/changelogs/AutoChangeLog-pr-10980.yml new file mode 100644 index 0000000000..3701aea6e1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-10980.yml @@ -0,0 +1,7 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Medical locked crates" + - balance: "Russian gear crates have less gear in some cases but all will cost more" + - bugfix: "Medical locked crates that were not locked" + - spellcheck: "Crates that were out of date are corrected" From fef9cc83ac05c32d46c25dc108c61e1af18fefd8 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 18 Feb 2020 19:12:44 -0600 Subject: [PATCH 38/40] Automatic changelog generation for PR #11138 [ci skip] --- html/changelogs/AutoChangeLog-pr-11138.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-11138.yml diff --git a/html/changelogs/AutoChangeLog-pr-11138.yml b/html/changelogs/AutoChangeLog-pr-11138.yml new file mode 100644 index 0000000000..fd0e53bb73 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11138.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - tweak: "the game's built in autoclicker aka CanMobAutoclick no longer triggers client/Click()'s anti clickspam guard." From 6aec971b4e6f834b7f28988682b3d8e2178042bd Mon Sep 17 00:00:00 2001 From: Putnam Date: Tue, 18 Feb 2020 21:41:00 -0800 Subject: [PATCH 39/40] haha i'm dumb --- code/controllers/subsystem/ticker.dm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index fe994facdc..9d87568de6 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -480,12 +480,16 @@ SUBSYSTEM_DEF(ticker) switch(vote_type) if("PLURALITY") SSvote.initiate_vote("map","server",hideresults=TRUE) + return if("APPROVAL") SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = APPROVAL_VOTING) + return if("IRV") SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = INSTANT_RUNOFF_VOTING) + return if("SCORE") SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = MAJORITY_JUDGEMENT_VOTING) + return // fallback SSvote.initiate_vote("map","server",hideresults=TRUE) From dd3520896a5cd82ba1297020aec55cdef189dace Mon Sep 17 00:00:00 2001 From: Putnam Date: Wed, 19 Feb 2020 11:45:37 -0800 Subject: [PATCH 40/40] wow there's an else --- code/controllers/subsystem/ticker.dm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 9d87568de6..606aca2d3a 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -480,18 +480,15 @@ SUBSYSTEM_DEF(ticker) switch(vote_type) if("PLURALITY") SSvote.initiate_vote("map","server",hideresults=TRUE) - return if("APPROVAL") SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = APPROVAL_VOTING) - return if("IRV") SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = INSTANT_RUNOFF_VOTING) - return if("SCORE") SSvote.initiate_vote("map","server",hideresults=TRUE,votesystem = MAJORITY_JUDGEMENT_VOTING) - return + else + SSvote.initiate_vote("map","server",hideresults=TRUE) // fallback - SSvote.initiate_vote("map","server",hideresults=TRUE) /datum/controller/subsystem/ticker/proc/HasRoundStarted() return current_state >= GAME_STATE_PLAYING