From af3a24cd653805c1dcecc5300793c2806b8e5fc9 Mon Sep 17 00:00:00 2001 From: Alberyk Date: Wed, 3 Mar 2021 21:31:05 -0300 Subject: [PATCH 01/38] Adds Hro'zamal Soda (#11340) --- code/game/machinery/vending_types.dm | 7 +++++-- .../items/weapons/storage/field_ration.dm | 2 +- .../clothing/under/accessories/xeno/tajara.dm | 2 +- .../Chemistry-Reagents-Food-Drinks.dm | 13 +++++++++++++ .../reagents/reagent_containers/food/cans.dm | 11 +++++++++++ .../reagent_containers/food/drinks/bottle.dm | 11 +++++++++++ .../reagents/reagent_containers/food/lunch.dm | 3 ++- html/changelogs/alberyk-hadiisoda.yml | 6 ++++++ icons/obj/drinks.dmi | Bin 125732 -> 126428 bytes icons/obj/drinks_empty.dmi | Bin 14299 -> 14768 bytes icons/obj/trash.dmi | Bin 25994 -> 26210 bytes 11 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 html/changelogs/alberyk-hadiisoda.yml diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index 2d9f5eb7c56..8c6e6ffb8e3 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -88,6 +88,7 @@ /obj/item/reagent_containers/food/drinks/bottle/cola = 5, /obj/item/reagent_containers/food/drinks/bottle/space_mountain_wind = 5, /obj/item/reagent_containers/food/drinks/bottle/space_up = 5, + /obj/item/reagent_containers/food/drinks/bottle/hrozamal_soda = 2, /obj/item/reagent_containers/food/drinks/cans/adhomai_milk = 2, /obj/item/reagent_containers/food/drinks/cans/grape_juice = 6, /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 2, @@ -331,7 +332,8 @@ /obj/item/reagent_containers/food/drinks/cans/iced_tea = 10, /obj/item/reagent_containers/food/drinks/cans/grape_juice = 10, /obj/item/reagent_containers/food/drinks/cans/koispunch = 5, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 10 + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 10, + /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 10 ) contraband = list( /obj/item/reagent_containers/food/drinks/cans/thirteenloko = 5, @@ -354,7 +356,8 @@ /obj/item/reagent_containers/food/drinks/cans/iced_tea = 13, /obj/item/reagent_containers/food/drinks/cans/grape_juice = 16, /obj/item/reagent_containers/food/drinks/cans/koispunch = 50, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 5 + /obj/item/reagent_containers/food/drinks/cans/beetle_milk = 5, + /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda = 35 ) idle_power_usage = 211 //refrigerator - believe it or not, this is actually the average power consumption of a refrigerated vending machine according to NRCan. vending_sound = 'sound/machines/vending/vending_cans.ogg' diff --git a/code/game/objects/items/weapons/storage/field_ration.dm b/code/game/objects/items/weapons/storage/field_ration.dm index ef747a60675..5efd16acfca 100644 --- a/code/game/objects/items/weapons/storage/field_ration.dm +++ b/code/game/objects/items/weapons/storage/field_ration.dm @@ -30,7 +30,7 @@ if("NanoTrasen Sponsored") new /obj/item/reagent_containers/food/snacks/liquidfood(src) new /obj/item/reagent_containers/food/snacks/liquidfood(src) - new /obj/item/reagent_containers/food/drinks/cans/sodawater(src) + new /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda(src) desc += " This one has the NanoTrasen logo." /obj/item/storage/field_ration/army diff --git a/code/modules/clothing/under/accessories/xeno/tajara.dm b/code/modules/clothing/under/accessories/xeno/tajara.dm index 454a4ca1cd0..acd77c29f99 100644 --- a/code/modules/clothing/under/accessories/xeno/tajara.dm +++ b/code/modules/clothing/under/accessories/xeno/tajara.dm @@ -116,7 +116,7 @@ desc_fluff = "The Party of the Free Tajara under the Leadership of Hadii is the only and ruling party in the PRA, with its leader always being the elected president. \ They follow Hadiism as their main ideology, with the objective of securing the tajaran freedom and place in the galactic community. Membership of the Hadiist Party is not open. \ For anyone to become a member, they must be approved by a committee that will consider their qualifications and past. Goverment officials can grant honorary memberships, this is \ - seem as nothing but a honor and does not grant any status or position that a regular Party member would have." + seen as nothing but a honor and does not grant any status or position that a regular Party member would have." w_class = ITEMSIZE_TINY flippable = TRUE v_flippable = FALSE diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index b8d3c53d3a1..e7c15cd9a68 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -4513,6 +4513,19 @@ M.dizziness += 5 M.drowsyness = 0 +/decl/reagent/drink/hrozamal_soda + name = "Hro'zamal Soda" + description = "A cabornated version of the herbal tea made with Hro'zamal Ras'Nifs powder." + color = "#F0C56C" + adj_sleepy = -1 + caffeine = 0.2 + taste_description = "carbonated fruit sweetness" + carbonated = TRUE + + glass_icon_state = "hrozamal_soda_glass" + glass_name = "glass of Hro'zamal Soda" + glass_desc = "A cabornated version of the herbal tea made with Hro'zamal Ras'Nifs powder." + /decl/reagent/nutriment/pumpkinpulp name = "Pumpkin Pulp" description = "The gooey insides of a slain pumpkin. This day is the greatest..." diff --git a/code/modules/reagents/reagent_containers/food/cans.dm b/code/modules/reagents/reagent_containers/food/cans.dm index b120b33bba4..5e553e7efb8 100644 --- a/code/modules/reagents/reagent_containers/food/cans.dm +++ b/code/modules/reagents/reagent_containers/food/cans.dm @@ -451,3 +451,14 @@ icon_state = "three_towns_cider" center_of_mass = list("x"=16, "y"=10) reagents_to_add = list(/decl/reagent/alcohol/butanol/threetownscider = 30) + +/obj/item/reagent_containers/food/drinks/cans/hrozamal_soda + name = "Hro'zamal Soda" + desc = "A can of Hro'zamal Soda. Made with Hro'zamal Ras'Nifs powder and canned in the People's Republic of Adhomai." + desc_fluff = "Hro'zamal Soda is a soft drink made from the seed's powder of a plant native to Hro'zamal, the sole Hadiist colony. While initially consumed as a herbal tea by the \ + colonists, it was introduced to Adhomai by the Army Expeditionary Force and transformed into a carbonated drink. The beverage is popular with factory workers and university \ + students because of its stimulant effect." + icon_state = "hrozamal_soda_can" + center_of_mass = list("x"=16, "y"=10) + + reagents_to_add = list(/decl/reagent/drink/hrozamal_soda = 30) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm index 02088c8e9c5..92f2b8c67f9 100644 --- a/code/modules/reagents/reagent_containers/food/drinks/bottle.dm +++ b/code/modules/reagents/reagent_containers/food/drinks/bottle.dm @@ -433,6 +433,17 @@ shatter_material = MATERIAL_PLASTIC fragile = 0 +/obj/item/reagent_containers/food/drinks/bottle/hrozamal_soda + name = "Hro'zamal Soda" + desc = "A bottle of Hro'zamal Soda. Made with Hro'zamal Ras'Nifs powder and bottled in the People's Republic of Adhomai." + desc_fluff = "Hro'zamal Soda is a soft drink made from the seed's powder of a plant native to Hro'zamal, the sole Hadiist colony. While initially consumed as a herbal tea by the \ + colonists, it was introduced to Adhomai by the Army Expeditionary Force and transformed into a carbonated drink. The beverage is popular with factory workers and university \ + students because of its stimulant effect." + icon_state = "hrozamal_soda_bottle" + center_of_mass = list("x"=16, "y"=5) + reagents_to_add = list(/decl/reagent/drink/hrozamal_soda = 100) + fragile = FALSE + /obj/item/reagent_containers/food/drinks/bottle/pwine name = "Chip Getmore's Velvet" desc = "What a delightful packaging for a surely high quality wine! The vintage must be amazing!" diff --git a/code/modules/reagents/reagent_containers/food/lunch.dm b/code/modules/reagents/reagent_containers/food/lunch.dm index 3bc5d79c334..7d014a7a29b 100644 --- a/code/modules/reagents/reagent_containers/food/lunch.dm +++ b/code/modules/reagents/reagent_containers/food/lunch.dm @@ -65,7 +65,8 @@ var/list/lunchables_drinks_ = list( /obj/item/reagent_containers/food/drinks/cans/tonic, /obj/item/reagent_containers/food/drinks/cans/sodawater, /obj/item/reagent_containers/food/drinks/cans/adhomai_milk, - /obj/item/reagent_containers/food/drinks/cans/beetle_milk + /obj/item/reagent_containers/food/drinks/cans/beetle_milk, + /obj/item/reagent_containers/food/drinks/cans/hrozamal_soda ) // This default list is a bit different, it contains items we don't want diff --git a/html/changelogs/alberyk-hadiisoda.yml b/html/changelogs/alberyk-hadiisoda.yml new file mode 100644 index 00000000000..b7def95caf4 --- /dev/null +++ b/html/changelogs/alberyk-hadiisoda.yml @@ -0,0 +1,6 @@ +author: Alberyk, Canon35 + +delete-after: True + +changes: + - rscadd: "Added Hro'zamal Soda." diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 7c17910006396c9b61da591d4c3d865cdc4a02f4..aec5517b34c0d419a137f778d746919164b8fcce 100644 GIT binary patch delta 10196 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 qFb3j=0Hpu5tw`i?Wd2VN3q`!lVcV?EMk`t8> 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 diff --git a/icons/obj/drinks_empty.dmi b/icons/obj/drinks_empty.dmi index 5f314f5f04d564dca909816b8ed52a3daf1d3f2f..76893ee74668a083538f382328f917ac0fdac2b5 100644 GIT binary patch literal 14768 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 W8Nkvdz=FKA2gph)N|cM~1^gFR-uZX{ diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi index e5ef1b352cb3dfdde5fc8a1fc7f49879229b9bcc..b61c42c10e3087640efed4f3b9aad1f5d98eea24 100644 GIT binary patch delta 6896 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 Date: Thu, 4 Mar 2021 00:32:11 +0000 Subject: [PATCH 02/38] "[ci skip] Automatic Build - 2021.03.04.00.32.11" --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/alberyk-hadiisoda.yml | 6 ------ 3 files changed, 9 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/alberyk-hadiisoda.yml diff --git a/html/changelog.html b/html/changelog.html index c8100bf66e0..fb8f6a31c93 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -35,6 +35,12 @@ -->
+

04 March 2021

+

Alberyk, Canon35 updated:

+
    +
  • Added Hro'zamal Soda.
  • +
+

03 March 2021

Carpe Venenum updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index b3424ec7833..6ba6d01ff16 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18674,3 +18674,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. it was previously not in line with the rest when it comes to colour. - rscadd: Tajara can now pick from a selection of closed boots that aren't toeless in their xenoware section. These are the black boots and workboots. +2021-03-04: + Alberyk, Canon35: + - rscadd: Added Hro'zamal Soda. diff --git a/html/changelogs/alberyk-hadiisoda.yml b/html/changelogs/alberyk-hadiisoda.yml deleted file mode 100644 index b7def95caf4..00000000000 --- a/html/changelogs/alberyk-hadiisoda.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Alberyk, Canon35 - -delete-after: True - -changes: - - rscadd: "Added Hro'zamal Soda." From 6774c446047fed59f7459d10e0d710613527869a Mon Sep 17 00:00:00 2001 From: Alberyk Date: Thu, 4 Mar 2021 07:49:57 -0300 Subject: [PATCH 03/38] Fixed disposals not causing damage (#11362) --- code/modules/recycling/disposal.dm | 2 +- html/changelogs/Alberyk_trashride.yml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/Alberyk_trashride.yml diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 52e3831820b..e70b2ae8ad4 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -638,7 +638,7 @@ if (hasmob && prob(3)) for(var/mob/living/H in src) if(!istype(H,/mob/living/silicon/robot/drone)) //Drones use the mailing code to move through the disposal system, - H.take_overall_damage(20, 0, "Blunt Trauma")//horribly maim any living creature jumping down disposals. c'est la vie + H.take_overall_damage(20, 0, DAM_SHARP, "Blunt Trauma")//horribly maim any living creature jumping down disposals. c'est la vie var/obj/structure/disposalpipe/curr = loc if (!loc) diff --git a/html/changelogs/Alberyk_trashride.yml b/html/changelogs/Alberyk_trashride.yml new file mode 100644 index 00000000000..3d68ecccc3d --- /dev/null +++ b/html/changelogs/Alberyk_trashride.yml @@ -0,0 +1,6 @@ +author: Alberyk + +delete-after: True + +changes: + - bugfix: "Fixed jumping down disposals causing no damage." \ No newline at end of file From 834463923975036333f3724d1925af698bca09b0 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Thu, 4 Mar 2021 10:50:44 +0000 Subject: [PATCH 04/38] "[ci skip] Automatic Build - 2021.03.04.10.50.44" --- html/changelog.html | 4 ++++ html/changelogs/.all_changelog.yml | 2 ++ html/changelogs/Alberyk_trashride.yml | 6 ------ 3 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/Alberyk_trashride.yml diff --git a/html/changelog.html b/html/changelog.html index fb8f6a31c93..10b4595818a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -36,6 +36,10 @@

    04 March 2021

    +

    Alberyk updated:

    +
      +
    • Fixed jumping down disposals causing no damage.
    • +

    Alberyk, Canon35 updated:

    • Added Hro'zamal Soda.
    • diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 6ba6d01ff16..7aa5df8423c 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18675,5 +18675,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: Tajara can now pick from a selection of closed boots that aren't toeless in their xenoware section. These are the black boots and workboots. 2021-03-04: + Alberyk: + - bugfix: Fixed jumping down disposals causing no damage. Alberyk, Canon35: - rscadd: Added Hro'zamal Soda. diff --git a/html/changelogs/Alberyk_trashride.yml b/html/changelogs/Alberyk_trashride.yml deleted file mode 100644 index 3d68ecccc3d..00000000000 --- a/html/changelogs/Alberyk_trashride.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Alberyk - -delete-after: True - -changes: - - bugfix: "Fixed jumping down disposals causing no damage." \ No newline at end of file From 5a09f7bd5b5e187c6dfab41e01a2ce3e19e84ca8 Mon Sep 17 00:00:00 2001 From: WickedCybs <52309324+WickedCybs@users.noreply.github.com> Date: Thu, 4 Mar 2021 04:46:56 -0700 Subject: [PATCH 05/38] "Spiderling Infestation" to "Greimorian Infestation" (#11367) --- code/modules/events/infestation.dm | 2 +- html/changelogs/wickedcybs_fix.yml | 41 ++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/wickedcybs_fix.yml diff --git a/code/modules/events/infestation.dm b/code/modules/events/infestation.dm index e717a4542b7..9437d66ec39 100644 --- a/code/modules/events/infestation.dm +++ b/code/modules/events/infestation.dm @@ -116,7 +116,7 @@ chosen_mob_types += chosen_slime_type if(INFESTATION_SPIDERLINGS) - event_name = "Spiderling Infestation" + event_name = "Greimorian Infestation" chosen_verb = "have burrowed into" for(var/i = 1, i < rand(3,6),i++) chosen_mob_types += /obj/effect/spider/spiderling diff --git a/html/changelogs/wickedcybs_fix.yml b/html/changelogs/wickedcybs_fix.yml new file mode 100644 index 00000000000..4fbb6b66e84 --- /dev/null +++ b/html/changelogs/wickedcybs_fix.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: WickedCybs + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "The spiderling infestation announcement now references greimorians." From e9eb6b50117e42ad4cdec5a6ba300e60765d91a3 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Thu, 4 Mar 2021 11:47:36 +0000 Subject: [PATCH 06/38] "[ci skip] Automatic Build - 2021.03.04.11.47.36" --- html/changelog.html | 4 +++ html/changelogs/.all_changelog.yml | 2 ++ html/changelogs/wickedcybs_fix.yml | 41 ------------------------------ 3 files changed, 6 insertions(+), 41 deletions(-) delete mode 100644 html/changelogs/wickedcybs_fix.yml diff --git a/html/changelog.html b/html/changelog.html index 10b4595818a..1be911fa538 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -44,6 +44,10 @@
      • Added Hro'zamal Soda.
      +

      WickedCybs updated:

      +
        +
      • The spiderling infestation announcement now references greimorians.
      • +

      03 March 2021

      Carpe Venenum updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 7aa5df8423c..2ea7b32a073 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18679,3 +18679,5 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Fixed jumping down disposals causing no damage. Alberyk, Canon35: - rscadd: Added Hro'zamal Soda. + WickedCybs: + - bugfix: The spiderling infestation announcement now references greimorians. diff --git a/html/changelogs/wickedcybs_fix.yml b/html/changelogs/wickedcybs_fix.yml deleted file mode 100644 index 4fbb6b66e84..00000000000 --- a/html/changelogs/wickedcybs_fix.yml +++ /dev/null @@ -1,41 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: WickedCybs - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "The spiderling infestation announcement now references greimorians." From 36df63f1ffd874431347814fa97a5cf3b2af3541 Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Thu, 4 Mar 2021 16:02:25 +0100 Subject: [PATCH 07/38] Correctly flags blaster bolts as laser damage. (#11366) --- code/modules/projectiles/projectile/energy.dm | 2 +- html/changelogs/mattatlas-lmaosecurity.yml | 41 +++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/mattatlas-lmaosecurity.yml diff --git a/code/modules/projectiles/projectile/energy.dm b/code/modules/projectiles/projectile/energy.dm index 4e8565cee50..7ffa1f2be3d 100644 --- a/code/modules/projectiles/projectile/energy.dm +++ b/code/modules/projectiles/projectile/energy.dm @@ -197,6 +197,7 @@ damage = 30 check_armor = "laser" damage_type = BURN + damage_flags = DAM_LASER pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE muzzle_type = /obj/effect/projectile/muzzle/bolt hit_effect = /obj/effect/temp_visual/blaster_effect @@ -216,7 +217,6 @@ pass_flags = PASSTABLE muzzle_type = /obj/effect/projectile/muzzle/bolt - /obj/item/projectile/energy/blaster/heavy damage = 35 diff --git a/html/changelogs/mattatlas-lmaosecurity.yml b/html/changelogs/mattatlas-lmaosecurity.yml new file mode 100644 index 00000000000..2ab8fd2f4d2 --- /dev/null +++ b/html/changelogs/mattatlas-lmaosecurity.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Lethal blaster bolts now correctly go through laser armor." From 2c93c7a97fd73ca8566569317ad2dfa3c3f16361 Mon Sep 17 00:00:00 2001 From: Carpe Venenum <17379794+carpevenenum@users.noreply.github.com> Date: Thu, 4 Mar 2021 18:02:41 +0300 Subject: [PATCH 08/38] Circuit sensor and debugger fix (#11345) --- .../integrated_electronics/core/assemblies.dm | 1 + .../integrated_electronics/core/tools.dm | 2 +- html/changelogs/carpevenenum - sensorfix.yml | 41 +++++++++++++++++++ 3 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/carpevenenum - sensorfix.yml diff --git a/code/modules/integrated_electronics/core/assemblies.dm b/code/modules/integrated_electronics/core/assemblies.dm index 5ecece3157f..289b98f4100 100644 --- a/code/modules/integrated_electronics/core/assemblies.dm +++ b/code/modules/integrated_electronics/core/assemblies.dm @@ -7,6 +7,7 @@ w_class = ITEMSIZE_SMALL icon = 'icons/obj/assemblies/electronic_setups.dmi' icon_state = "setup_small" + flags = NOBLUDGEON var/max_components = IC_COMPONENTS_BASE var/max_complexity = IC_COMPLEXITY_BASE var/opened = 0 diff --git a/code/modules/integrated_electronics/core/tools.dm b/code/modules/integrated_electronics/core/tools.dm index cb82d8ac7a1..5052ea23b50 100644 --- a/code/modules/integrated_electronics/core/tools.dm +++ b/code/modules/integrated_electronics/core/tools.dm @@ -109,7 +109,7 @@ settings to specific circuits, or for debugging purposes. It can also pulse activation pins." icon = 'icons/obj/assemblies/electronic_tools.dmi' icon_state = "debugger" - flags = CONDUCT + flags = CONDUCT | NOBLUDGEON w_class = ITEMSIZE_SMALL var/data_to_write = null var/accepting_refs = 0 diff --git a/html/changelogs/carpevenenum - sensorfix.yml b/html/changelogs/carpevenenum - sensorfix.yml new file mode 100644 index 00000000000..971d5bb86ae --- /dev/null +++ b/html/changelogs/carpevenenum - sensorfix.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Carpe Venenum + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "You can now properly scan people with circuit debuggers and integrated circuit sensors." From 4922b6df0297995fda1baaac06d710f685d0f7bb Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Thu, 4 Mar 2021 15:03:58 +0000 Subject: [PATCH 09/38] "[ci skip] Automatic Build - 2021.03.04.15.03.58" --- html/changelog.html | 8 ++++ html/changelogs/.all_changelog.yml | 5 +++ html/changelogs/carpevenenum - sensorfix.yml | 41 -------------------- html/changelogs/mattatlas-lmaosecurity.yml | 41 -------------------- 4 files changed, 13 insertions(+), 82 deletions(-) delete mode 100644 html/changelogs/carpevenenum - sensorfix.yml delete mode 100644 html/changelogs/mattatlas-lmaosecurity.yml diff --git a/html/changelog.html b/html/changelog.html index 1be911fa538..e00d3369f0a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -44,6 +44,14 @@
      • Added Hro'zamal Soda.
      +

      Carpe Venenum updated:

      +
        +
      • You can now properly scan people with circuit debuggers and integrated circuit sensors.
      • +
      +

      MattAtlas updated:

      +
        +
      • Lethal blaster bolts now correctly go through laser armor.
      • +

      WickedCybs updated:

      • The spiderling infestation announcement now references greimorians.
      • diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 2ea7b32a073..e96a8ffe482 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18679,5 +18679,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Fixed jumping down disposals causing no damage. Alberyk, Canon35: - rscadd: Added Hro'zamal Soda. + Carpe Venenum: + - bugfix: You can now properly scan people with circuit debuggers and integrated + circuit sensors. + MattAtlas: + - bugfix: Lethal blaster bolts now correctly go through laser armor. WickedCybs: - bugfix: The spiderling infestation announcement now references greimorians. diff --git a/html/changelogs/carpevenenum - sensorfix.yml b/html/changelogs/carpevenenum - sensorfix.yml deleted file mode 100644 index 971d5bb86ae..00000000000 --- a/html/changelogs/carpevenenum - sensorfix.yml +++ /dev/null @@ -1,41 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: Carpe Venenum - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "You can now properly scan people with circuit debuggers and integrated circuit sensors." diff --git a/html/changelogs/mattatlas-lmaosecurity.yml b/html/changelogs/mattatlas-lmaosecurity.yml deleted file mode 100644 index 2ab8fd2f4d2..00000000000 --- a/html/changelogs/mattatlas-lmaosecurity.yml +++ /dev/null @@ -1,41 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: MattAtlas - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "Lethal blaster bolts now correctly go through laser armor." From e7eef8b7db9f34363954a4e0a5364999a56ec7dc Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Thu, 4 Mar 2021 16:52:27 +0100 Subject: [PATCH 10/38] Fixes rig armor not working and some other armor stuff. (#11365) --- code/__defines/armor.dm | 1 + code/datums/components/armor/armor.dm | 9 +++- code/game/objects/items.dm | 2 +- code/modules/clothing/clothing.dm | 16 ++++--- code/modules/clothing/head/misc_special.dm | 2 +- code/modules/clothing/spacesuits/rig/rig.dm | 17 ++++---- .../clothing/spacesuits/rig/suits/alien.dm | 2 +- code/modules/clothing/suits/miscellaneous.dm | 2 +- .../modules/heavy_vehicle/components/armor.dm | 2 +- .../mob/living/carbon/carbon_defense.dm | 5 ++- html/changelogs/mattatlas-livgardet.yml | 43 +++++++++++++++++++ 11 files changed, 80 insertions(+), 21 deletions(-) create mode 100644 html/changelogs/mattatlas-livgardet.yml diff --git a/code/__defines/armor.dm b/code/__defines/armor.dm index df211842e9d..ddba38187b1 100644 --- a/code/__defines/armor.dm +++ b/code/__defines/armor.dm @@ -2,6 +2,7 @@ // Some levels are marked with what they intend to block in such way. #define ARMOR_TYPE_STANDARD 1 #define ARMOR_TYPE_EXOSUIT 2 +#define ARMOR_TYPE_RIG 4 #define ARMOR_BALLISTIC_MINOR 10 #define ARMOR_BALLISTIC_SMALL 25 diff --git a/code/datums/components/armor/armor.dm b/code/datums/components/armor/armor.dm index d9ac8dafa7b..1c5b7ed24f7 100644 --- a/code/datums/components/armor/armor.dm +++ b/code/datums/components/armor/armor.dm @@ -16,10 +16,14 @@ // E.g. setting it to more than 1 will make mitigation drop off faster, effectively reducing the range of damage mitigation var/over_armor_mult = 1 -/datum/component/armor/Initialize(list/armor) + var/sealed = FALSE // Used with ARMOR_TYPE_RIG. + +/datum/component/armor/Initialize(list/armor, armor_type) ..() if(armor) armor_values = armor.Copy() + if(armor_type) + armor_flags = armor_type // Takes in incoming damage value // Applies state changes to self, holder, and whatever else caused by damage mitigation @@ -71,6 +75,9 @@ /datum/component/armor/proc/get_value(key) if(isnull(armor_values[key])) return 0 + if(armor_flags & ARMOR_TYPE_RIG) + if(key == "bio" && sealed) + return 100 return min(armor_values[key], 100) /datum/component/armor/proc/set_value(key, newval) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 46704e8d9c7..18a4ec3b383 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -103,7 +103,7 @@ if(islist(armor)) for(var/type in armor) if(armor[type]) - AddComponent(/datum/component/armor, armor, armor_degradation_speed) + AddComponent(/datum/component/armor, armor) break /obj/item/Destroy() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index a6ba99a0fb5..4b76e1a205e 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -251,11 +251,17 @@ for(var/number in list(melee_armor, bullet_armor, laser_armor, energy_armor, bomb_armor)) number = between(0, number, 100) - armor["melee"] = melee_armor - armor["bullet"] = bullet_armor - armor["laser"] = laser_armor - armor["energy"] = energy_armor - armor["bomb"] = bomb_armor + var/datum/component/armor/armor_component = GetComponent(/datum/component/armor) + if(istype(armor_component)) + armor_component.RemoveComponent() + var/list/armor_list = list( + melee = melee_armor, + bullet = bullet_armor, + laser = laser_armor, + energy = energy_armor, + bomb = bomb_armor + ) + AddComponent(/datum/component/armor, armor_list) if(!isnull(material.conductivity)) siemens_coefficient = between(0, material.conductivity / 10, 10) diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index efb4fb0b8ba..bc1d9ffeee8 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -272,4 +272,4 @@ w_class = ITEMSIZE_SMALL body_parts_covered = HEAD attack_verb = list("warned", "cautioned", "smashed") - armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) diff --git a/code/modules/clothing/spacesuits/rig/rig.dm b/code/modules/clothing/spacesuits/rig/rig.dm index a828d31ae32..22b4ae74261 100644 --- a/code/modules/clothing/spacesuits/rig/rig.dm +++ b/code/modules/clothing/spacesuits/rig/rig.dm @@ -166,7 +166,11 @@ piece.permeability_coefficient = permeability_coefficient piece.unacidable = unacidable piece.species_restricted = species_restricted - if(islist(armor)) piece.armor = armor.Copy() + if(islist(armor)) + var/datum/component/armor/armor_component = piece.GetComponent(/datum/component/armor) + if(istype(armor_component)) + armor_component.RemoveComponent() + piece.AddComponent(/datum/component/armor, armor, ARMOR_TYPE_STANDARD|ARMOR_TYPE_RIG) set_vision(!offline) update_icon(1) @@ -288,12 +292,9 @@ helmet.update_light(wearer) //sealed pieces become airtight, protecting against diseases - if (!seal_target) - LAZYINITLIST(piece.armor) - piece.armor["bio"] = 100 - else - LAZYINITLIST(piece.armor) - piece.armor["bio"] = LAZYACCESS(src.armor, "bio") || 0 + var/datum/component/armor/armor_component = piece.GetComponent(/datum/component/armor) + if(istype(armor_component)) + armor_component.sealed = !seal_target playsound(src, "[!seal_target ? 'sound/machines/rig/rig_deploy.ogg' : 'sound/machines/rig/rig_retract.ogg']", 20, FALSE) else @@ -670,7 +671,7 @@ equip_to = slot_shoes use_obj = boots check_slot = wearer.shoes - if(BP_CHEST) + if("chest") equip_to = slot_wear_suit use_obj = chest check_slot = wearer.wear_suit diff --git a/code/modules/clothing/spacesuits/rig/suits/alien.dm b/code/modules/clothing/spacesuits/rig/suits/alien.dm index 7157c3266b3..014b7e310df 100644 --- a/code/modules/clothing/spacesuits/rig/suits/alien.dm +++ b/code/modules/clothing/spacesuits/rig/suits/alien.dm @@ -33,7 +33,7 @@ armor = list( melee = ARMOR_MELEE_VERY_HIGH, bullet = ARMOR_BALLISTIC_AP, - laser = ARMOR_LASER_MAJOR, + laser = ARMOR_LASER_RIFLES, energy = ARMOR_ENERGY_STRONG, bomb = ARMOR_BOMB_RESISTANT, bio = ARMOR_BIO_SHIELDED, diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 7d05ea75036..8b0d0487e0c 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -576,7 +576,7 @@ w_class = ITEMSIZE_SMALL body_parts_covered = UPPER_TORSO|LOWER_TORSO attack_verb = list("warned", "cautioned", "smashed") - armor = list("melee" = 5, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) + armor = list(melee = 5, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) /obj/item/clothing/suit/caution/attack_self() toggle() diff --git a/code/modules/heavy_vehicle/components/armor.dm b/code/modules/heavy_vehicle/components/armor.dm index 0ad058d1b83..b3c2663c895 100644 --- a/code/modules/heavy_vehicle/components/armor.dm +++ b/code/modules/heavy_vehicle/components/armor.dm @@ -13,7 +13,7 @@ /obj/item/robot_parts/robot_component/armor/mech/Initialize() . = ..() - AddComponent(/datum/component/armor, armor, ARMOR_TYPE_EXOSUIT) + AddComponent(/datum/component/armor, armor, ARMOR_TYPE_STANDARD|ARMOR_TYPE_EXOSUIT) /obj/item/robot_parts/robot_component/armor/mech/radproof name = "radiation-proof armor plating" diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index d98317f8ca1..514316f5c89 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -146,8 +146,9 @@ //presumably, if they are wearing a helmet that stops pressure effects, then it probably covers the throat as well var/obj/item/clothing/head/helmet = get_equipped_item(slot_head) if(istype(helmet) && (helmet.body_parts_covered & HEAD) && (helmet.flags & STOPPRESSUREDAMAGE)) - //we don't do an armor_check here because this is not an impact effect like a weapon swung with momentum, that either penetrates or glances off. - damage_mod = 1.0 - (LAZYACCESS(helmet.armor, "melee")/100) + var/datum/component/armor/armor_component = helmet.GetComponent(/datum/component/armor) + if(armor_component) + damage_mod -= armor_component.get_blocked(BRUTE, damage_flags, W.armor_penetration, W.force*1.5) var/total_damage = 0 for(var/i in 1 to 3) diff --git a/html/changelogs/mattatlas-livgardet.yml b/html/changelogs/mattatlas-livgardet.yml new file mode 100644 index 00000000000..5d1b241d202 --- /dev/null +++ b/html/changelogs/mattatlas-livgardet.yml @@ -0,0 +1,43 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Fixed rig armor suddenly disappearing upon being deployed." + - bugfix: "Fixed various wrong armor definitions." + - bugfix: "Fixed the unathi breacher having wrong armor values for laser defense." \ No newline at end of file From 8c3ae999ef79ab6915f226faa125e2f5e10a5294 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Thu, 4 Mar 2021 15:53:13 +0000 Subject: [PATCH 11/38] "[ci skip] Automatic Build - 2021.03.04.15.53.13" --- html/changelog.html | 3 ++ html/changelogs/.all_changelog.yml | 3 ++ html/changelogs/mattatlas-livgardet.yml | 43 ------------------------- 3 files changed, 6 insertions(+), 43 deletions(-) delete mode 100644 html/changelogs/mattatlas-livgardet.yml diff --git a/html/changelog.html b/html/changelog.html index e00d3369f0a..8afce9c993c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -51,6 +51,9 @@

        MattAtlas updated:

        • Lethal blaster bolts now correctly go through laser armor.
        • +
        • Fixed rig armor suddenly disappearing upon being deployed.
        • +
        • Fixed various wrong armor definitions.
        • +
        • Fixed the unathi breacher having wrong armor values for laser defense.

        WickedCybs updated:

          diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index e96a8ffe482..82e7fb76289 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18684,5 +18684,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. circuit sensors. MattAtlas: - bugfix: Lethal blaster bolts now correctly go through laser armor. + - bugfix: Fixed rig armor suddenly disappearing upon being deployed. + - bugfix: Fixed various wrong armor definitions. + - bugfix: Fixed the unathi breacher having wrong armor values for laser defense. WickedCybs: - bugfix: The spiderling infestation announcement now references greimorians. diff --git a/html/changelogs/mattatlas-livgardet.yml b/html/changelogs/mattatlas-livgardet.yml deleted file mode 100644 index 5d1b241d202..00000000000 --- a/html/changelogs/mattatlas-livgardet.yml +++ /dev/null @@ -1,43 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: MattAtlas - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "Fixed rig armor suddenly disappearing upon being deployed." - - bugfix: "Fixed various wrong armor definitions." - - bugfix: "Fixed the unathi breacher having wrong armor values for laser defense." \ No newline at end of file From 2a0ab65e640f21bf611069ae4ef6a38d2b745b28 Mon Sep 17 00:00:00 2001 From: MarinaGryphon Date: Thu, 4 Mar 2021 14:19:10 -0600 Subject: [PATCH 12/38] Bugfix Collection (#11371) --- code/controllers/subsystems/chemistry.dm | 20 ++-- code/game/machinery/rechargestation.dm | 3 +- .../modules/cargo/random_stock/t2_uncommon.dm | 6 +- .../loadout/loadout_xeno/tajara.dm | 2 +- .../machinery/cooking_machines/_appliance.dm | 16 ++- .../machinery/cooking_machines/fryer.dm | 8 +- code/modules/cooking/recipes/recipe.dm | 4 +- code/modules/detectivework/tools/rag.dm | 2 +- code/modules/hydroponics/trays/tray_tools.dm | 2 +- code/modules/makeshift/makeshift_reagents.dm | 46 ++++---- .../mob/living/carbon/human/human_movement.dm | 13 +-- code/modules/mob/living/carbon/taste.dm | 6 +- code/modules/mob/say.dm | 2 +- code/modules/reagents/Chemistry-Machinery.dm | 11 +- .../Chemistry-Reagents-Medicine.dm | 16 ++- code/modules/reagents/reagent_containers.dm | 5 + .../reagent_containers/food/snacks.dm | 102 +++++++++--------- code/unit_tests/chemistry_tests.dm | 2 +- config/example/secretchem.json | 8 +- html/changelogs/MDP-bugfixes.yml | 49 +++++++++ 20 files changed, 186 insertions(+), 137 deletions(-) create mode 100644 html/changelogs/MDP-bugfixes.yml diff --git a/code/controllers/subsystems/chemistry.dm b/code/controllers/subsystems/chemistry.dm index bc23c0106b0..4c6085b223c 100644 --- a/code/controllers/subsystems/chemistry.dm +++ b/code/controllers/subsystems/chemistry.dm @@ -87,8 +87,7 @@ var/datum/controller/subsystem/chemistry/SSchemistry initialize_codex_data() var/pre_secret_len = chemical_reactions.len log_ss("chemistry", "Found [pre_secret_len] reactions.") - load_secret_chemicals() - log_ss("chemistry", "Loaded [chemical_reactions.len - pre_secret_len] secret reactions.") + log_ss("chemistry", "Loaded [load_secret_chemicals()] secret reactions.") initialize_specific_heats() // must be after reactions ..() @@ -125,6 +124,7 @@ var/datum/controller/subsystem/chemistry/SSchemistry src.chemical_reactions = SSchemistry.chemical_reactions /datum/controller/subsystem/chemistry/proc/load_secret_chemicals() + . = 0 var/list/chemconfig = list() try chemconfig = json_decode(return_file_text("config/secretchem.json")) @@ -140,24 +140,24 @@ var/datum/controller/subsystem/chemistry/SSchemistry cc.id = chemconfig[chemical]["id"] cc.result = text2path(chemconfig[chemical]["result"]) cc.result_amount = chemconfig[chemical]["resultamount"] - cc.required_reagents = chemconfig[chemical]["required_reagents"] - if(!istype(cc.result, /decl/reagent)) + if(!ispath(cc.result, /decl/reagent)) log_debug("SSchemistry: Warning: Invalid result [cc.result] in [cc.name] reactions list.") qdel(cc) break - for(var/i in 1 to cc.required_reagents.len) - var/A = text2path(cc.required_reagents[i]) - cc.required_reagents[i] = text2path(cc.required_reagents[i]) - if(!ispath(A, /decl/reagent)) - log_debug("SSchemistry: Warning: Invalid chemical [A] in [cc.name] required reagents list.") + for(var/key in chemconfig[chemical]["required_reagents"]) + var/result_chem = text2path(key) + LAZYSET(cc.required_reagents, result_chem, chemconfig[chemical]["required_reagents"][key]) + if(!ispath(result_chem, /decl/reagent)) + log_debug("SSchemistry: Warning: Invalid chemical [key] in [cc.name] required reagents list.") qdel(cc) break - if(LAZYLEN(cc.required_reagents)) + if(LAZYLEN(cc?.required_reagents)) var/rtype = cc.required_reagents[1] LAZYINITLIST(chemical_reactions[rtype]) chemical_reactions[rtype] += cc + .++ //Chemical Reactions - Initialises all /datum/chemical_reaction into a list // It is filtered into multiple lists within a list. diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm index 70f9dc7566d..4940afc7e20 100644 --- a/code/game/machinery/rechargestation.dm +++ b/code/game/machinery/rechargestation.dm @@ -218,9 +218,10 @@ if(!hascell(M)) return + if(!M.Move(src)) + return add_fingerprint(M) M.reset_view(src) - M.forceMove(src) occupant = M update_icon() return 1 diff --git a/code/modules/cargo/random_stock/t2_uncommon.dm b/code/modules/cargo/random_stock/t2_uncommon.dm index 34ada832c7e..32d5b81355c 100644 --- a/code/modules/cargo/random_stock/t2_uncommon.dm +++ b/code/modules/cargo/random_stock/t2_uncommon.dm @@ -93,13 +93,11 @@ STOCK_ITEM_UNCOMMON(chempack, 5) for (var/i in 1 to rand(2, 4)) var/obj/item/reagent_containers/chem_disp_cartridge/C = new /obj/item/reagent_containers/chem_disp_cartridge(L) var/rname = pick(chems) - var/decl/reagent/R = decls_repository.get_decl(rname) - //If we get a drink, reroll it once. //Should result in a higher chance of getting medicines and chemicals - if (istype(R, /decl/reagent/drink) || istype(R, /decl/reagent/alcohol)) + if (ispath(rname, /decl/reagent/drink) || ispath(rname, /decl/reagent/alcohol)) rname = pick(chems) - R = decls_repository.get_decl(rname) + var/decl/reagent/R = decls_repository.get_decl(rname) C.reagents.add_reagent(rname, C.volume) C.setLabel(R.name) diff --git a/code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm b/code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm index d1e63fb721f..d1d64d172cd 100644 --- a/code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm +++ b/code/modules/client/preference_setup/loadout/loadout_xeno/tajara.dm @@ -231,7 +231,7 @@ /datum/gear/shoes/tajara/footwraps display_name = "native tajaran foot-wear" - path = /obj/item/clothing/shoes/tajara + path = /obj/item/clothing/shoes/tajara/footwraps sort_category = "Xenowear - Tajara" whitelisted = list(SPECIES_TAJARA, SPECIES_TAJARA_ZHAN, SPECIES_TAJARA_MSAI) diff --git a/code/modules/cooking/machinery/cooking_machines/_appliance.dm b/code/modules/cooking/machinery/cooking_machines/_appliance.dm index 91c83e0e5f0..b50640222e6 100644 --- a/code/modules/cooking/machinery/cooking_machines/_appliance.dm +++ b/code/modules/cooking/machinery/cooking_machines/_appliance.dm @@ -254,12 +254,11 @@ oilwork(J, CI) for (var/_R in CI.container.reagents.reagent_volumes) - var/decl/reagent/R = decls_repository.get_decl(_R) - if (istype(R, /decl/reagent/nutriment)) + if (ispath(_R, /decl/reagent/nutriment)) CI.max_cookwork += CI.container.reagents.reagent_volumes[_R] *2//Added reagents contribute less than those in food items due to granular form //Nonfat reagents will soak oil - if (!istype(R, /decl/reagent/nutriment/triglyceride)) + if (!ispath(_R, /decl/reagent/nutriment/triglyceride)) CI.max_oil += CI.container.reagents.reagent_volumes[_R] * 0.25 else CI.max_cookwork += CI.container.reagents.reagent_volumes[_R] @@ -275,12 +274,11 @@ var/work = 0 if (istype(S) && S.reagents) for (var/_R in S.reagents.reagent_volumes) - var/decl/reagent/R = decls_repository.get_decl(_R) - if (istype(R, /decl/reagent/nutriment)) + if (ispath(_R, /decl/reagent/nutriment)) work += S.reagents.reagent_volumes[_R] *3//Core nutrients contribute much more than peripheral chemicals //Nonfat reagents will soak oil - if (!istype(R, /decl/reagent/nutriment/triglyceride)) + if (!ispath(_R, /decl/reagent/nutriment/triglyceride)) CI.max_oil += S.reagents.reagent_volumes[_R] * 0.35 else work += S.reagents.reagent_volumes[_R] @@ -575,15 +573,15 @@ result.kitchen_tag = SA.kitchen_tag if (SA.meat_amount) reagent_amount = SA.meat_amount*9 // at a rate of 9 protein per meat - var/decl/reagent/digest_product = victim.get_digestion_product() + var/digest_product_type = victim.get_digestion_product() // DOES NOT RETURN A DECL, RETURNS A PATH var/list/data var/meat_name = result.kitchen_tag || victim.name if(ishuman(victim)) var/mob/living/carbon/human/CH = victim meat_name = CH.species?.name || meat_name - if(istype(digest_product, /decl/reagent/nutriment/protein)) + if(ispath(digest_product_type, /decl/reagent/nutriment/protein)) data = list("[meat_name] meat" = reagent_amount) - result.reagents.add_reagent(victim.get_digestion_product(), reagent_amount, data) + result.reagents.add_reagent(digest_product_type, reagent_amount, data) if (victim.reagents) victim.reagents.trans_to(result, victim.reagents.total_volume) diff --git a/code/modules/cooking/machinery/cooking_machines/fryer.dm b/code/modules/cooking/machinery/cooking_machines/fryer.dm index 25a4f7695ff..4de8faa54cd 100644 --- a/code/modules/cooking/machinery/cooking_machines/fryer.dm +++ b/code/modules/cooking/machinery/cooking_machines/fryer.dm @@ -102,10 +102,9 @@ for (var/obj/item/I in CI.container) if (I.reagents && I.reagents.total_volume) for (var/_R in I.reagents.reagent_volumes) - var/decl/reagent/R = decls_repository.get_decl(_R) - if (istype(R, /decl/reagent/nutriment/triglyceride/oil)) + if (ispath(_R, /decl/reagent/nutriment/triglyceride/oil)) total_oil += I.reagents.reagent_volumes[_R] - if (R.type != our_oil.type) + if (_R != our_oil.type) total_removed += I.reagents.reagent_volumes[_R] I.reagents.remove_reagent(_R, I.reagents.reagent_volumes[_R]) else @@ -206,8 +205,7 @@ //So for now, restrict to oil only var/amount = 0 for (var/_R in I.reagents.reagent_volumes) - var/decl/reagent/R = decls_repository.get_decl(_R) - if (istype(R, /decl/reagent/nutriment/triglyceride/oil)) + if (ispath(_R, /decl/reagent/nutriment/triglyceride/oil)) var/delta = REAGENTS_FREE_SPACE(oil) delta = min(delta, I.reagents.reagent_volumes[_R]) oil.add_reagent(_R, delta) diff --git a/code/modules/cooking/recipes/recipe.dm b/code/modules/cooking/recipes/recipe.dm index 0427336121f..c7e7d67e88b 100644 --- a/code/modules/cooking/recipes/recipe.dm +++ b/code/modules/cooking/recipes/recipe.dm @@ -37,7 +37,7 @@ var/list/reagents // example: = list(/decl/reagent/drink/berryjuice = 5) // do not list same reagent twice var/list/items // example: = list(/obj/item/crowbar, /obj/item/welder) // place /foo/bar before /foo var/list/fruit // example: = list("fruit" = 3) - var/decl/reagent/coating = null//Required coating on all items in the recipe. The default value of null explitly requires no coating + var/coating = null//Required coating on all items in the recipe. The default value of null explitly requires no coating //A value of -1 is permissive and cares not for any coatings //Any typepath indicates a specific coating that should be present //Coatings are used for batter, breadcrumbs, beer-batter, colonel's secret coating, etc @@ -172,7 +172,7 @@ if (coating == -1) return TRUE //-1 value doesnt care - return !coating || (S.coating.type == coating) + return !coating || (S.coating == coating) //general version /decl/recipe/proc/make(var/obj/container as obj) diff --git a/code/modules/detectivework/tools/rag.dm b/code/modules/detectivework/tools/rag.dm index f10a8a8701a..e62977e2686 100644 --- a/code/modules/detectivework/tools/rag.dm +++ b/code/modules/detectivework/tools/rag.dm @@ -144,7 +144,7 @@ for(var/_R in reagents.reagent_volumes) var/decl/reagent/R = decls_repository.get_decl(_R) var/strength = R.germ_adjust * reagents.reagent_volumes[_R]/4 - if(istype(R, /decl/reagent/alcohol)) + if(ispath(_R, /decl/reagent/alcohol)) var/decl/reagent/alcohol/A = R strength = strength * (A.strength/100) W.germ_level -= min(strength, W.germ_level)//Clean the wound a bit. diff --git a/code/modules/hydroponics/trays/tray_tools.dm b/code/modules/hydroponics/trays/tray_tools.dm index 2f8255cd6cb..9587526a4e7 100644 --- a/code/modules/hydroponics/trays/tray_tools.dm +++ b/code/modules/hydroponics/trays/tray_tools.dm @@ -114,7 +114,7 @@ dat += "
          This sample contains: " for(var/_R in grown_reagents.reagent_volumes) var/decl/reagent/R = decls_repository.get_decl(_R) - dat += "
          - [R.name], [REAGENT_VOLUME(grown_reagents, R.type)] unit(s)" + dat += "
          - [R.name], [REAGENT_VOLUME(grown_reagents, _R)] unit(s)" dat += "

          Other Data

          " diff --git a/code/modules/makeshift/makeshift_reagents.dm b/code/modules/makeshift/makeshift_reagents.dm index b5243d5d39a..5730e0aae1e 100644 --- a/code/modules/makeshift/makeshift_reagents.dm +++ b/code/modules/makeshift/makeshift_reagents.dm @@ -185,46 +185,48 @@ var/obj/item/weldingtool/welder /obj/structure/distillery/dismantle() - var/obj/structure/reagent_dispensers/keg/keg = new (loc) - if (src.reagents && src.reagents.total_volume) - src.reagents.trans_to_holder(keg.reagents, src.reagents.total_volume) - new /obj/item/stack/rods(get_turf(src), 3) + var/turf/T = get_turf(src) + var/obj/structure/reagent_dispensers/keg/keg = new (T) + if (reagents?.total_volume) + reagents.trans_to_holder(keg.reagents, reagents.total_volume) + new /obj/item/stack/rods(T, 3) if(welder) - welder.forceMove(loc) + welder.forceMove(T) welder = null qdel(src) /obj/structure/distillery/proc/trans_item(obj/item/W, mob/user) if(transfer_out) if(!reagents.total_volume) - to_chat(user, SPAN_NOTICE("\The [src] is empty.")) + to_chat(user, SPAN_NOTICE("[src] is empty.")) return var/amt = reagents.trans_to_holder(W.reagents, reagents.total_volume) - to_chat(user, SPAN_NOTICE("You fill \the [W] with [amt] units from \the [src].")) + to_chat(user, SPAN_NOTICE("You fill [W] with [amt] units from [src].")) return else - if(!W.reagents || !W.reagents.total_volume) - to_chat(user, SPAN_NOTICE("\The [W] is empty.")) + if(!W.reagents?.total_volume) + to_chat(user, SPAN_NOTICE("[W] is empty.")) return - var/amt = min(10, W.reagents.total_volume) - W.reagents.trans_to_holder(src.reagents, amt) // just pour it if you can - to_chat(user, SPAN_NOTICE("You pour [amt] units from \the [W] into \the [src].")) + var/amt = 5 + if(istype(W, /obj/item/reagent_containers)) + var/obj/item/reagent_containers/reagent_container = W + amt = reagent_container.amount_per_transfer_from_this + W.reagents.trans_to_holder(reagents, amt) // just pour it if you can + to_chat(user, SPAN_NOTICE("You pour [amt] units from [W] into [src].")) return /obj/structure/distillery/proc/distill() - if(!reagents || !reagents.total_volume) // can't distill nothing + if(!reagents?.total_volume) // can't distill nothing return for(var/_R in reagents.reagent_volumes) + if(!ispath(_R, /decl/reagent/alcohol)) + continue var/decl/reagent/alcohol/AR = decls_repository.get_decl(_R) - if(!istype(AR)) - return - var/ARvol = REAGENT_VOLUME(reagents, AR.type) - reagents.add_reagent(/decl/reagent/water, (1-(AR.strength/100))*ARvol) - if(istype(AR, /decl/reagent/alcohol)) - reagents.add_reagent(/decl/reagent/alcohol, (AR.strength/100)*ARvol) - else if(istype(AR, /decl/reagent/alcohol/butanol)) - reagents.add_reagent(/decl/reagent/alcohol/butanol, (AR.strength/100)*ARvol) - reagents.remove_reagent(AR.type, ARvol) + var/ARvol = REAGENT_VOLUME(reagents, _R) + var/alcohol_fraction = AR.strength/100 + reagents.add_reagent(/decl/reagent/water, (1-alcohol_fraction)*ARvol) + reagents.add_reagent(ispath(_R, /decl/reagent/alcohol/butanol) ? /decl/reagent/alcohol/butanol : /decl/reagent/alcohol, alcohol_fraction*ARvol) + reagents.remove_reagent(_R, ARvol) icon_state = "distillery-off" /obj/structure/distillery/attackby(obj/item/W, mob/user) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index d9e15e8b585..fb4daec6c3a 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -148,12 +148,13 @@ var/turf/T = loc var/footsound var/top_layer = 0 - for(var/obj/structure/S in T) - if(S.layer > top_layer && S.footstep_sound) - top_layer = S.layer - footsound = S.footstep_sound - if(!footsound) - footsound = T.footstep_sound + if(istype(T)) + for(var/obj/structure/S in T) + if(S.layer > top_layer && S.footstep_sound) + top_layer = S.layer + footsound = S.footstep_sound + if(!footsound) + footsound = T.footstep_sound if (client) var/turf/B = GetAbove(T) diff --git a/code/modules/mob/living/carbon/taste.dm b/code/modules/mob/living/carbon/taste.dm index f908079052a..ddf1e92f8e9 100644 --- a/code/modules/mob/living/carbon/taste.dm +++ b/code/modules/mob/living/carbon/taste.dm @@ -35,8 +35,8 @@ calculate text size per text. var/decl/reagent/R = decls_repository.get_decl(_R) if(!R.taste_mult) continue - if(R.type == /decl/reagent/nutriment) - var/list/taste_data = REAGENT_DATA(src, R.type) + if(_R == /decl/reagent/nutriment) + var/list/taste_data = REAGENT_DATA(src, _R) for(var/taste in taste_data) if(taste in tastes) tastes[taste] += taste_data[taste] @@ -44,7 +44,7 @@ calculate text size per text. tastes[taste] = taste_data[taste] else var/taste_desc = R.taste_description - var/taste_amount = REAGENT_VOLUME(src, R.type) * R.taste_mult + var/taste_amount = REAGENT_VOLUME(src, _R) * R.taste_mult if(R.taste_description in tastes) tastes[taste_desc] += taste_amount else diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index c463b6d33d1..ac8b2dd0ce9 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -161,7 +161,7 @@ if(length(message) >= 2 && is_language_prefix(prefix)) var/language_prefix = lowertext(copytext(message, 2, 4)) var/datum/language/L = language_keys[language_prefix] - if(!L) + if(!L || !can_speak(L)) language_prefix = lowertext(copytext(message, 2, 3)) L = language_keys[language_prefix] if(can_speak(L)) diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index dab4244c99c..63b1098240a 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -330,6 +330,12 @@ /obj/item/stack/material/glass = list(/decl/reagent/silicate), /obj/item/stack/material/glass/phoronglass = list(/decl/reagent/platinum, /decl/reagent/silicate, /decl/reagent/silicate, /decl/reagent/silicate), //5 platinum, 15 silicate, ) + var/list/beaker_types = list( // also can't be ground + /obj/item/reagent_containers/glass, + /obj/item/reagent_containers/food/drinks/drinkingglass, + /obj/item/reagent_containers/food/drinks/shaker, + /obj/item/reagent_containers/cooking_container + ) /obj/machinery/reagentgrinder/Initialize() . = ..() @@ -340,10 +346,7 @@ return /obj/machinery/reagentgrinder/attackby(var/obj/item/O as obj, var/mob/user as mob) - - if (istype(O,/obj/item/reagent_containers/glass) || \ - istype(O,/obj/item/reagent_containers/food/drinks/drinkingglass) || \ - istype(O,/obj/item/reagent_containers/food/drinks/shaker)) + if (is_type_in_list(O, beaker_types)) if (beaker) return 1 else diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm index 6c36549fc41..bfdf41fa37a 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm @@ -139,13 +139,11 @@ var/removing = (4 * removed) var/datum/reagents/ingested = M.get_ingested_reagents() for(var/_R in ingested.reagent_volumes) - var/decl/reagent/R = decls_repository.get_decl(_R) - if((remove_generic && istype(R, /decl/reagent/toxin)) || (_R in remove_toxins)) - ingested.remove_reagent(R.type, removing) + if((remove_generic && ispath(_R, /decl/reagent/toxin)) || (_R in remove_toxins)) + ingested.remove_reagent(_R, removing) return for(var/_R in M.reagents.reagent_volumes) - var/decl/reagent/R = decls_repository.get_decl(_R) - if((remove_generic && istype(R, /decl/reagent/toxin)) || (_R in remove_toxins)) + if((remove_generic && ispath(_R, /decl/reagent/toxin)) || (_R in remove_toxins)) M.reagents.remove_reagent(_R, removing) return @@ -605,10 +603,9 @@ var/datum/reagents/ingested = M.get_ingested_reagents() if(ingested) for(var/_R in ingested.reagent_volumes) - var/decl/reagent/R = decls_repository.get_decl(_R) - if(istype(R, /decl/reagent/alcohol)) + if(ispath(_R, /decl/reagent/alcohol)) var/amount = min(P, REAGENT_VOLUME(ingested, _R)) - ingested.remove_reagent(R.type, amount) + ingested.remove_reagent(_R, amount) P -= amount if (P <= 0) return @@ -617,8 +614,7 @@ //as a treatment option if someone was dumb enough to do this if(M.bloodstr) for(var/_R in M.bloodstr.reagent_volumes) - var/decl/reagent/R = decls_repository.get_decl(_R) - if(istype(R, /decl/reagent/alcohol)) + if(ispath(_R, /decl/reagent/alcohol)) var/amount = min(P, REAGENT_VOLUME(M.bloodstr, _R)) M.bloodstr.remove_reagent(_R, amount) P -= amount diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 247131ae47c..270fc89ea06 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -79,12 +79,17 @@ qdel(src) /obj/item/reagent_containers/attackby(var/obj/item/W, var/mob/user) + if(istype(W, /obj/item/reagent_containers/food/snacks)) + var/obj/item/reagent_containers/food/snacks/dipped = W + dipped.attempt_apply_coating(src, user) + return if(!(W.flags & NOBLUDGEON) && (user.a_intent == I_HURT) && fragile && (W.force > fragile)) if(do_after(user, 10)) if(!QDELETED(src)) visible_message(SPAN_WARNING("[user] smashes [src] with \a [W]!")) user.do_attack_animation(src) shatter(W, user) + return ..() /obj/item/reagent_containers/attack(mob/M, mob/user, def_zone) diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 64c40bdd51d..0d930cdbb5f 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -11,7 +11,7 @@ var/slices_num var/dried_type = null var/dry = 0 - var/decl/reagent/nutriment/coating/coating = null + var/coating = null // coating typepath, NOT decl var/icon/flat_icon = null //Used to cache a flat icon generated from dipping in batter. This is used again to make the cooked-batter-overlay var/do_coating_prefix = TRUE //If 0, we wont do "battered thing" or similar prefixes. Mainly for recipes that include batter but have a special name @@ -142,7 +142,8 @@ else to_chat(user, SPAN_NOTICE("You know the item as [initial(name)], but a little piece of propped-up paper indicates it's \a [name].")) if (coating) - to_chat(user, SPAN_NOTICE("It's coated in [coating.name]!")) + var/decl/reagent/coating_reagent = decls_repository.get_decl(coating) + to_chat(user, SPAN_NOTICE("It's coated in [coating_reagent.name]!")) if (bitecount==0) return else if (bitecount==1) @@ -256,28 +257,35 @@ return ..() //Code for dipping food in batter -/obj/item/reagent_containers/food/snacks/afterattack(obj/O as obj, mob/user as mob, proximity) - if(O.is_open_container() && !(istype(O, /obj/item/reagent_containers/food)) && proximity) - for (var/r in O.reagents.reagent_volumes) - - var/decl/reagent/R = r - if (istype(R, /decl/reagent/nutriment/coating)) - if (apply_coating(O.reagents, R, user)) - return TRUE - - return ..() +/** + * Perform checks, then apply any applicable coatings. + * + * @param dip /obj The object to attempt to dip src into. + * @param user /mob The mob attempting to dip src into dip. + * + * @return TRUE if coating applied, FALSE otherwise + */ +/obj/item/reagent_containers/food/snacks/proc/attempt_apply_coating(obj/dip, mob/user) + if(!dip.is_open_container() || istype(dip, /obj/item/reagent_containers/food) || !Adjacent(user)) + return + for (var/reagent_type in dip.reagents?.reagent_volumes) + if(!ispath(reagent_type, /decl/reagent/nutriment/coating)) + continue + return apply_coating(dip.reagents, reagent_type, user) //This proc handles drawing coatings out of a container when this food is dipped into it -/obj/item/reagent_containers/food/snacks/proc/apply_coating(var/datum/reagents/holder, var/decl/reagent/nutriment/coating/C, var/mob/user) +/obj/item/reagent_containers/food/snacks/proc/apply_coating(var/datum/reagents/holder, var/applied_coating, var/mob/user) if (coating) - to_chat(user, "The [src] is already coated in [coating.name]!") + var/decl/reagent/coating_reagent = decls_repository.get_decl(coating) + to_chat(user, "[src] is already coated in [coating_reagent.name]!") return FALSE + var/decl/reagent/nutriment/coating/applied_coating_reagent = decls_repository.get_decl(applied_coating) + //Calculate the reagents of the coating needed var/req = 0 for (var/r in reagents.reagent_volumes) - var/decl/reagent/R = r - if (istype(R, /decl/reagent/nutriment)) + if (ispath(r, /decl/reagent/nutriment)) req += reagents.reagent_volumes[r] * 0.2 else req += reagents.reagent_volumes[r] * 0.1 @@ -288,8 +296,8 @@ //the food has no reagents left, it's probably getting deleted soon return FALSE - if (holder.reagent_volumes[C.type] < req) - to_chat(user, SPAN_WARNING("There's not enough [C.name] to coat the [src]!")) + if (holder.reagent_volumes[applied_coating] < req) + to_chat(user, SPAN_WARNING("There's not enough [applied_coating_reagent.name] to coat [src]!")) return FALSE //First make sure there's space for our batter @@ -300,10 +308,10 @@ //Suck the coating out of the holder holder.trans_to_holder(reagents, req) - if (!REAGENT_VOLUME(reagents, C.type)) + if (!REAGENT_VOLUME(reagents, applied_coating)) return - coating = C + coating = applied_coating //Now we have to do the witchcraft with masking images //var/icon/I = new /icon(icon, icon_state) @@ -312,7 +320,7 @@ var/icon/I = flat_icon color = "#FFFFFF" //Some fruits use the color var. Reset this so it doesnt tint the batter I.Blend(new /icon('icons/obj/food_custom.dmi', rgb(255,255,255)),ICON_ADD) - I.Blend(new /icon('icons/obj/food_custom.dmi', coating.icon_raw),ICON_MULTIPLY) + I.Blend(new /icon('icons/obj/food_custom.dmi', applied_coating_reagent.icon_raw),ICON_MULTIPLY) var/image/J = image(I) J.alpha = 200 J.blend_mode = BLEND_OVERLAY @@ -320,13 +328,14 @@ add_overlay(J) if (user) - user.visible_message(SPAN_NOTICE("[user] dips [src] into \the [coating.name]"), SPAN_NOTICE("You dip [src] into \the [coating.name]")) + user.visible_message(SPAN_NOTICE("[user] dips [src] into \the [applied_coating_reagent.name]"), SPAN_NOTICE("You dip [src] into \the [applied_coating_reagent.name]")) return TRUE //Called by cooking machines. This is mainly intended to set properties on the food that differ between raw/cooked /obj/item/reagent_containers/food/snacks/proc/cook() if (coating) + var/decl/reagent/nutriment/coating/our_coating = decls_repository.get_decl(coating) var/list/temp = overlays.Copy() for (var/i in temp) if (istype(i, /image)) @@ -343,22 +352,20 @@ var/icon/I = flat_icon color = "#FFFFFF" //Some fruits use the color var I.Blend(new /icon('icons/obj/food_custom.dmi', rgb(255,255,255)),ICON_ADD) - I.Blend(new /icon('icons/obj/food_custom.dmi', coating.icon_cooked),ICON_MULTIPLY) + I.Blend(new /icon('icons/obj/food_custom.dmi', our_coating.icon_cooked),ICON_MULTIPLY) var/image/J = image(I) J.alpha = 200 J.tag = "coating" add_overlay(J) if (do_coating_prefix == 1) - name = "[coating.coated_adj] [name]" + name = "[our_coating.coated_adj] [name]" for (var/r in reagents.reagent_volumes) - var/decl/reagent/R = r - if (istype(R, /decl/reagent/nutriment/coating)) - var/decl/reagent/nutriment/coating/C = R + if (ispath(r, /decl/reagent/nutriment/coating)) + var/decl/reagent/nutriment/coating/C = decls_repository.get_decl(r) LAZYINITLIST(reagents.reagent_data) - LAZYINITLIST(reagents.reagent_data[r]) - reagents.reagent_data[r]["cooked"] = TRUE + LAZYSET(reagents.reagent_data[r], "cooked", TRUE) C.name = C.cooked_name // A proc for setting various flavors of the same type of food instead of creating new foods with the only difference being a flavor @@ -938,25 +945,19 @@ do_coating_prefix = 0 bitesize = 2 reagents_to_add = list(/decl/reagent/nutriment/protein = 6, /decl/reagent/nutriment/coating/batter = 1.7, /decl/reagent/nutriment/triglyceride/oil = 1.5) - -/obj/item/reagent_containers/food/snacks/sausage/battered/Initialize() - . = ..() - coating = decls_repository.get_decl(/decl/reagent/nutriment/coating/batter) + coating = /decl/reagent/nutriment/coating/batter /obj/item/reagent_containers/food/snacks/jalapeno_poppers name = "jalapeno popper" - desc = "A battered, deep-fried chilli pepper" + desc = "A battered, deep-fried chili pepper" icon_state = "popper" filling_color = "#00AA00" do_coating_prefix = 0 reagents_to_add = list(/decl/reagent/nutriment = 2, /decl/reagent/nutriment/coating/batter = 2, /decl/reagent/nutriment/triglyceride/oil = 2) - reagent_data = list(/decl/reagent/nutriment = list("chilli pepper" = 2)) + reagent_data = list(/decl/reagent/nutriment = list("chili pepper" = 2)) bitesize = 1 - -/obj/item/reagent_containers/food/snacks/jalapeno_poppers/Initialize() - . = ..() - coating = decls_repository.get_decl(/decl/reagent/nutriment/coating/batter) + coating = /decl/reagent/nutriment/coating/batter /obj/item/reagent_containers/food/snacks/donkpocket name = "Donk-pocket" @@ -2313,7 +2314,7 @@ filling_color = "#702708" center_of_mass = list("x"=15, "y"=9) reagents_to_add = list(/decl/reagent/nutriment = 3, /decl/reagent/nutriment/protein = 3, /decl/reagent/capsaicin = 3, /decl/reagent/drink/tomatojuice = 2, /decl/reagent/hyperzine = 5) - reagent_data = list(/decl/reagent/nutriment = list("chilli peppers" = 3)) + reagent_data = list(/decl/reagent/nutriment = list("chili peppers" = 3)) bitesize = 5 /obj/item/reagent_containers/food/snacks/stew/bear @@ -2380,7 +2381,7 @@ filling_color = "#EDDD00" center_of_mass = list("x"=18, "y"=14) reagents_to_add = list(/decl/reagent/nutriment = 8, /decl/reagent/nutriment/protein = 2, /decl/reagent/capsaicin = 2) - reagent_data = list(/decl/reagent/nutriment = list("fresh fries" = 4, "cheese" = 2, "chilli peppers" = 2)) + reagent_data = list(/decl/reagent/nutriment = list("fresh fries" = 4, "cheese" = 2, "chili peppers" = 2)) bitesize = 4 /obj/item/reagent_containers/food/snacks/friedmushroom @@ -3200,7 +3201,7 @@ /obj/item/reagent_containers/food/snacks/sliceable/pizza/crunch/Initialize() . = ..() - coating = decls_repository.get_decl(/decl/reagent/nutriment/coating/batter) + coating = /decl/reagent/nutriment/coating/batter /obj/item/reagent_containers/food/snacks/pizzacrunchslice name = "pizza crunch" @@ -3211,10 +3212,7 @@ center_of_mass = list("x"=18, "y"=13) reagents_to_add = list(/decl/reagent/nutriment = 5, /decl/reagent/nutriment/coating/batter = 2, /decl/reagent/nutriment/triglyceride/oil = 1) reagent_data = list(/decl/reagent/nutriment = list("pizza crust" = 5)) - -/obj/item/reagent_containers/food/snacks/sliceable/pizza/crunch/Initialize() - . = ..() - coating = decls_repository.get_decl(/decl/reagent/nutriment/coating/batter) + coating = /decl/reagent/nutriment/coating/batter /obj/item/pizzabox name = "pizza box" @@ -3463,7 +3461,7 @@ reagents_to_add = list(/decl/reagent/nutriment = 3) reagent_data = list(/decl/reagent/nutriment = list("uncooked dough" = 3)) filling_color = "#EDE0AF" - + /obj/item/reagent_containers/food/snacks/doughslice name = "dough slice" desc = "A building block of an impressive dish." @@ -3516,7 +3514,7 @@ if ("rodent") result = new /obj/item/reagent_containers/food/snacks/burger/mouse(src) to_chat(user, "You make a ratburger!") - + else if(istype(W,/obj/item/reagent_containers/food/snacks)) var/obj/item/reagent_containers/food/snacks/csandwich/roll/R = new(get_turf(src)) R.attackby(W,user) @@ -3647,7 +3645,7 @@ reagents_to_add = list(/decl/reagent/nutriment = 3) reagent_data = list(/decl/reagent/nutriment = list("uncooked potatos" = 3)) filling_color = "#EDF291" - + /obj/item/reagent_containers/food/snacks/liquidfood name = "LiquidFood ration" desc = "A prepackaged grey slurry of all the essential nutrients for a spacefarer on the go. Should this be crunchy? Now with artificial flavoring!" @@ -4056,7 +4054,7 @@ reagents_to_add = list(/decl/reagent/nutriment = 2) reagent_data = list(/decl/reagent/nutriment = list("nacho chips" = 1)) filling_color = "#EDF291" - + /obj/item/reagent_containers/food/snacks/chip/on_consume(mob/M as mob) if(reagents && reagents.total_volume) @@ -4224,7 +4222,7 @@ reagents_to_add = list(/decl/reagent/nutriment = 20) reagent_data = list(/decl/reagent/nutriment = list("salsa" = 20)) filling_color = "#FF4D36" - + /obj/item/reagent_containers/food/snacks/dip/guac name = "guac dip" desc = "A recreation of the ancient Sol 'Guacamole' dip using tofu, limes, and spices. This recreation obviously leaves out mole meat." @@ -4474,7 +4472,7 @@ reagents_to_add = list(/decl/reagent/nutriment = 8) reagent_data = list(/decl/reagent/nutriment = list("cheese toast" = 8)) filling_color = "#FFF97D" - + /obj/item/reagent_containers/food/snacks/bacon_and_eggs name = "bacon and eggs" desc = "A piece of bacon and two fried eggs." diff --git a/code/unit_tests/chemistry_tests.dm b/code/unit_tests/chemistry_tests.dm index 35fc755a910..51b89f9d2a5 100644 --- a/code/unit_tests/chemistry_tests.dm +++ b/code/unit_tests/chemistry_tests.dm @@ -15,7 +15,7 @@ datum/unit_test/specific_heat/start_test() for(var/reagent in decls_repository.get_decls_of_subtype(/decl/reagent/)) var/decl/reagent/R = reagent if(!SSchemistry.has_valid_specific_heat(R)) - log_unit_test("[ascii_red][R.type] lacks a proper specific heat value![ascii_reset]") + log_unit_test("[ascii_red][reagent] lacks a proper specific heat value![ascii_reset]") error_count++ if(error_count) diff --git a/config/example/secretchem.json b/config/example/secretchem.json index a43bd9975fd..eb686317304 100644 --- a/config/example/secretchem.json +++ b/config/example/secretchem.json @@ -3,12 +3,12 @@ "superrine": { "name": "super rine", "id": "superrine", - "result": "water", + "result": "/decl/reagent/water", "resultamount": 60, "required_reagents": { - "water": 1, - "sugar": 1 + "/decl/reagent/water": 1, + "/decl/reagent/sugar": 1 } } } -} \ No newline at end of file +} diff --git a/html/changelogs/MDP-bugfixes.yml b/html/changelogs/MDP-bugfixes.yml new file mode 100644 index 00000000000..4376b267f40 --- /dev/null +++ b/html/changelogs/MDP-bugfixes.yml @@ -0,0 +1,49 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MoondancerPony + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Cooking containers are now acceptable containers for blenders, and also won't be ground up." + - refactor: "Converts a lot of reagent decl istypes to ispaths, which might cause a speedup." + - bugfix: "Ya'ssa will now properly handle messages starting with S that have no space between it and the key." + - bugfix: "Native Tajaran footwear selected from the loadout will now spawn properly." + - bugfix: "Fixes makeshift distilleries." + - bugfix: "You can no longer charge remotely by abusing a wheelchair and a cyborg charger." + - bugfix: "Fixes batter." + - tweak: "Batter is now applied by clicking a container with food in your hand." + - bugfix: "Secret chems now load properly." From a39cccf31418deb74d584a8c00e431a821afad17 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Thu, 4 Mar 2021 20:19:58 +0000 Subject: [PATCH 13/38] "[ci skip] Automatic Build - 2021.03.04.20.19.58" --- html/changelog.html | 12 ++++++++ html/changelogs/.all_changelog.yml | 14 +++++++++ html/changelogs/MDP-bugfixes.yml | 49 ------------------------------ 3 files changed, 26 insertions(+), 49 deletions(-) delete mode 100644 html/changelogs/MDP-bugfixes.yml diff --git a/html/changelog.html b/html/changelog.html index 8afce9c993c..ee1a1da4016 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,18 @@
        • Fixed various wrong armor definitions.
        • Fixed the unathi breacher having wrong armor values for laser defense.
        +

        MoondancerPony updated:

        +
          +
        • Cooking containers are now acceptable containers for blenders, and also won't be ground up.
        • +
        • Converts a lot of reagent decl istypes to ispaths, which might cause a speedup.
        • +
        • Ya'ssa will now properly handle messages starting with S that have no space between it and the key.
        • +
        • Native Tajaran footwear selected from the loadout will now spawn properly.
        • +
        • Fixes makeshift distilleries.
        • +
        • You can no longer charge remotely by abusing a wheelchair and a cyborg charger.
        • +
        • Fixes batter.
        • +
        • Batter is now applied by clicking a container with food in your hand.
        • +
        • Secret chems now load properly.
        • +

        WickedCybs updated:

        • The spiderling infestation announcement now references greimorians.
        • diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 82e7fb76289..ed2d9a8ec17 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18687,5 +18687,19 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Fixed rig armor suddenly disappearing upon being deployed. - bugfix: Fixed various wrong armor definitions. - bugfix: Fixed the unathi breacher having wrong armor values for laser defense. + MoondancerPony: + - bugfix: Cooking containers are now acceptable containers for blenders, and also + won't be ground up. + - refactor: Converts a lot of reagent decl istypes to ispaths, which might cause + a speedup. + - bugfix: Ya'ssa will now properly handle messages starting with S that have + no space between it and the key. + - bugfix: Native Tajaran footwear selected from the loadout will now spawn properly. + - bugfix: Fixes makeshift distilleries. + - bugfix: You can no longer charge remotely by abusing a wheelchair and a cyborg + charger. + - bugfix: Fixes batter. + - tweak: Batter is now applied by clicking a container with food in your hand. + - bugfix: Secret chems now load properly. WickedCybs: - bugfix: The spiderling infestation announcement now references greimorians. diff --git a/html/changelogs/MDP-bugfixes.yml b/html/changelogs/MDP-bugfixes.yml deleted file mode 100644 index 4376b267f40..00000000000 --- a/html/changelogs/MDP-bugfixes.yml +++ /dev/null @@ -1,49 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: MoondancerPony - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "Cooking containers are now acceptable containers for blenders, and also won't be ground up." - - refactor: "Converts a lot of reagent decl istypes to ispaths, which might cause a speedup." - - bugfix: "Ya'ssa will now properly handle messages starting with S that have no space between it and the key." - - bugfix: "Native Tajaran footwear selected from the loadout will now spawn properly." - - bugfix: "Fixes makeshift distilleries." - - bugfix: "You can no longer charge remotely by abusing a wheelchair and a cyborg charger." - - bugfix: "Fixes batter." - - tweak: "Batter is now applied by clicking a container with food in your hand." - - bugfix: "Secret chems now load properly." From 1285d178222ea349a3a0f274fbf680547590a8aa Mon Sep 17 00:00:00 2001 From: Alberyk Date: Thu, 4 Mar 2021 19:33:06 -0300 Subject: [PATCH 14/38] Destroying the floor no long creates asteroid floor (#11348) --- code/game/turfs/simulated.dm | 2 ++ html/changelogs/alberyk-thefloorislava.yml | 6 ++++++ maps/aurora/code/aurora.dm | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/alberyk-thefloorislava.yml diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 8eb94ee3f8e..c8664995f7d 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -15,6 +15,8 @@ roof_type = /turf/simulated/floor/airless/ceiling + baseturf = /turf/space + /turf/simulated/proc/wet_floor(var/apply_type = WET_TYPE_WATER, var/amount = 1) //Wet type: diff --git a/html/changelogs/alberyk-thefloorislava.yml b/html/changelogs/alberyk-thefloorislava.yml new file mode 100644 index 00000000000..65c884204d5 --- /dev/null +++ b/html/changelogs/alberyk-thefloorislava.yml @@ -0,0 +1,6 @@ +author: Alberyk + +delete-after: True + +changes: + - tweak: "Destroying the station's floor won't create asteroid tiles anymore." diff --git a/maps/aurora/code/aurora.dm b/maps/aurora/code/aurora.dm index f9667d2f0d4..ebcf922d0d6 100644 --- a/maps/aurora/code/aurora.dm +++ b/maps/aurora/code/aurora.dm @@ -19,7 +19,7 @@ base_turf_by_z = list( "1" = /turf/space, "2" = /turf/space, - "3" = /turf/space, + "3" = /turf/unsimulated/floor/asteroid/ash/rocky, "4" = /turf/unsimulated/floor/asteroid/ash/rocky, "5" = /turf/unsimulated/floor/asteroid/ash/rocky, "6" = /turf/unsimulated/floor/asteroid/ash, From b8e5037fe3da125fa16f5bac3635d7a646fe6027 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Thu, 4 Mar 2021 22:33:54 +0000 Subject: [PATCH 15/38] "[ci skip] Automatic Build - 2021.03.04.22.33.54" --- html/changelog.html | 1 + html/changelogs/.all_changelog.yml | 1 + html/changelogs/alberyk-thefloorislava.yml | 6 ------ 3 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/alberyk-thefloorislava.yml diff --git a/html/changelog.html b/html/changelog.html index ee1a1da4016..d92480f0734 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -39,6 +39,7 @@

          Alberyk updated:

          • Fixed jumping down disposals causing no damage.
          • +
          • Destroying the station's floor won't create asteroid tiles anymore.

          Alberyk, Canon35 updated:

            diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index ed2d9a8ec17..76d71238a3e 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18677,6 +18677,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-03-04: Alberyk: - bugfix: Fixed jumping down disposals causing no damage. + - tweak: Destroying the station's floor won't create asteroid tiles anymore. Alberyk, Canon35: - rscadd: Added Hro'zamal Soda. Carpe Venenum: diff --git a/html/changelogs/alberyk-thefloorislava.yml b/html/changelogs/alberyk-thefloorislava.yml deleted file mode 100644 index 65c884204d5..00000000000 --- a/html/changelogs/alberyk-thefloorislava.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Alberyk - -delete-after: True - -changes: - - tweak: "Destroying the station's floor won't create asteroid tiles anymore." From f1d2d31f7f4b28335801a20daee451ba7a80a884 Mon Sep 17 00:00:00 2001 From: Yonnimer <31339047+Yonnimer@users.noreply.github.com> Date: Fri, 5 Mar 2021 05:37:22 -0500 Subject: [PATCH 16/38] Removes diona bites (#11299) * --- code/game/machinery/vending_types.dm | 2 - code/game/objects/items/trash.dm | 4 -- .../reagent_containers/food/snacks.dm | 10 ----- html/changelogs/Yonnimer-noeattree.yml | 41 ++++++++++++++++++ icons/obj/food.dmi | Bin 163961 -> 163466 bytes icons/obj/trash.dmi | Bin 26210 -> 25455 bytes 6 files changed, 41 insertions(+), 16 deletions(-) create mode 100644 html/changelogs/Yonnimer-noeattree.yml diff --git a/code/game/machinery/vending_types.dm b/code/game/machinery/vending_types.dm index 8c6e6ffb8e3..ffbc64a38e6 100644 --- a/code/game/machinery/vending_types.dm +++ b/code/game/machinery/vending_types.dm @@ -273,7 +273,6 @@ /obj/item/reagent_containers/food/snacks/koisbar_clean = 4, /obj/item/reagent_containers/food/snacks/candy/koko = 5, /obj/item/reagent_containers/food/snacks/tuna = 2, - /obj/item/reagent_containers/food/snacks/diona_bites = 3, /obj/item/reagent_containers/food/snacks/ricetub = 2, /obj/item/reagent_containers/food/snacks/riceball = 4, /obj/item/reagent_containers/food/snacks/seaweed = 5 @@ -305,7 +304,6 @@ /obj/item/reagent_containers/food/snacks/koisbar_clean = 60, /obj/item/reagent_containers/food/snacks/candy/koko = 40, /obj/item/reagent_containers/food/snacks/tuna = 23, - /obj/item/reagent_containers/food/snacks/diona_bites = 40, /obj/item/reagent_containers/food/snacks/ricetub = 40, /obj/item/reagent_containers/food/snacks/riceball = 15, /obj/item/reagent_containers/food/snacks/seaweed = 20 diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 228fedda602..2b994554431 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -205,10 +205,6 @@ drop_sound = 'sound/items/drop/bottle.ogg' pickup_sound = 'sound/items/pickup/bottle.ogg' -/obj/item/trash/diona_bites - name = "dionae bites" - icon_state = "dionaebitesempty" - /obj/item/trash/ricetub name = "empty rice tub" icon_state = "ricetub" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 0d930cdbb5f..15c804a7a7e 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -5013,13 +5013,3 @@ reagent_data = list(/decl/reagent/nutriment = list("diona delicacy" = 5)) reagents_to_add = list(/decl/reagent/nutriment = 8, /decl/reagent/drink/carrotjuice = 2, /decl/reagent/drink/potatojuice = 2, /decl/reagent/radium = 2) filling_color = "#BD8939" - -/obj/item/reagent_containers/food/snacks/diona_bites - name = "dionae bites" - desc = "Freeze dried Dionae bites artfully crafted by Getmore chefs for that home cooked taste on the go!" - icon_state = "dionaebites" - reagent_data = list(/decl/reagent/nutriment = list("diona delicacy" = 5)) - reagents_to_add = list(/decl/reagent/nutriment = 6) - trash = /obj/item/trash/diona_bites - bitesize = 3 - filling_color = "#BD8939" diff --git a/html/changelogs/Yonnimer-noeattree.yml b/html/changelogs/Yonnimer-noeattree.yml new file mode 100644 index 00000000000..88994bd1ae8 --- /dev/null +++ b/html/changelogs/Yonnimer-noeattree.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Yonnimer + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscdel: "Removes diona bites." diff --git a/icons/obj/food.dmi b/icons/obj/food.dmi index 1deb809a8620883940ec2152e4ecd53a45adca62..c1488a218d711c2ca684f2b21692f5aac623fe13 100644 GIT binary patch delta 15187 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 A^Z)<= delta 15720 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 diff --git a/icons/obj/trash.dmi b/icons/obj/trash.dmi index b61c42c10e3087640efed4f3b9aad1f5d98eea24..7419b7c891aa0b4cbcc50ad854f1c5c1e82553ca 100644 GIT binary patch literal 25455 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 IIn&Vp0h$;7N&o-= literal 26210 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 From 8f59a2862e2110a0ac2b7b2ca06f8815c7b8a455 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Fri, 5 Mar 2021 10:38:28 +0000 Subject: [PATCH 17/38] "[ci skip] Automatic Build - 2021.03.05.10.38.28" --- html/changelog.html | 6 ++++ html/changelogs/.all_changelog.yml | 3 ++ html/changelogs/Yonnimer-noeattree.yml | 41 -------------------------- 3 files changed, 9 insertions(+), 41 deletions(-) delete mode 100644 html/changelogs/Yonnimer-noeattree.yml diff --git a/html/changelog.html b/html/changelog.html index d92480f0734..89ab8f92e2d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -35,6 +35,12 @@ -->
            +

            05 March 2021

            +

            Yonnimer updated:

            +
              +
            • Removes diona bites.
            • +
            +

            04 March 2021

            Alberyk updated:

              diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 76d71238a3e..c8485e4bdd6 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18704,3 +18704,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Secret chems now load properly. WickedCybs: - bugfix: The spiderling infestation announcement now references greimorians. +2021-03-05: + Yonnimer: + - rscdel: Removes diona bites. diff --git a/html/changelogs/Yonnimer-noeattree.yml b/html/changelogs/Yonnimer-noeattree.yml deleted file mode 100644 index 88994bd1ae8..00000000000 --- a/html/changelogs/Yonnimer-noeattree.yml +++ /dev/null @@ -1,41 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: Yonnimer - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscdel: "Removes diona bites." From 78c815af87efa098853340535a61dd22dfcf7278 Mon Sep 17 00:00:00 2001 From: Alberyk Date: Fri, 5 Mar 2021 18:55:51 -0300 Subject: [PATCH 18/38] Reduces the radiation damage caused by uranium golems (#11356) --- .../mob/living/carbon/human/species/station/golem.dm | 2 +- code/modules/projectiles/projectile/bullets.dm | 2 +- html/changelogs/alberyk-changegolem.yml | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 html/changelogs/alberyk-changegolem.yml diff --git a/code/modules/mob/living/carbon/human/species/station/golem.dm b/code/modules/mob/living/carbon/human/species/station/golem.dm index 3944d52343b..fd9ad41a6d9 100644 --- a/code/modules/mob/living/carbon/human/species/station/golem.dm +++ b/code/modules/mob/living/carbon/human/species/station/golem.dm @@ -766,7 +766,7 @@ var/global/list/golem_types = list(SPECIES_GOLEM_COAL, /datum/species/golem/uranium/handle_environment_special(var/mob/living/carbon/human/H) if(prob(25)) for(var/mob/living/L in view(7, H)) - L.apply_damage(150, IRRADIATE, damage_flags = DAM_DISPERSED) + L.apply_damage(20, IRRADIATE, damage_flags = DAM_DISPERSED) /datum/species/golem/homunculus name = SPECIES_GOLEM_MEAT diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index e6b7a801dd0..c74e696bd50 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -385,7 +385,7 @@ var/turf/T = get_turf(mob) if(T && (loc.z == T.z)) if(ishuman(mob)) - mob.apply_effect(450, IRRADIATE) + mob.apply_damage(250, IRRADIATE, damage_flags = DAM_DISPERSED) new /obj/effect/temp_visual/nuke(A.loc) explosion(A,2,5,9) ..() diff --git a/html/changelogs/alberyk-changegolem.yml b/html/changelogs/alberyk-changegolem.yml new file mode 100644 index 00000000000..b312c74b33e --- /dev/null +++ b/html/changelogs/alberyk-changegolem.yml @@ -0,0 +1,6 @@ +author: Alberyk + +delete-after: True + +changes: + - tweak: "Reduced radiation damage caused by uranium golems." From 607fe6680f8866d7a4b1e5e877ef5b83a8104fd6 Mon Sep 17 00:00:00 2001 From: Geeves Date: Fri, 5 Mar 2021 23:56:20 +0200 Subject: [PATCH 19/38] Chair Build Tweak (#11237) --- code/modules/materials/material_recipes.dm | 22 +++------------------- html/changelogs/geeves-no_free_leather.yml | 7 +++++++ 2 files changed, 10 insertions(+), 19 deletions(-) create mode 100644 html/changelogs/geeves-no_free_leather.yml diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index e9dcccd25b6..3437621d6ee 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -67,6 +67,9 @@ new /datum/stack_recipe("custodial cart", /obj/structure/janitorialcart, BUILD_AMT, time = 120, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("closet", /obj/structure/closet, BUILD_AMT, time = 15, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe("dark office chair", /obj/structure/bed/chair/office/dark, BUILD_AMT, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe("light office chair", /obj/structure/bed/chair/office/light, BUILD_AMT, one_per_turf = 1, on_floor = 1), + new /datum/stack_recipe("plain comfy chair", /obj/structure/bed/chair/comfy, BUILD_AMT, one_per_turf = 1, on_floor = 1) new /datum/stack_recipe("sofa (middle)", /obj/structure/bed/chair/comfy/sofa, BUILD_AMT, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("sofa (left)", /obj/structure/bed/chair/comfy/sofa/left, BUILD_AMT, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("sofa (right)", /obj/structure/bed/chair/comfy/sofa/right, BUILD_AMT, one_per_turf = 1, on_floor = 1), @@ -94,25 +97,6 @@ new /datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1) )) - recipes += new /datum/stack_recipe_list("office chairs", - list( - new /datum/stack_recipe("dark office chair", /obj/structure/bed/chair/office/dark, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("light office chair", /obj/structure/bed/chair/office/light, BUILD_AMT, one_per_turf = 1, on_floor = 1) - )) - - recipes += new /datum/stack_recipe_list("comfy chairs", - list( - new /datum/stack_recipe("beige comfy chair", /obj/structure/bed/chair/comfy/beige, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("black comfy chair", /obj/structure/bed/chair/comfy/black, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("brown comfy chair", /obj/structure/bed/chair/comfy/brown, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("lime comfy chair", /obj/structure/bed/chair/comfy/lime, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("teal comfy chair", /obj/structure/bed/chair/comfy/teal, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("red comfy chair", /obj/structure/bed/chair/comfy/red, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("blue comfy chair", /obj/structure/bed/chair/comfy/blue, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("purple comfy chair", /obj/structure/bed/chair/comfy/purp, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("green comfy chair", /obj/structure/bed/chair/comfy/green, BUILD_AMT, one_per_turf = 1, on_floor = 1) - )) - recipes += new /datum/stack_recipe_list("turret frames", list( new /datum/stack_recipe("light turret frame", /obj/machinery/porta_turret_construct, 5, time = 25, one_per_turf = 1, on_floor = 1), diff --git a/html/changelogs/geeves-no_free_leather.yml b/html/changelogs/geeves-no_free_leather.yml new file mode 100644 index 00000000000..e50f4ba7c02 --- /dev/null +++ b/html/changelogs/geeves-no_free_leather.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - tweak: "You can no longer build padded comfy chairs out of steel, comfy chairs are now built plain and require you to pad it with other materials, such as carpet or leather." + - tweak: "Office chairs and comfy chairs have been collapsed into the miscellaneous construction tab in the steel sheet menu." \ No newline at end of file From 80be3d88e1f482b25ca1b737b3ba66f64e8b9752 Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Fri, 5 Mar 2021 23:35:58 +0100 Subject: [PATCH 20/38] Another set of brainmed adjustment & miscellaneous things. (#11354) --- .../structures/stool_bed_chair_nest/bed.dm | 4 +- .../stool_bed_chair_nest/wheelchair.dm | 11 ++-- .../living/carbon/human/human_attackhand.dm | 2 + code/modules/organs/internal/brain.dm | 5 +- code/modules/organs/internal/lungs.dm | 4 +- code/modules/organs/organ.dm | 5 +- .../Chemistry-Reagents-Food-Drinks.dm | 1 - code/modules/surgery/organs_internal.dm | 18 +++++-- code/modules/surgery/other.dm | 11 ++-- html/changelogs/mattatlas-killmealready.yml | 52 +++++++++++++++++++ 10 files changed, 87 insertions(+), 26 deletions(-) create mode 100644 html/changelogs/mattatlas-killmealready.yml diff --git a/code/game/objects/structures/stool_bed_chair_nest/bed.dm b/code/game/objects/structures/stool_bed_chair_nest/bed.dm index 4ead4212bd2..cfabcfe2487 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/bed.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/bed.dm @@ -257,7 +257,7 @@ /obj/structure/bed/roller/attackby(obj/item/I, mob/user) if(iswrench(I) || istype(I, /obj/item/stack) || iswirecutter(I)) return 1 - if(iv_stand && !beaker && istype(I, /obj/item/reagent_containers)) + if(iv_stand && !beaker && (istype(I, /obj/item/reagent_containers/glass/beaker) || istype(I, /obj/item/reagent_containers/blood))) if(!user.unEquip(I, target = src)) return to_chat(user, SPAN_NOTICE("You attach \the [I] to \the [src].")) @@ -314,7 +314,7 @@ ..() if(use_check(usr) || !Adjacent(usr)) return - if(!(ishuman(usr) || isrobot(usr))) + if(!ishuman(usr)) return if(over_object == buckled && beaker) if(iv_attached) diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 26cc663ea21..1f90ba6b795 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -210,11 +210,12 @@ /obj/structure/bed/chair/wheelchair/MouseDrop(over_object, src_location, over_location) ..() - if((over_object == usr && (in_range(src, usr) || usr.contents.Find(src)))) - if(!ishuman(usr)) - return FALSE - if(buckled) - return FALSE + if(!ishuman(usr)) + return FALSE + if(buckled) + return FALSE + if(!usr.Adjacent(src)) + return FALSE visible_message(SPAN_NOTICE("[usr] collapses [src].")) var/obj/item/wheelchair/R = new(get_turf(src)) R.name = src.name diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 4ec40811bde..52dcbe9823c 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -480,6 +480,8 @@ var/datum/gas_mixture/breath = H.get_breath_from_environment() var/fail = L.handle_breath(breath, 1) if(!fail) + if(!L.is_bruised()) + losebreath = 0 to_chat(src, "You feel a breath of fresh air enter your lungs. It feels good.") cpr(H) //Again. diff --git a/code/modules/organs/internal/brain.dm b/code/modules/organs/internal/brain.dm index 31faf8ca6dc..ae576998854 100644 --- a/code/modules/organs/internal/brain.dm +++ b/code/modules/organs/internal/brain.dm @@ -156,20 +156,17 @@ if(prob(damprob)) take_internal_damage(1) if(prob(damprob)) - take_internal_damage(2) + take_internal_damage(1) ..() /obj/item/organ/internal/brain/take_internal_damage(var/damage, var/silent) set waitfor = 0 - if(damage >= (max_damage / 4)) - damage *= 2 ..() if(damage >= (max_damage / 5)) //This probably won't be triggered by oxyloss or mercury. Probably. var/damage_secondary = damage * 0.20 owner.eye_blurry += damage_secondary owner.confused += damage_secondary * 2 owner.Weaken(round(damage_secondary * 3, 1)) - owner.adjustOxyLoss(damage) if(prob(30)) addtimer(CALLBACK(src, .proc/brain_damage_callback, damage), rand(6, 20) SECONDS, TIMER_UNIQUE) diff --git a/code/modules/organs/internal/lungs.dm b/code/modules/organs/internal/lungs.dm index 8705083be4b..b638b46e69c 100644 --- a/code/modules/organs/internal/lungs.dm +++ b/code/modules/organs/internal/lungs.dm @@ -1,5 +1,4 @@ #define HUMAN_MAX_OXYLOSS 1 //Defines how much oxyloss humans can get per tick. A tile with no air at all (such as space) applies this value, otherwise it's a percentage of it. -#define HUMAN_CRIT_MAX_OXYLOSS ( 2.0 / 6) //The amount of damage you'll get when in critical condition. We want this to be a 5 minute deal = 300s. There are 50HP to get through, so (1/6)*last_tick_duration per second. Breaths however only happen every 4 ticks. last_tick_duration = ~2.0 on average /obj/item/organ/internal/lungs name = "lungs" @@ -67,7 +66,7 @@ "You can't breathe!", "You hear someone gasp for air!", ) - owner.losebreath += round(damage/2) + owner.losebreath = max(round(damage / 2), owner.losebreath) if(rescued) if(is_bruised()) @@ -377,4 +376,3 @@ rescued = FALSE #undef HUMAN_MAX_OXYLOSS -#undef HUMAN_CRIT_MAX_OXYLOSS diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 7486b2a9d74..d9cf814b36a 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -13,6 +13,7 @@ var/vital //Lose a vital limb, die immediately. var/rejecting // Is this organ already being rejected? var/is_augment = FALSE + var/death_time //Organ damage stats. var/damage = 0 // amount of damage to the organ @@ -128,6 +129,7 @@ return damage = max_damage status |= ORGAN_DEAD + death_time = world.time STOP_PROCESSING(SSprocessing, src) if(owner && vital) owner.death() @@ -141,8 +143,9 @@ /obj/item/organ/proc/can_feel_pain() return (!BP_IS_ROBOTIC(src) && (!species || !(species.flags & NO_PAIN))) +#define ORGAN_RECOVERY_THRESHOLD (5 MINUTES) /obj/item/organ/proc/can_recover() - return max_damage > 0 + return (max_damage > 0) && !(status & ORGAN_DEAD) || death_time >= world.time - ORGAN_RECOVERY_THRESHOLD /obj/item/organ/process() if(loc != owner) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm index e7c15cd9a68..fae573002f1 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm @@ -705,7 +705,6 @@ if(alien != IS_DIONA) if (caffeine) M.add_up_to_chemical_effect(CE_SPEEDBOOST, caffeine) - M.add_chemical_effect(CE_PULSE, 1) M.dizziness = max(0, M.dizziness + adj_dizzy) M.drowsyness = max(0, M.drowsyness + adj_drowsy) M.sleeping = max(0, M.sleeping + adj_sleepy) diff --git a/code/modules/surgery/organs_internal.dm b/code/modules/surgery/organs_internal.dm index cbec0dccbbc..149db63495f 100644 --- a/code/modules/surgery/organs_internal.dm +++ b/code/modules/surgery/organs_internal.dm @@ -48,15 +48,15 @@ if(istype(tool, /obj/item/stack/medical/advanced/bruise_pack)) tool_name = "regenerative membrane" else if(istype(tool, /obj/item/stack/medical/bruise_pack)) - tool_name = "the bandaid" + tool_name = "some bandaids" var/obj/item/organ/external/affected = target.get_organ(target_zone) for(var/obj/item/organ/internal/I in affected.internal_organs) - if(I && I.damage > 0 && !BP_IS_ROBOTIC(I)) + if(I && I.damage > 0 && !BP_IS_ROBOTIC(I) && (!I.status & ORGAN_DEAD || I.can_recover())) user.visible_message("[user] starts treating damage to [target]'s [I.name] with [tool_name].", \ "You start treating damage to [target]'s [I.name] with [tool_name]." ) + target.custom_pain("The pain in your [affected.name] is living hell!",100, affecting = affected) - target.custom_pain("The pain in your [affected.name] is living hell!", 75) ..() /decl/surgery_step/internal/fix_organ/end_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) @@ -72,12 +72,20 @@ for(var/obj/item/organ/internal/I in affected.internal_organs) if(I && I.damage > 0 && !BP_IS_ROBOTIC(I)) - user.visible_message("[user] finishes applying [tool_name] to [target]'s [I.name].", \ - SPAN_NOTICE("You treat damage to [target]'s [I.name] with [tool_name].") ) + if(I.status & ORGAN_DEAD && I.can_recover()) + user.visible_message("\The [user] treats damage to [target]'s [I.name] with [tool_name], though it needs to be recovered further.", \ + "You treat damage to [target]'s [I.name] with [tool_name], though it needs to be recovered further." ) + else + user.visible_message("[user] treats damage to [target]'s [I.name] with [tool_name].", \ + "You treat damage to [target]'s [I.name] with [tool_name].") I.surgical_fix(user) + user.visible_message("\The [user] finishes treating damage within \the [target]'s [affected.name] with [tool_name].", \ + "You finish treating damage within \the [target]'s [affected.name] with [tool_name].") var/obj/item/organ/internal/brain/sponge = target.internal_organs_by_name[BP_BRAIN] if(sponge && istype(I, sponge)) target.cure_all_traumas(cure_type = CURE_SURGERY) + if(I.status & ORGAN_DEAD) + to_chat(user, SPAN_DANGER("This organ is still dead! You must remove the dead tissue with a scalpel!")) /decl/surgery_step/internal/fix_organ/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) if(!ishuman(target)) diff --git a/code/modules/surgery/other.dm b/code/modules/surgery/other.dm index a9766c68a8c..edeec246065 100644 --- a/code/modules/surgery/other.dm +++ b/code/modules/surgery/other.dm @@ -52,7 +52,7 @@ /decl/surgery_step/internal/fix_dead_tissue //Debridement name = "Debride damaged tissue" - priority = 3 + priority = 4 allowed_tools = list( /obj/item/surgery/scalpel = 100, /obj/item/material/knife = 75, @@ -77,7 +77,7 @@ break if(!organ) return - if(organ.damage >= organ.max_damage) + if(organ.damage > organ.max_damage) to_chat(user, SPAN_WARNING("\The [organ] is too damaged. Repair it first.")) return 0 @@ -105,6 +105,7 @@ user.visible_message(SPAN_NOTICE("[user] has cut away necrotic tissue from [target]'s [organ_to_fix.name] with \the [tool]."), \ SPAN_NOTICE("You have cut away necrotic tissue in [target]'s [organ_to_fix.name] with \the [tool].")) organ_to_fix.status &= ~ORGAN_DEAD + organ_to_fix.heal_damage(10) //so that they don't insta-die again /decl/surgery_step/internal/fix_dead_tissue/fail_step(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) var/obj/item/organ/external/affected = target.get_organ(target_zone) @@ -114,7 +115,7 @@ /decl/surgery_step/treat_necrosis name = "Treat necrosis" - priority = 2 + priority = 4 allowed_tools = list( /obj/item/reagent_containers/dropper = 100, /obj/item/reagent_containers/glass/bottle = 75, @@ -126,8 +127,8 @@ can_infect = FALSE blood_level = 0 - min_duration = 50 - max_duration = 60 + min_duration = 100 + max_duration = 110 /decl/surgery_step/treat_necrosis/can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool) if(!..()) diff --git a/html/changelogs/mattatlas-killmealready.yml b/html/changelogs/mattatlas-killmealready.yml new file mode 100644 index 00000000000..833cdea8fe0 --- /dev/null +++ b/html/changelogs/mattatlas-killmealready.yml @@ -0,0 +1,52 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Suffocating will no longer continuously apply losebreath. This is capped now, thus making recovery periods for suffocation much shorter." + - bugfix: "The necrotic (dead) organ surgery has been fixed. For internal organs, use a scalpel! Cancel out of the organ removal prompt and the surgery will begin." + - bugfix: "Wheelchairs no longer interact with the paranormal entities." + - tweak: "CPR now removes losebreath, thus making it a convenient option if people aren't breathing." + - tweak: "It is now obvious if the organ is dead following an organ repair surgery." + - balance: "Getting headshots no longer multiplies damage exponentially if the damage is extremely high." + - balance: "Headshots no longer make you lose breath." + - balance: "Organs now need necrotic surgery if they've been dead for over five minutes." + - balance: "The necrotic organ surgery is now longer, at about ten seconds. It also heals ten damage so that organs don't instantly die anymore." + - balance: "Slowed brain decay while in cardiac arrest." + - tweak: "Non-glass (beakers, bottles) or non-bloodbag reagent containers may no longer be put onto roller beds." + - tweak: "Coffee no longer applies CE_PULSE, which means you won't get spammed by heartbeat for having the audacity to drink it." From 5f78ddda148a0ffd6a7609e293e3949c5145d273 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Fri, 5 Mar 2021 22:36:44 +0000 Subject: [PATCH 21/38] "[ci skip] Automatic Build - 2021.03.05.22.36.44" --- html/changelog.html | 24 ++++++++++ html/changelogs/.all_changelog.yml | 29 ++++++++++++ html/changelogs/alberyk-changegolem.yml | 6 --- html/changelogs/geeves-no_free_leather.yml | 7 --- html/changelogs/mattatlas-killmealready.yml | 52 --------------------- 5 files changed, 53 insertions(+), 65 deletions(-) delete mode 100644 html/changelogs/alberyk-changegolem.yml delete mode 100644 html/changelogs/geeves-no_free_leather.yml delete mode 100644 html/changelogs/mattatlas-killmealready.yml diff --git a/html/changelog.html b/html/changelog.html index 89ab8f92e2d..574917226d0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -36,6 +36,30 @@

              05 March 2021

              +

              Alberyk updated:

              +
                +
              • Reduced radiation damage caused by uranium golems.
              • +
              +

              Geeves updated:

              +
                +
              • You can no longer build padded comfy chairs out of steel, comfy chairs are now built plain and require you to pad it with other materials, such as carpet or leather.
              • +
              • Office chairs and comfy chairs have been collapsed into the miscellaneous construction tab in the steel sheet menu.
              • +
              +

              MattAtlas updated:

              +
                +
              • Suffocating will no longer continuously apply losebreath. This is capped now, thus making recovery periods for suffocation much shorter.
              • +
              • The necrotic (dead) organ surgery has been fixed. For internal organs, use a scalpel! Cancel out of the organ removal prompt and the surgery will begin.
              • +
              • Wheelchairs no longer interact with the paranormal entities.
              • +
              • CPR now removes losebreath, thus making it a convenient option if people aren't breathing.
              • +
              • It is now obvious if the organ is dead following an organ repair surgery.
              • +
              • Getting headshots no longer multiplies damage exponentially if the damage is extremely high.
              • +
              • Headshots no longer make you lose breath.
              • +
              • Organs now need necrotic surgery if they've been dead for over five minutes.
              • +
              • The necrotic organ surgery is now longer, at about ten seconds. It also heals ten damage so that organs don't instantly die anymore.
              • +
              • Slowed brain decay while in cardiac arrest.
              • +
              • Non-glass (beakers, bottles) or non-bloodbag reagent containers may no longer be put onto roller beds.
              • +
              • Coffee no longer applies CE_PULSE, which means you won't get spammed by heartbeat for having the audacity to drink it.
              • +

              Yonnimer updated:

              • Removes diona bites.
              • diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index c8485e4bdd6..f6da359475d 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18705,5 +18705,34 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. WickedCybs: - bugfix: The spiderling infestation announcement now references greimorians. 2021-03-05: + Alberyk: + - tweak: Reduced radiation damage caused by uranium golems. + Geeves: + - tweak: You can no longer build padded comfy chairs out of steel, comfy chairs + are now built plain and require you to pad it with other materials, such as + carpet or leather. + - tweak: Office chairs and comfy chairs have been collapsed into the miscellaneous + construction tab in the steel sheet menu. + MattAtlas: + - bugfix: Suffocating will no longer continuously apply losebreath. This is capped + now, thus making recovery periods for suffocation much shorter. + - bugfix: The necrotic (dead) organ surgery has been fixed. For internal organs, + use a scalpel! Cancel out of the organ removal prompt and the surgery will begin. + - bugfix: Wheelchairs no longer interact with the paranormal entities. + - tweak: CPR now removes losebreath, thus making it a convenient option if people + aren't breathing. + - tweak: It is now obvious if the organ is dead following an organ repair surgery. + - balance: Getting headshots no longer multiplies damage exponentially if the damage + is extremely high. + - balance: Headshots no longer make you lose breath. + - balance: Organs now need necrotic surgery if they've been dead for over five + minutes. + - balance: The necrotic organ surgery is now longer, at about ten seconds. It also + heals ten damage so that organs don't instantly die anymore. + - balance: Slowed brain decay while in cardiac arrest. + - tweak: Non-glass (beakers, bottles) or non-bloodbag reagent containers may no + longer be put onto roller beds. + - tweak: Coffee no longer applies CE_PULSE, which means you won't get spammed + by heartbeat for having the audacity to drink it. Yonnimer: - rscdel: Removes diona bites. diff --git a/html/changelogs/alberyk-changegolem.yml b/html/changelogs/alberyk-changegolem.yml deleted file mode 100644 index b312c74b33e..00000000000 --- a/html/changelogs/alberyk-changegolem.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Alberyk - -delete-after: True - -changes: - - tweak: "Reduced radiation damage caused by uranium golems." diff --git a/html/changelogs/geeves-no_free_leather.yml b/html/changelogs/geeves-no_free_leather.yml deleted file mode 100644 index e50f4ba7c02..00000000000 --- a/html/changelogs/geeves-no_free_leather.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - tweak: "You can no longer build padded comfy chairs out of steel, comfy chairs are now built plain and require you to pad it with other materials, such as carpet or leather." - - tweak: "Office chairs and comfy chairs have been collapsed into the miscellaneous construction tab in the steel sheet menu." \ No newline at end of file diff --git a/html/changelogs/mattatlas-killmealready.yml b/html/changelogs/mattatlas-killmealready.yml deleted file mode 100644 index 833cdea8fe0..00000000000 --- a/html/changelogs/mattatlas-killmealready.yml +++ /dev/null @@ -1,52 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: MattAtlas - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "Suffocating will no longer continuously apply losebreath. This is capped now, thus making recovery periods for suffocation much shorter." - - bugfix: "The necrotic (dead) organ surgery has been fixed. For internal organs, use a scalpel! Cancel out of the organ removal prompt and the surgery will begin." - - bugfix: "Wheelchairs no longer interact with the paranormal entities." - - tweak: "CPR now removes losebreath, thus making it a convenient option if people aren't breathing." - - tweak: "It is now obvious if the organ is dead following an organ repair surgery." - - balance: "Getting headshots no longer multiplies damage exponentially if the damage is extremely high." - - balance: "Headshots no longer make you lose breath." - - balance: "Organs now need necrotic surgery if they've been dead for over five minutes." - - balance: "The necrotic organ surgery is now longer, at about ten seconds. It also heals ten damage so that organs don't instantly die anymore." - - balance: "Slowed brain decay while in cardiac arrest." - - tweak: "Non-glass (beakers, bottles) or non-bloodbag reagent containers may no longer be put onto roller beds." - - tweak: "Coffee no longer applies CE_PULSE, which means you won't get spammed by heartbeat for having the audacity to drink it." From d0f9c2ed8dc6030a57068f7ea4db95dc72046260 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sat, 6 Mar 2021 00:42:29 +0200 Subject: [PATCH 22/38] i hate merge conflicts (#11383) --- code/modules/materials/material_recipes.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/materials/material_recipes.dm b/code/modules/materials/material_recipes.dm index 3437621d6ee..89aa8d138ef 100644 --- a/code/modules/materials/material_recipes.dm +++ b/code/modules/materials/material_recipes.dm @@ -69,7 +69,7 @@ new /datum/stack_recipe("canister", /obj/machinery/portable_atmospherics/canister, 10, time = 15, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("dark office chair", /obj/structure/bed/chair/office/dark, BUILD_AMT, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("light office chair", /obj/structure/bed/chair/office/light, BUILD_AMT, one_per_turf = 1, on_floor = 1), - new /datum/stack_recipe("plain comfy chair", /obj/structure/bed/chair/comfy, BUILD_AMT, one_per_turf = 1, on_floor = 1) + new /datum/stack_recipe("plain comfy chair", /obj/structure/bed/chair/comfy, BUILD_AMT, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("sofa (middle)", /obj/structure/bed/chair/comfy/sofa, BUILD_AMT, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("sofa (left)", /obj/structure/bed/chair/comfy/sofa/left, BUILD_AMT, one_per_turf = 1, on_floor = 1), new /datum/stack_recipe("sofa (right)", /obj/structure/bed/chair/comfy/sofa/right, BUILD_AMT, one_per_turf = 1, on_floor = 1), From 5f138a68c0a1a75b8eecd49191204f1be3fa8ca9 Mon Sep 17 00:00:00 2001 From: witchbells <76234372+witchbells@users.noreply.github.com> Date: Sat, 6 Mar 2021 17:21:39 -0500 Subject: [PATCH 23/38] adds a plushtoy of penny (#11361) --- code/game/objects/items/toys.dm | 7 ++++ html/changelogs/witchbells - changelog.yml | 41 +++++++++++++++++++++ icons/mob/head.dmi | Bin 163179 -> 164054 bytes icons/mob/items/lefthand_toy.dmi | Bin 3718 -> 4491 bytes icons/mob/items/righthand_toy.dmi | Bin 3640 -> 4302 bytes icons/obj/toy.dmi | Bin 51044 -> 51619 bytes 6 files changed, 48 insertions(+) create mode 100644 html/changelogs/witchbells - changelog.yml diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 7a00cb34994..c1d1e20d0f9 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -925,6 +925,13 @@ icon_state = "kittenplushie" slot_flags = SLOT_HEAD +/obj/item/toy/plushie/pennyplush + name = "Penny plush" + desc = "It's a plush of the beloved company mascot cat, Penny! For the price Nanotrasen sells these things at, you probably could have bought an actual cat." + icon_state = "pennyplushie" + slot_flags = SLOT_HEAD + + /obj/item/toy/plushie/lizard name = "lizard plush" desc = "A plushie of a scaly lizard! Very controversial, after being accused as \"racist\" by some Unathi." diff --git a/html/changelogs/witchbells - changelog.yml b/html/changelogs/witchbells - changelog.yml new file mode 100644 index 00000000000..b51f7268bdf --- /dev/null +++ b/html/changelogs/witchbells - changelog.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: witchbells + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Added a plushtoy of Penny. You're welcome." diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index cc748f562c499568d859d7d74f1f75fde6e865dd..289680d6a8d40d929d78e01a0ef7f75a641ce0cb 100644 GIT binary patch delta 6389 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 Hv3v7h-J^JC diff --git a/icons/mob/items/lefthand_toy.dmi b/icons/mob/items/lefthand_toy.dmi index 98fcb6d54de63882a9d6d9aaaa3870c1276fa192..83716d0ca640f3b29c3e70b75b0de48c4c6dc6a9 100644 GIT binary patch literal 4491 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 literal 3718 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 diff --git a/icons/mob/items/righthand_toy.dmi b/icons/mob/items/righthand_toy.dmi index 62c008e21d6db192b2f0b5447d6126dde293dc23..5e0760a66ded015659bbde69ed4df7fb9016b272 100644 GIT binary patch literal 4302 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 uS+ns+tbGzjrdmyNf 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 delta 11127 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 XWmS8*MCAzq|A-zbKT)bsv<&@UE_cwY From df4897a43ef5de92c93418d87a9f5b22574a52dc Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Sat, 6 Mar 2021 22:22:49 +0000 Subject: [PATCH 24/38] "[ci skip] Automatic Build - 2021.03.06.22.22.49" --- html/changelog.html | 6 ++++ html/changelogs/.all_changelog.yml | 3 ++ html/changelogs/witchbells - changelog.yml | 41 ---------------------- 3 files changed, 9 insertions(+), 41 deletions(-) delete mode 100644 html/changelogs/witchbells - changelog.yml diff --git a/html/changelog.html b/html/changelog.html index 574917226d0..b2fb1476bf4 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -35,6 +35,12 @@ -->
                +

                06 March 2021

                +

                witchbells updated:

                +
                  +
                • Added a plushtoy of Penny. You're welcome.
                • +
                +

                05 March 2021

                Alberyk updated:

                  diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index f6da359475d..64c5f86a245 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18736,3 +18736,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. by heartbeat for having the audacity to drink it. Yonnimer: - rscdel: Removes diona bites. +2021-03-06: + witchbells: + - rscadd: Added a plushtoy of Penny. You're welcome. diff --git a/html/changelogs/witchbells - changelog.yml b/html/changelogs/witchbells - changelog.yml deleted file mode 100644 index b51f7268bdf..00000000000 --- a/html/changelogs/witchbells - changelog.yml +++ /dev/null @@ -1,41 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: witchbells - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - rscadd: "Added a plushtoy of Penny. You're welcome." From a9a2ab69f20a0e1a49351f48cc9135b06acbfbfb Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 7 Mar 2021 17:07:53 +0200 Subject: [PATCH 25/38] Brain Death Fix (#11388) --- code/modules/mob/living/carbon/brain/life.dm | 2 +- html/changelogs/geeves-brain_death.yml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/geeves-brain_death.yml diff --git a/code/modules/mob/living/carbon/brain/life.dm b/code/modules/mob/living/carbon/brain/life.dm index be609aadd2e..02016ea63a9 100644 --- a/code/modules/mob/living/carbon/brain/life.dm +++ b/code/modules/mob/living/carbon/brain/life.dm @@ -101,7 +101,7 @@ blinded = 1 silent = 0 else //ALIVE. LIGHTS ARE ON - if( !container && (health < config.health_threshold_dead || ((world.time - timeofhostdeath) > config.revival_brain_life)) ) + if(!container && (health < config.health_threshold_dead || ((config.revival_brain_life != -1) && world.time - timeofhostdeath > config.revival_brain_life))) death() blinded = 1 silent = 0 diff --git a/html/changelogs/geeves-brain_death.yml b/html/changelogs/geeves-brain_death.yml new file mode 100644 index 00000000000..9cccdd8547a --- /dev/null +++ b/html/changelogs/geeves-brain_death.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them." \ No newline at end of file From c428d3415d34ee41efc4db1ee7b8f9d0b7237edd Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Sun, 7 Mar 2021 15:09:02 +0000 Subject: [PATCH 26/38] "[ci skip] Automatic Build - 2021.03.07.15.09.02" --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/geeves-brain_death.yml | 6 ------ 3 files changed, 10 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/geeves-brain_death.yml diff --git a/html/changelog.html b/html/changelog.html index b2fb1476bf4..7814dcf55db 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -35,6 +35,12 @@ -->
                  +

                  07 March 2021

                  +

                  Geeves updated:

                  +
                    +
                  • Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them.
                  • +
                  +

                  06 March 2021

                  witchbells updated:

                    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 64c5f86a245..68d64eead80 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18739,3 +18739,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-03-06: witchbells: - rscadd: Added a plushtoy of Penny. You're welcome. +2021-03-07: + Geeves: + - bugfix: Fixed brains dying instantly when the head gets decapitated or the body + explodes. This will give roboticists enough time to retrieve and borg them. diff --git a/html/changelogs/geeves-brain_death.yml b/html/changelogs/geeves-brain_death.yml deleted file mode 100644 index 9cccdd8547a..00000000000 --- a/html/changelogs/geeves-brain_death.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - bugfix: "Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them." \ No newline at end of file From 5709d47a14d4ee3d25f5c3a00284009327310dd2 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 7 Mar 2021 18:05:28 +0200 Subject: [PATCH 27/38] Light Fixture Spark Fix (#11387) --- code/modules/power/lights/fixtures.dm | 2 +- html/changelogs/geeves-light_power.yml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/geeves-light_power.yml diff --git a/code/modules/power/lights/fixtures.dm b/code/modules/power/lights/fixtures.dm index 0cf70217b15..b8060647d30 100644 --- a/code/modules/power/lights/fixtures.dm +++ b/code/modules/power/lights/fixtures.dm @@ -225,7 +225,7 @@ active_power_usage = ((light_range * light_power) * 10) /obj/machinery/light/proc/broken_sparks() - if(world.time > next_spark && has_power()) + if(world.time > next_spark && !(stat & POWEROFF) && has_power()) spark(src, 3, alldirs) next_spark = world.time + 1 MINUTE + (rand(-15, 15) SECONDS) diff --git a/html/changelogs/geeves-light_power.yml b/html/changelogs/geeves-light_power.yml new file mode 100644 index 00000000000..ad904df7a31 --- /dev/null +++ b/html/changelogs/geeves-light_power.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Broken lights that have been turned off with a lightswitch no longer spark." \ No newline at end of file From e002cf5240c55e4ab6b5d095191618c8c462722d Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Sun, 7 Mar 2021 16:06:13 +0000 Subject: [PATCH 28/38] "[ci skip] Automatic Build - 2021.03.07.16.06.13" --- html/changelog.html | 1 + html/changelogs/.all_changelog.yml | 1 + html/changelogs/geeves-light_power.yml | 6 ------ 3 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/geeves-light_power.yml diff --git a/html/changelog.html b/html/changelog.html index 7814dcf55db..3065a836c44 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -39,6 +39,7 @@

                    Geeves updated:

                    • Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them.
                    • +
                    • Broken lights that have been turned off with a lightswitch no longer spark.

                    06 March 2021

                    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 68d64eead80..e6279d94fac 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18743,3 +18743,4 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Geeves: - bugfix: Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them. + - bugfix: Broken lights that have been turned off with a lightswitch no longer spark. diff --git a/html/changelogs/geeves-light_power.yml b/html/changelogs/geeves-light_power.yml deleted file mode 100644 index ad904df7a31..00000000000 --- a/html/changelogs/geeves-light_power.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - bugfix: "Broken lights that have been turned off with a lightswitch no longer spark." \ No newline at end of file From b819c7878f0fb9ef39254e4745b2efe3c28dd32b Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 7 Mar 2021 18:14:26 +0200 Subject: [PATCH 29/38] Laser Tag Gear (#11193) --- aurorastation.dme | 1 + .../crates_lockers/closets/fitness.dm | 30 ---- code/modules/clothing/head/helmet.dm | 19 ++- code/modules/clothing/sets/laser_tag.dm | 143 ++++++++++++++++++ code/modules/clothing/suits/miscellaneous.dm | 24 --- code/modules/item_worth/worths_list.dm | 3 +- code/modules/projectiles/guns/energy/laser.dm | 54 ++++--- .../projectiles/modular/laser_components.dm | 6 +- code/modules/projectiles/pins.dm | 20 ++- code/modules/projectiles/projectile/beams.dm | 62 +++----- code/modules/reagents/reagent_dispenser.dm | 2 +- html/changelogs/geeves-laser_tag_gear.yml | 9 ++ icons/clothing/kit/laser_tag.dmi | Bin 0 -> 5208 bytes maps/aurora/aurora-6_surface.dmm | 10 +- maps/exodus/exodus-1_station.dmm | 2 +- 15 files changed, 238 insertions(+), 147 deletions(-) create mode 100644 code/modules/clothing/sets/laser_tag.dm create mode 100644 html/changelogs/geeves-laser_tag_gear.yml create mode 100644 icons/clothing/kit/laser_tag.dmi diff --git a/aurorastation.dme b/aurorastation.dme index 21a05232ae0..f8abc2e931c 100644 --- a/aurorastation.dme +++ b/aurorastation.dme @@ -1418,6 +1418,7 @@ #include "code\modules\clothing\rings\rings.dm" #include "code\modules\clothing\sets\acting_captain.dm" #include "code\modules\clothing\sets\captain.dm" +#include "code\modules\clothing\sets\laser_tag.dm" #include "code\modules\clothing\shoes\colour.dm" #include "code\modules\clothing\shoes\jobs.dm" #include "code\modules\clothing\shoes\magboots.dm" diff --git a/code/game/objects/structures/crates_lockers/closets/fitness.dm b/code/game/objects/structures/crates_lockers/closets/fitness.dm index 74174128e33..e96f1fdd64b 100644 --- a/code/game/objects/structures/crates_lockers/closets/fitness.dm +++ b/code/game/objects/structures/crates_lockers/closets/fitness.dm @@ -43,33 +43,3 @@ new /obj/item/clothing/mask/luchador(src) new /obj/item/clothing/mask/luchador/rudos(src) new /obj/item/clothing/mask/luchador/tecnicos(src) - - -/obj/structure/closet/lasertag/red - name = "red laser tag equipment" - desc = "It's a storage unit for laser tag equipment." - icon_state = "red" - icon_closed = "red" - -/obj/structure/closet/lasertag/red/fill() - new /obj/item/clothing/ears/earmuffs(src) - new /obj/item/clothing/ears/earmuffs(src) - new /obj/item/gun/energy/lasertag/red(src) - new /obj/item/gun/energy/lasertag/red(src) - new /obj/item/clothing/suit/redtag(src) - new /obj/item/clothing/suit/redtag(src) - - -/obj/structure/closet/lasertag/blue - name = "blue laser tag equipment" - desc = "It's a storage unit for laser tag equipment." - icon_state = "blue" - icon_closed = "blue" - -/obj/structure/closet/lasertag/blue/fill() - new /obj/item/clothing/ears/earmuffs(src) - new /obj/item/clothing/ears/earmuffs(src) - new /obj/item/gun/energy/lasertag/blue(src) - new /obj/item/gun/energy/lasertag/blue(src) - new /obj/item/clothing/suit/bluetag(src) - new /obj/item/clothing/suit/bluetag(src) \ No newline at end of file diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 2612fe5fa31..b603d7b1805 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -108,17 +108,20 @@ if (use_check_and_message(user)) return + do_flip(user) + update_clothing_icon() + +/obj/item/clothing/head/helmet/riot/proc/do_flip(var/mob/user) if(icon_state == initial(icon_state)) - icon_state = "helm_riot_down" - item_state = "helm_riot_down" - to_chat(user, SPAN_NOTICE("You lower the visor on \the [src].")) - body_parts_covered = HEAD|FACE|EYES - else - icon_state = initial(icon_state) - item_state = initial(item_state) + icon_state = "[icon_state]-up" + item_state = icon_state to_chat(user, SPAN_NOTICE("You raise the visor on \the [src].")) body_parts_covered = HEAD - update_clothing_icon() + else + icon_state = initial(icon_state) + item_state = icon_state + to_chat(user, SPAN_NOTICE("You lower the visor on \the [src].")) + body_parts_covered = HEAD|FACE|EYES /obj/item/clothing/head/helmet/ablative diff --git a/code/modules/clothing/sets/laser_tag.dm b/code/modules/clothing/sets/laser_tag.dm new file mode 100644 index 00000000000..61069d2be82 --- /dev/null +++ b/code/modules/clothing/sets/laser_tag.dm @@ -0,0 +1,143 @@ +/* + Armor +*/ +/obj/item/clothing/suit/armor/riot/laser_tag + name = "laser tag armor" + desc = "A set of laser tag armor. Very swanky." + desc_info = "You can alt-click this while holding or wearing it to set how many laser tag shots you want to be able to take before going down." + icon = 'icons/clothing/kit/laser_tag.dmi' + icon_state = "vest" + item_state = "vest" + contained_sprite = TRUE + blood_overlay_type = "armor" + body_parts_covered = UPPER_TORSO + slowdown = 0 + armor = list( // still somewhat sturdy, but ultimately not very + melee = ARMOR_MELEE_MINOR, + laser = ARMOR_LASER_MINOR, + energy = ARMOR_ENERGY_MINOR + ) + siemens_coefficient = 1.0 + var/laser_tag_color = "red" + + var/set_health = 3 + var/current_health + +/obj/item/clothing/suit/armor/riot/laser_tag/Initialize(mapload, material_key) + . = ..() + get_tag_color(laser_tag_color) + current_health = set_health + +/obj/item/clothing/suit/armor/riot/laser_tag/AltClick(mob/user) + if(loc == user) + set_health = input(user, "Set the amount of shots you want your armour to take.", "Laser Armor", 3) as null|anything in list(1, 2, 3, 4, 5) + if(!set_health) + return + current_health = set_health + var/user_name = "Unknown User" + if(ishuman(user)) + var/mob/living/carbon/human/H = user + var/obj/item/card/id/ID = H.GetIdCard() + user_name = ID.registered_name + var/list/num_to_word = list("one", "two", "three", "four", "five") + visible_message("[capitalize_first_letters(name)] says, \"[SPAN_NOTICE("[user_name] armor health set to [num_to_word[set_health]].")]\".") + return + return ..() + +/obj/item/clothing/suit/armor/riot/laser_tag/attackby(obj/item/I, mob/user) + if(I.ismultitool()) + var/chosen_color = input(user, "Which color do you wish your vest to be?", "Color Selection") as null|anything in list("blue", "red") + if(!chosen_color) + return + laser_tag_color = chosen_color + get_tag_color(chosen_color) + to_chat(user, SPAN_NOTICE("\The [src] is now a [chosen_color] laser tag vest.")) + return + return ..() + +/obj/item/clothing/suit/armor/riot/laser_tag/proc/laser_hit() + current_health-- + if(current_health <= 0 && ismob(loc)) + var/mob/M = loc + M.Weaken(5) + current_health = set_health + +/obj/item/clothing/suit/armor/riot/laser_tag/blue + laser_tag_color = "blue" + +/obj/item/clothing/head/helmet/riot/laser_tag + name = "laser tag helmet" + desc = "A helmet in the form of a riot helm, made for high-impact laser tag gameplay." + icon = 'icons/clothing/kit/laser_tag.dmi' + icon_state = "helmet" + item_state = "helmet" + contained_sprite = TRUE + armor = list( // still somewhat sturdy, but ultimately not very + melee = ARMOR_MELEE_MINOR, + laser = ARMOR_LASER_MINOR, + energy = ARMOR_ENERGY_MINOR + ) + siemens_coefficient = 1.0 + var/laser_tag_color = "red" + +/obj/item/clothing/head/helmet/riot/laser_tag/Initialize(mapload, material_key) + . = ..() + get_tag_color(laser_tag_color) + +/obj/item/clothing/head/helmet/riot/laser_tag/attackby(obj/item/I, mob/user) + if(I.ismultitool()) + var/chosen_color = input(user, "Which color do you wish your helmet to be?", "Color Selection") as null|anything in list("blue", "red") + if(!chosen_color) + return + laser_tag_color = chosen_color + get_tag_color(chosen_color) + to_chat(user, SPAN_NOTICE("\The [src] is now a [chosen_color] laser tag helmet.")) + return + return ..() + +/obj/item/clothing/head/helmet/riot/laser_tag/do_flip(mob/user) + if(item_state == initial(item_state)) + item_state = "[item_state]-up" + else + item_state = initial(item_state) + ..() + +/obj/item/clothing/head/helmet/riot/laser_tag/blue + laser_tag_color = "blue" + +/* + Helpers +*/ +/obj/item/clothing/proc/get_tag_color(var/set_color) + var/list/color_to_color = list("red" = COLOR_RED, "blue" = COLOR_BLUE) + color = color_to_color[set_color] + update_clothing_icon() + + +/* + Closets +*/ +/obj/structure/closet/lasertag + name = "red laser tag equipment" + desc = "It's a storage unit for laser tag equipment." + icon_state = "red" + icon_closed = "red" + var/helmet_path = /obj/item/clothing/head/helmet/riot/laser_tag + var/armor_path = /obj/item/clothing/suit/armor/riot/laser_tag + var/gun_path = /obj/item/gun/energy/lasertag/red + +/obj/structure/closet/lasertag/fill() + new /obj/item/device/multitool(src) + for(var/i = 1 to 3) + new helmet_path(src) + new armor_path(src) + new gun_path(src) + new /obj/item/clothing/ears/earmuffs(src) + +/obj/structure/closet/lasertag/blue + name = "blue laser tag equipment" + icon_state = "blue" + icon_closed = "blue" + helmet_path = /obj/item/clothing/head/helmet/riot/laser_tag/blue + armor_path = /obj/item/clothing/suit/armor/riot/laser_tag/blue + gun_path = /obj/item/gun/energy/lasertag/blue \ No newline at end of file diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 8b0d0487e0c..6ec996a80e5 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -1,33 +1,9 @@ /* * Contains: - * Lasertag * Costume * Misc */ -/* - * Lasertag - */ -/obj/item/clothing/suit/bluetag - name = "blue laser tag armor" - desc = "Blue Pride, Station Wide." - icon_state = "bluetag" - item_state = "bluetag" - blood_overlay_type = "armor" - body_parts_covered = UPPER_TORSO - allowed = list (/obj/item/gun/energy/lasertag/blue) - siemens_coefficient = 1.0 - -/obj/item/clothing/suit/redtag - name = "red laser tag armor" - desc = "Reputed to go faster." - icon_state = "redtag" - item_state = "redtag" - blood_overlay_type = "armor" - body_parts_covered = UPPER_TORSO - allowed = list (/obj/item/gun/energy/lasertag/red) - siemens_coefficient = 1.0 - /* * Costume */ diff --git a/code/modules/item_worth/worths_list.dm b/code/modules/item_worth/worths_list.dm index 3059e12d6af..8349c1f4a21 100644 --- a/code/modules/item_worth/worths_list.dm +++ b/code/modules/item_worth/worths_list.dm @@ -502,8 +502,7 @@ var/list/worths = list( /obj/item/clothing/suit/security/hos/dnavy = 80, /obj/item/clothing/suit/storage/hazardvest = 60, /obj/item/clothing/suit/storage/toggle/labcoat = 55, - /obj/item/clothing/suit/bluetag = 20, - /obj/item/clothing/suit/redtag = 20, + /obj/item/clothing/suit/armor/riot/laser_tag = 125, /obj/item/clothing/suit/fire/heavy = 600, /obj/item/clothing/suit/fire = 500, /obj/item/clothing/suit/radiation = 450, diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index c990ee22712..9f2aa18f12a 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -211,41 +211,55 @@ obj/item/gun/energy/retro /obj/item/gun/energy/lasertag name = "laser tag gun" + desc = "A simple low-power laser gun, outfitted for use in laser tag arenas." item_state = "laser" has_item_ratio = FALSE - desc = "Standard issue weapon of the Imperial Guard" origin_tech = list(TECH_COMBAT = 1, TECH_MAGNET = 2) - self_recharge = 1 + self_recharge = TRUE + recharge_time = 2 matter = list(DEFAULT_WALL_MATERIAL = 2000) fire_sound = 'sound/weapons/laser1.ogg' - projectile_type = /obj/item/projectile/beam/lastertag/blue - var/required_vest + projectile_type = /obj/item/projectile/beam/laser_tag + pin = /obj/item/device/firing_pin/tag/red + can_turret = TRUE + turret_is_lethal = FALSE + turret_sprite_set = "red" -/obj/item/gun/energy/lasertag/special_check(var/mob/living/carbon/human/M) - if(ishuman(M)) - if(!istype(M.wear_suit, required_vest)) - to_chat(M, "You need to be wearing your laser tag vest!") - return 0 +/obj/item/gun/energy/lasertag/attackby(obj/item/I, mob/user) + if(I.ismultitool()) + var/chosen_color = input(user, "Which color do you wish your gun to be?", "Color Selection") as null|anything in list("blue", "red") + if(!chosen_color) + return + get_tag_color(chosen_color) + to_chat(user, SPAN_NOTICE("\The [src] is now a [chosen_color] laser tag gun.")) + return return ..() +/obj/item/gun/energy/lasertag/proc/get_tag_color(var/set_color) + projectile_type = text2path("/obj/item/projectile/beam/laser_tag/[set_color]") + if(pin) + QDEL_NULL(pin) + var/pin_path = text2path("/obj/item/device/firing_pin/tag/[set_color]") + pin = new pin_path(src) + switch(set_color) + if("red") + icon = 'icons/obj/guns/redtag.dmi' + if("blue") + icon = 'icons/obj/guns/bluetag.dmi' + icon_state = "[set_color]tag" + item_state = icon_state + modifystate = item_state + update_held_icon() + /obj/item/gun/energy/lasertag/blue icon = 'icons/obj/guns/bluetag.dmi' icon_state = "bluetag" item_state = "bluetag" - projectile_type = /obj/item/projectile/beam/lastertag/blue - required_vest = /obj/item/clothing/suit/bluetag + projectile_type = /obj/item/projectile/beam/laser_tag/blue pin = /obj/item/device/firing_pin/tag/blue - can_turret = 1 - turret_is_lethal = 0 turret_sprite_set = "blue" /obj/item/gun/energy/lasertag/red icon = 'icons/obj/guns/redtag.dmi' icon_state = "redtag" - item_state = "redtag" - projectile_type = /obj/item/projectile/beam/lastertag/red - required_vest = /obj/item/clothing/suit/redtag - pin = /obj/item/device/firing_pin/tag/red - can_turret = 1 - turret_is_lethal = 0 - turret_sprite_set = "red" + item_state = "redtag" \ No newline at end of file diff --git a/code/modules/projectiles/modular/laser_components.dm b/code/modules/projectiles/modular/laser_components.dm index fb6a58635ff..41eb2cf4f4e 100644 --- a/code/modules/projectiles/modular/laser_components.dm +++ b/code/modules/projectiles/modular/laser_components.dm @@ -365,21 +365,21 @@ /obj/item/laser_components/modulator/red name = "red team modulator" desc = "Modulates the beam into firing red team tagger beams." - projectile = /obj/item/projectile/beam/lastertag/red + projectile = /obj/item/projectile/beam/laser_tag damage = 0 icon_state = "red" /obj/item/laser_components/modulator/blue name = "blue team modulator" desc = "Modulates the beam into firing blue team tagger beams." - projectile = /obj/item/projectile/beam/lastertag/blue + projectile = /obj/item/projectile/beam/laser_tag/blue damage = 0 icon_state = "blue" /obj/item/laser_components/modulator/omni name = "omni team modulator" desc = "Modulates the beam into firing omni team tagger beams." - projectile = /obj/item/projectile/beam/lastertag/omni + projectile = /obj/item/projectile/beam/laser_tag/omni damage = 0 icon_state = "omni" diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm index 21a68092f91..721f157f70d 100644 --- a/code/modules/projectiles/pins.dm +++ b/code/modules/projectiles/pins.dm @@ -181,28 +181,26 @@ Pins Below. name = "laser tag firing pin" desc = "A recreational firing pin, used in laser tag units to ensure users have their vests on." fail_message = "SUIT CHECK FAILED." - var/obj/item/clothing/suit/suit_requirement = null - var/tagcolor = "" + var/tag_color = "" /obj/item/device/firing_pin/tag/pin_auth(mob/living/user) if(ishuman(user)) - var/mob/living/carbon/human/M = user - if(istype(M.wear_suit, suit_requirement)) - return 1 - to_chat(user, "You need to be wearing [tagcolor] laser tag armor!") - return 0 + var/mob/living/carbon/human/H = user + var/obj/item/clothing/suit/armor/riot/laser_tag/LT = H.wear_suit + if(istype(LT) && tag_color == LT.laser_tag_color) + return TRUE + to_chat(user, SPAN_WARNING("You need to be wearing [tag_color] laser tag armor!")) + return FALSE /obj/item/device/firing_pin/tag/red name = "red laser tag firing pin" icon_state = "firing_pin_red" - suit_requirement = /obj/item/clothing/suit/redtag - tagcolor = "red" + tag_color = "red" /obj/item/device/firing_pin/tag/blue name = "blue laser tag firing pin" icon_state = "firing_pin_blue" - suit_requirement = /obj/item/clothing/suit/bluetag - tagcolor = "blue" + tag_color = "blue" /obj/item/device/firing_pin/Destroy() if(gun) diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index cb7750d7489..d6973236951 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -99,27 +99,7 @@ tracer_type = /obj/effect/projectile/tracer/emitter impact_type = /obj/effect/projectile/impact/emitter -/obj/item/projectile/beam/lastertag/blue - name = "lasertag beam" - icon_state = "bluelaser" - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 0 - no_attack_log = 1 - damage_type = BURN - check_armor = "laser" - - muzzle_type = /obj/effect/projectile/muzzle/laser/blue - tracer_type = /obj/effect/projectile/tracer/laser/blue - impact_type = /obj/effect/projectile/impact/laser/blue - -/obj/item/projectile/beam/lastertag/blue/on_hit(var/atom/target, var/blocked = 0) - if(istype(target, /mob/living/carbon/human)) - var/mob/living/carbon/human/M = target - if(istype(M.wear_suit, /obj/item/clothing/suit/redtag)) - M.Weaken(5) - return 1 - -/obj/item/projectile/beam/lastertag/red +/obj/item/projectile/beam/laser_tag name = "lasertag beam" icon_state = "laser" pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE @@ -127,32 +107,38 @@ no_attack_log = 1 damage_type = BURN check_armor = "laser" + var/laser_tag_color = "red" -/obj/item/projectile/beam/lastertag/red/on_hit(var/atom/target, var/blocked = 0) - if(istype(target, /mob/living/carbon/human)) - var/mob/living/carbon/human/M = target - if(istype(M.wear_suit, /obj/item/clothing/suit/bluetag)) - M.Weaken(5) - return 1 + muzzle_type = /obj/effect/projectile/muzzle/laser + tracer_type = /obj/effect/projectile/tracer/laser + impact_type = /obj/effect/projectile/impact/laser -/obj/item/projectile/beam/lastertag/omni//A laser tag bolt that stuns EVERYONE +/obj/item/projectile/beam/laser_tag/on_hit(var/atom/target, var/blocked = 0) + if(ishuman(target)) + var/mob/living/carbon/human/H = target + var/obj/item/clothing/suit/armor/riot/laser_tag/LT = H.wear_suit + if(istype(LT) && laser_tag_color != LT.laser_tag_color) + LT.laser_hit() + return TRUE + +/obj/item/projectile/beam/laser_tag/blue + name = "lasertag beam" + icon_state = "bluelaser" + laser_tag_color = "blue" + + muzzle_type = /obj/effect/projectile/muzzle/laser/blue + tracer_type = /obj/effect/projectile/tracer/laser/blue + impact_type = /obj/effect/projectile/impact/laser/blue + +/obj/item/projectile/beam/laser_tag/omni//A laser tag bolt that stuns EVERYONE name = "lasertag beam" icon_state = "omnilaser" - pass_flags = PASSTABLE | PASSGLASS | PASSGRILLE - damage = 0 - damage_type = BURN - check_armor = "laser" + laser_tag_color = "omni" muzzle_type = /obj/effect/projectile/muzzle/disabler tracer_type = /obj/effect/projectile/tracer/disabler impact_type = /obj/effect/projectile/impact/disabler -/obj/item/projectile/beam/lastertag/omni/on_hit(var/atom/target, var/blocked = 0) - if(istype(target, /mob/living/carbon/human)) - var/mob/living/carbon/human/M = target - if((istype(M.wear_suit, /obj/item/clothing/suit/bluetag))||(istype(M.wear_suit, /obj/item/clothing/suit/redtag))) - M.Weaken(5) - return 1 /obj/item/projectile/beam/sniper name = "sniper beam" diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index 1d3639fbd7b..4b1c6028e6b 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -195,7 +195,7 @@ log_and_message_admins("shot a welding tank", Proj.firer) log_game("[key_name(Proj.firer)] shot fueltank at [loc.loc.name] ([loc.x],[loc.y],[loc.z]).",ckey=key_name(Proj.firer)) - if(!istype(Proj ,/obj/item/projectile/beam/lastertag) && !istype(Proj ,/obj/item/projectile/beam/practice) && !istype(Proj ,/obj/item/projectile/kinetic)) + if(!istype(Proj ,/obj/item/projectile/beam/laser_tag) && !istype(Proj ,/obj/item/projectile/beam/practice) && !istype(Proj ,/obj/item/projectile/kinetic)) ex_act(2.0) /obj/structure/reagent_dispensers/fueltank/ex_act(var/severity = 3.0) diff --git a/html/changelogs/geeves-laser_tag_gear.yml b/html/changelogs/geeves-laser_tag_gear.yml new file mode 100644 index 00000000000..3139f16f277 --- /dev/null +++ b/html/changelogs/geeves-laser_tag_gear.yml @@ -0,0 +1,9 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added helmets to the laser tag gear loadout." + - rscadd: "You can now alt-click laser tag armour to be able to set how many hits it will take before flooring you." + - rscadd: "You can now use a multitool on laser tag gear to change which colour it is and works against." + - tweak: "Lowered the laser tag gun recharge rate to 4 seconds per shot, down from 8 seconds per shot." \ No newline at end of file diff --git a/icons/clothing/kit/laser_tag.dmi b/icons/clothing/kit/laser_tag.dmi new file mode 100644 index 0000000000000000000000000000000000000000..55c31e53fd5fc30fd604abe7a07fba8da5ffacdc GIT binary patch literal 5208 zcmZu#cT^Kiv|k`Vs0m#WA#_BlqM*_fnsk(2l_njfh?Ecl(gZ`3qL|Pu^d?1m{iq6} zlz?=khF&8OUcPtUAFrJ=yR&;|?%d!0?wot?Y@CsS785-;JpceqI@$;ma^FV2a=wtslF&#L zEN4>2xEt@}NJ+u+obLbH#%X73QYLDaue@ZR>a`Nohp{ zSAhm)mZVbvT*$Y`S~bV>=cWn0b+Vk0Ted`6myxIgZI9Cy{6ycCP^siNO*8jfkI_PTkQZ%z5b*M9~wI;;J!H8eCZa;b%cG!9Qp zfG>7ryk}b^dF9msT4o+2�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 literal 0 HcmV?d00001 diff --git a/maps/aurora/aurora-6_surface.dmm b/maps/aurora/aurora-6_surface.dmm index 84d3c5aeb9e..0b7d92758de 100644 --- a/maps/aurora/aurora-6_surface.dmm +++ b/maps/aurora/aurora-6_surface.dmm @@ -10253,7 +10253,7 @@ /turf/simulated/floor/plating, /area/store) "jiW" = ( -/obj/structure/closet/lasertag/red, +/obj/structure/closet/lasertag, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 4 }, @@ -10261,10 +10261,6 @@ dir = 4; pixel_x = -28 }, -/obj/item/gun/energy/lasertag/red, -/obj/item/gun/energy/lasertag/red, -/obj/item/clothing/suit/redtag, -/obj/item/clothing/suit/redtag, /turf/simulated/floor/tiled/dark, /area/crew_quarters/fitness/changing) "jkk" = ( @@ -25005,10 +25001,6 @@ dir = 8; icon_state = "tube1" }, -/obj/item/gun/energy/lasertag/blue, -/obj/item/gun/energy/lasertag/blue, -/obj/item/clothing/suit/bluetag, -/obj/item/clothing/suit/bluetag, /turf/simulated/floor/tiled/dark, /area/crew_quarters/fitness/changing) "wcR" = ( diff --git a/maps/exodus/exodus-1_station.dmm b/maps/exodus/exodus-1_station.dmm index b71389c976b..7a08e3064cb 100644 --- a/maps/exodus/exodus-1_station.dmm +++ b/maps/exodus/exodus-1_station.dmm @@ -14218,7 +14218,7 @@ /turf/simulated/floor/tiled/dark, /area/crew_quarters/fitness) "aBc" = ( -/obj/structure/closet/lasertag/red, +/obj/structure/closet/lasertag, /obj/machinery/atmospherics/unary/vent_scrubber/on{ dir = 8 }, From acdd247709218af9c16459324571fdc5210e1ce3 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Sun, 7 Mar 2021 16:15:17 +0000 Subject: [PATCH 30/38] "[ci skip] Automatic Build - 2021.03.07.16.15.17" --- html/changelog.html | 4 ++++ html/changelogs/.all_changelog.yml | 7 +++++++ html/changelogs/geeves-laser_tag_gear.yml | 9 --------- 3 files changed, 11 insertions(+), 9 deletions(-) delete mode 100644 html/changelogs/geeves-laser_tag_gear.yml diff --git a/html/changelog.html b/html/changelog.html index 3065a836c44..bd854f562c7 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -40,6 +40,10 @@
                    • Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them.
                    • Broken lights that have been turned off with a lightswitch no longer spark.
                    • +
                    • Added helmets to the laser tag gear loadout.
                    • +
                    • You can now alt-click laser tag armour to be able to set how many hits it will take before flooring you.
                    • +
                    • You can now use a multitool on laser tag gear to change which colour it is and works against.
                    • +
                    • Lowered the laser tag gun recharge rate to 4 seconds per shot, down from 8 seconds per shot.

                    06 March 2021

                    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index e6279d94fac..8d46fd23f43 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18744,3 +18744,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them. - bugfix: Broken lights that have been turned off with a lightswitch no longer spark. + - rscadd: Added helmets to the laser tag gear loadout. + - rscadd: You can now alt-click laser tag armour to be able to set how many hits + it will take before flooring you. + - rscadd: You can now use a multitool on laser tag gear to change which colour it + is and works against. + - tweak: Lowered the laser tag gun recharge rate to 4 seconds per shot, down from + 8 seconds per shot. diff --git a/html/changelogs/geeves-laser_tag_gear.yml b/html/changelogs/geeves-laser_tag_gear.yml deleted file mode 100644 index 3139f16f277..00000000000 --- a/html/changelogs/geeves-laser_tag_gear.yml +++ /dev/null @@ -1,9 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - rscadd: "Added helmets to the laser tag gear loadout." - - rscadd: "You can now alt-click laser tag armour to be able to set how many hits it will take before flooring you." - - rscadd: "You can now use a multitool on laser tag gear to change which colour it is and works against." - - tweak: "Lowered the laser tag gun recharge rate to 4 seconds per shot, down from 8 seconds per shot." \ No newline at end of file From fb98340325748d2c8ed092dc9e3ba3129f214fa1 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 7 Mar 2021 18:15:28 +0200 Subject: [PATCH 31/38] Doppler Tweak (#11124) --- code/game/machinery/doppler_array.dm | 22 ++++++++++++++------- html/changelogs/geeves-doppler-kablooie.yml | 7 +++++++ 2 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 html/changelogs/geeves-doppler-kablooie.yml diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm index 2a295520fdf..24c90b72af7 100644 --- a/code/game/machinery/doppler_array.dm +++ b/code/game/machinery/doppler_array.dm @@ -6,9 +6,9 @@ var/list/doppler_arrays = list() icon = 'icons/obj/computer.dmi' icon_state = "computer" - anchored = 1 - density = 1 - + anchored = TRUE + density = TRUE + var/active = TRUE /obj/machinery/doppler_array/Initialize() . = ..() @@ -19,6 +19,14 @@ var/list/doppler_arrays = list() doppler_arrays -= src return ..() +/obj/machinery/doppler_array/examine(mob/user) + . = ..() + to_chat(user, SPAN_NOTICE("\The [src] is [active ? "listening for explosions" : "[SPAN_WARNING("inactive")]"].")) + +/obj/machinery/doppler_array/attack_hand(mob/user) + active = !active + to_chat(user, SPAN_NOTICE("\The [src] is now [active ? "listening for explosions" : "[SPAN_WARNING("inactive")]"].")) + /obj/machinery/doppler_array/update_icon() icon_state = initial(icon_state) set_light(0) @@ -31,8 +39,8 @@ var/list/doppler_arrays = list() add_overlay(image(icon, src, "teleport")) /obj/machinery/doppler_array/proc/sense_explosion(var/x0,var/y0,var/z0,var/devastation_range,var/heavy_impact_range,var/light_impact_range) - if(stat & NOPOWER) return - if(z != z0) return + if(!active || (stat & NOPOWER) || z != z0) + return var/dx = abs(x0-x) var/dy = abs(y0-y) @@ -55,8 +63,8 @@ var/list/doppler_arrays = list() return var/message = "Explosive disturbance detected - Epicenter at: grid ([x0],[y0],[z0]). Epicenter radius: [devastation_range]. Outer radius: [heavy_impact_range]. Shockwave radius: [light_impact_range]." - global_announcer.autosay(message, src.name) + global_announcer.autosay(message, "Tachyon-Doppler Array", "Science") /obj/machinery/doppler_array/power_change() ..() - update_icon() \ No newline at end of file + update_icon() diff --git a/html/changelogs/geeves-doppler-kablooie.yml b/html/changelogs/geeves-doppler-kablooie.yml new file mode 100644 index 00000000000..842bd20c9f2 --- /dev/null +++ b/html/changelogs/geeves-doppler-kablooie.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - tweak: "The Tachyon-Doppler Array outputs its results to the science channel instead of common, now." + - rscadd: "You can now toggle the doppler array's reporting on or off by clicking on it." \ No newline at end of file From a6f2dfc90acf2322cdad7204d67ad6079bec6da3 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Sun, 7 Mar 2021 16:16:10 +0000 Subject: [PATCH 32/38] "[ci skip] Automatic Build - 2021.03.07.16.16.09" --- html/changelog.html | 2 ++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/geeves-doppler-kablooie.yml | 7 ------- 3 files changed, 6 insertions(+), 7 deletions(-) delete mode 100644 html/changelogs/geeves-doppler-kablooie.yml diff --git a/html/changelog.html b/html/changelog.html index bd854f562c7..e134a8abdb0 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -44,6 +44,8 @@
                  • You can now alt-click laser tag armour to be able to set how many hits it will take before flooring you.
                  • You can now use a multitool on laser tag gear to change which colour it is and works against.
                  • Lowered the laser tag gun recharge rate to 4 seconds per shot, down from 8 seconds per shot.
                  • +
                  • The Tachyon-Doppler Array outputs its results to the science channel instead of common, now.
                  • +
                  • You can now toggle the doppler array's reporting on or off by clicking on it.

                  06 March 2021

                  diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 8d46fd23f43..02ca0b55630 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18751,3 +18751,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. is and works against. - tweak: Lowered the laser tag gun recharge rate to 4 seconds per shot, down from 8 seconds per shot. + - tweak: The Tachyon-Doppler Array outputs its results to the science channel instead + of common, now. + - rscadd: You can now toggle the doppler array's reporting on or off by clicking + on it. diff --git a/html/changelogs/geeves-doppler-kablooie.yml b/html/changelogs/geeves-doppler-kablooie.yml deleted file mode 100644 index 842bd20c9f2..00000000000 --- a/html/changelogs/geeves-doppler-kablooie.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - tweak: "The Tachyon-Doppler Array outputs its results to the science channel instead of common, now." - - rscadd: "You can now toggle the doppler array's reporting on or off by clicking on it." \ No newline at end of file From 8aac323b15bd9508e36b63f304829ca26cfc8e77 Mon Sep 17 00:00:00 2001 From: Casper3667 Date: Sun, 7 Mar 2021 19:03:19 +0100 Subject: [PATCH 33/38] new characters now return to lobby if their job preferences are unavailable (#11358) --- code/modules/client/preferences.dm | 2 +- html/changelogs/TGWLobbyReturn.yml | 41 ++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/TGWLobbyReturn.yml diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b2bef7eba92..dbe0c5c4059 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -642,7 +642,7 @@ datum/preferences job_engsec_med = 0 job_engsec_low = 0 - alternate_option = 0 + alternate_option = 1 metadata = "" organ_data = list() diff --git a/html/changelogs/TGWLobbyReturn.yml b/html/changelogs/TGWLobbyReturn.yml new file mode 100644 index 00000000000..e4e6814221a --- /dev/null +++ b/html/changelogs/TGWLobbyReturn.yml @@ -0,0 +1,41 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: TheGreyWolf + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "New characters now start with their preference set to return to lobby if all their job slots are taken." From 6f41902a39fe761b09cb7834aed08f99f1063e5a Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Sun, 7 Mar 2021 18:04:02 +0000 Subject: [PATCH 34/38] "[ci skip] Automatic Build - 2021.03.07.18.04.02" --- html/changelog.html | 4 +++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/TGWLobbyReturn.yml | 41 ------------------------------ 3 files changed, 7 insertions(+), 41 deletions(-) delete mode 100644 html/changelogs/TGWLobbyReturn.yml diff --git a/html/changelog.html b/html/changelog.html index e134a8abdb0..a5b47931f77 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -47,6 +47,10 @@
                • The Tachyon-Doppler Array outputs its results to the science channel instead of common, now.
                • You can now toggle the doppler array's reporting on or off by clicking on it.
                +

                TheGreyWolf updated:

                +
                  +
                • New characters now start with their preference set to return to lobby if all their job slots are taken.
                • +

                06 March 2021

                witchbells updated:

                diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 02ca0b55630..5ecab36356a 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18755,3 +18755,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. of common, now. - rscadd: You can now toggle the doppler array's reporting on or off by clicking on it. + TheGreyWolf: + - tweak: New characters now start with their preference set to return to lobby if + all their job slots are taken. diff --git a/html/changelogs/TGWLobbyReturn.yml b/html/changelogs/TGWLobbyReturn.yml deleted file mode 100644 index e4e6814221a..00000000000 --- a/html/changelogs/TGWLobbyReturn.yml +++ /dev/null @@ -1,41 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: TheGreyWolf - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - tweak: "New characters now start with their preference set to return to lobby if all their job slots are taken." From d8b26be1700db4dd2c73a40dcafb03c3b6bc6eb2 Mon Sep 17 00:00:00 2001 From: Geeves Date: Sun, 7 Mar 2021 20:22:05 +0200 Subject: [PATCH 35/38] Skrell Slaps (#11355) --- code/game/sound.dm | 5 +++++ .../human/species/station/skrell/skrell.dm | 1 + .../changelogs/geeves-happy_birthday_tomkiel.yml | 6 ++++++ sound/effects/bodyfall_skrell1.ogg | Bin 0 -> 9373 bytes 4 files changed, 12 insertions(+) create mode 100644 html/changelogs/geeves-happy_birthday_tomkiel.yml create mode 100644 sound/effects/bodyfall_skrell1.ogg diff --git a/code/game/sound.dm b/code/game/sound.dm index ffd6cd7139b..14c7ef8b139 100644 --- a/code/game/sound.dm +++ b/code/game/sound.dm @@ -502,6 +502,11 @@ 'sound/effects/bodyfall4.ogg' ) +/decl/sound_category/bodyfall_skrell_sound + sounds = list( + 'sound/effects/bodyfall_skrell1.ogg' + ) + /decl/sound_category/bodyfall_machine_sound sounds = list( 'sound/effects/bodyfall_machine1.ogg', diff --git a/code/modules/mob/living/carbon/human/species/station/skrell/skrell.dm b/code/modules/mob/living/carbon/human/species/station/skrell/skrell.dm index 70c4d205db8..d0612bd3833 100644 --- a/code/modules/mob/living/carbon/human/species/station/skrell/skrell.dm +++ b/code/modules/mob/living/carbon/human/species/station/skrell/skrell.dm @@ -81,6 +81,7 @@ ACCENT_SILVERSUN, ACCENT_KONYAN, ACCENT_EUROPA) zombie_type = SPECIES_ZOMBIE_SKRELL + bodyfall_sound = /decl/sound_category/bodyfall_skrell_sound /datum/species/skrell/handle_post_spawn(mob/living/carbon/human/H) ..() diff --git a/html/changelogs/geeves-happy_birthday_tomkiel.yml b/html/changelogs/geeves-happy_birthday_tomkiel.yml new file mode 100644 index 00000000000..e62b5075303 --- /dev/null +++ b/html/changelogs/geeves-happy_birthday_tomkiel.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Skrell now make a wet slapping noise when they fall over. Yeah." \ No newline at end of file diff --git a/sound/effects/bodyfall_skrell1.ogg b/sound/effects/bodyfall_skrell1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..8baa575414321b33f6875ed80ab5f9f3adb9fd49 GIT binary patch literal 9373 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 SYt|Dv`Oo(5`Q4sP!2bYC)np_9 literal 0 HcmV?d00001 From ac4093bf43698d0b8b7003a4ec5473b3f1990fc6 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Sun, 7 Mar 2021 18:22:53 +0000 Subject: [PATCH 36/38] "[ci skip] Automatic Build - 2021.03.07.18.22.53" --- html/changelog.html | 1 + html/changelogs/.all_changelog.yml | 1 + html/changelogs/geeves-happy_birthday_tomkiel.yml | 6 ------ 3 files changed, 2 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/geeves-happy_birthday_tomkiel.yml diff --git a/html/changelog.html b/html/changelog.html index a5b47931f77..079317fb18b 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -46,6 +46,7 @@
              • Lowered the laser tag gun recharge rate to 4 seconds per shot, down from 8 seconds per shot.
              • The Tachyon-Doppler Array outputs its results to the science channel instead of common, now.
              • You can now toggle the doppler array's reporting on or off by clicking on it.
              • +
              • Skrell now make a wet slapping noise when they fall over. Yeah.

              TheGreyWolf updated:

                diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 5ecab36356a..8b7b38e1b1d 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18755,6 +18755,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. of common, now. - rscadd: You can now toggle the doppler array's reporting on or off by clicking on it. + - rscadd: Skrell now make a wet slapping noise when they fall over. Yeah. TheGreyWolf: - tweak: New characters now start with their preference set to return to lobby if all their job slots are taken. diff --git a/html/changelogs/geeves-happy_birthday_tomkiel.yml b/html/changelogs/geeves-happy_birthday_tomkiel.yml deleted file mode 100644 index e62b5075303..00000000000 --- a/html/changelogs/geeves-happy_birthday_tomkiel.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - rscadd: "Skrell now make a wet slapping noise when they fall over. Yeah." \ No newline at end of file From 425fe5d387ea6400bcd3097f845c8ee9013b20c3 Mon Sep 17 00:00:00 2001 From: flpfs <70925284+flpfs@users.noreply.github.com> Date: Sun, 7 Mar 2021 15:37:52 -0300 Subject: [PATCH 37/38] Fixes IPC blurb (#11377) --- .../species/station/ipc/ipc_subspecies.dm | 3 +- html/changelogs/flpfs-fixblurb.yml | 42 ++++++++++++++++++ icons/mob/human_races/ipc/shell_preview.dmi | Bin 0 -> 495 bytes 3 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/flpfs-fixblurb.yml create mode 100644 icons/mob/human_races/ipc/shell_preview.dmi diff --git a/code/modules/mob/living/carbon/human/species/station/ipc/ipc_subspecies.dm b/code/modules/mob/living/carbon/human/species/station/ipc/ipc_subspecies.dm index f97fce081b5..eb15c7427d3 100644 --- a/code/modules/mob/living/carbon/human/species/station/ipc/ipc_subspecies.dm +++ b/code/modules/mob/living/carbon/human/species/station/ipc/ipc_subspecies.dm @@ -10,7 +10,7 @@ grab_mod = 1 blurb = "IPCs with humanlike properties. Their focus is on service, civilian, and medical, but there are no \ - job restrictions. Created in the late days of 2457, the Shell is a controversial IPC model equipped with a synthskin weave applied over its metal chassis \ + job restrictions. Created in the late days of 2450, the Shell is a controversial IPC model equipped with a synthskin weave applied over its metal chassis \ to create an uncannily close approximation of the organic form. Early models of Shell had the advantage of being able to compose themselves of a wide \ variety of organic parts, but contemporary models have been restricted to a single species for the sake of prosthetic integrity. The additional weight of \ the synthskin on the original Hephaestus frame reduces the efficacy of the unit's already strained coolant systems, and increases charge consumption." @@ -19,6 +19,7 @@ icobase = 'icons/mob/human_races/human/r_human.dmi' deform = 'icons/mob/human_races/ipc/robotic.dmi' + preview_icon = 'icons/mob/human_races/ipc/shell_preview.dmi' light_range = 0 light_power = 0 diff --git a/html/changelogs/flpfs-fixblurb.yml b/html/changelogs/flpfs-fixblurb.yml new file mode 100644 index 00000000000..3c03324fde0 --- /dev/null +++ b/html/changelogs/flpfs-fixblurb.yml @@ -0,0 +1,42 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: Flpfs + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "Changes the shell creation date in the IPC blurb to match the new lore." + - tweak: "Adds an image for shells in the blurb preview." diff --git a/icons/mob/human_races/ipc/shell_preview.dmi b/icons/mob/human_races/ipc/shell_preview.dmi new file mode 100644 index 0000000000000000000000000000000000000000..b59f1bd3886685e6a18669ed233c03e04417572f GIT binary patch literal 495 zcmVaG^Y!%o|Nbc{ zDI6ReI3yTXI3+(R8)`!=Wn%`Q>cB6Ny?OIhQ zNb9>hLMz?VP`aMMJZRK2v;$aUVWctALTARR(`$hkfLP#`cMeI!m(ib?=85He6+)fsSC1_#EKfU#EwYXpFv z0Wk!g$cy3{&T(mZ@ Date: Sun, 7 Mar 2021 18:38:35 +0000 Subject: [PATCH 38/38] "[ci skip] Automatic Build - 2021.03.07.18.38.35" --- html/changelog.html | 5 ++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/flpfs-fixblurb.yml | 42 ------------------------------ 3 files changed, 8 insertions(+), 42 deletions(-) delete mode 100644 html/changelogs/flpfs-fixblurb.yml diff --git a/html/changelog.html b/html/changelog.html index 079317fb18b..f3b9857f067 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -36,6 +36,11 @@

                07 March 2021

                +

                Flpfs updated:

                +
                  +
                • Changes the shell creation date in the IPC blurb to match the new lore.
                • +
                • Adds an image for shells in the blurb preview.
                • +

                Geeves updated:

                • Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them.
                • diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 8b7b38e1b1d..645bb59193a 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18740,6 +18740,9 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. witchbells: - rscadd: Added a plushtoy of Penny. You're welcome. 2021-03-07: + Flpfs: + - tweak: Changes the shell creation date in the IPC blurb to match the new lore. + - tweak: Adds an image for shells in the blurb preview. Geeves: - bugfix: Fixed brains dying instantly when the head gets decapitated or the body explodes. This will give roboticists enough time to retrieve and borg them. diff --git a/html/changelogs/flpfs-fixblurb.yml b/html/changelogs/flpfs-fixblurb.yml deleted file mode 100644 index 3c03324fde0..00000000000 --- a/html/changelogs/flpfs-fixblurb.yml +++ /dev/null @@ -1,42 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: Flpfs - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - tweak: "Changes the shell creation date in the IPC blurb to match the new lore." - - tweak: "Adds an image for shells in the blurb preview."