From 9807a2f9e0f1610a82a5c88c4f286241b0ffba19 Mon Sep 17 00:00:00 2001 From: Linzolle Date: Mon, 29 Nov 2021 17:22:13 -0700 Subject: [PATCH 01/37] pin removal and gun examine things --- .../recipes/recipes_weapon_and_ammo.dm | 16 -- code/modules/projectiles/gun.dm | 192 ++++++++++++++---- 2 files changed, 157 insertions(+), 51 deletions(-) diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index 87ec5cdaab..63972a98aa 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -1,19 +1,3 @@ -/datum/crafting_recipe/pin_removal - name = "Pin Removal" - result = /obj/item/gun - reqs = list(/obj/item/gun = 1) - parts = list(/obj/item/gun = 1) - tools = list(TOOL_WELDER, TOOL_SCREWDRIVER, TOOL_WIRECUTTER) - time = 50 - category = CAT_WEAPONRY - subcategory = CAT_OTHER - -/datum/crafting_recipe/pin_removal/check_requirements(mob/user, list/collected_requirements) - var/obj/item/gun/G = collected_requirements[/obj/item/gun][1] - if (G.no_pin_required || !G.pin) - return FALSE - return TRUE - /datum/crafting_recipe/strobeshield name = "Strobe Shield" result = /obj/item/shield/riot/flash diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 06bf298454..2759a8f8d6 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -1,5 +1,6 @@ #define DUALWIELD_PENALTY_EXTRA_MULTIPLIER 1.4 +#define FIRING_PIN_REMOVAL_DELAY 50 /obj/item/gun name = "gun" @@ -115,23 +116,28 @@ QDEL_NULL(chambered) return ..() -/obj/item/gun/CheckParts(list/parts_list) - ..() - var/obj/item/gun/G = locate(/obj/item/gun) in contents - if(G) - G.forceMove(loc) - QDEL_NULL(G.pin) - visible_message("[G] can now fit a new pin, but the old one was destroyed in the process.", null, null, 3) - qdel(src) - /obj/item/gun/examine(mob/user) . = ..() - if(no_pin_required) - return - if(pin) - . += "It has \a [pin] installed." - else - . += "It doesn't have a firing pin installed, and won't fire." + if(!no_pin_required) + if(pin) + . += "It has \a [pin] installed." + . += "[pin] looks like it could be removed with some tools." + else + . += "It doesn't have a firing pin installed, and won't fire." + + if(gun_light) + . += "It has \a [gun_light] [can_flashlight ? "" : "permanently "]mounted on it." + if(can_flashlight) //if it has a light and this is false, the light is permanent. + . += "[gun_light] looks like it can be unscrewed from [src]." + else if(can_flashlight) + . += "It has a mounting point for a seclite." + + if(bayonet) + . += "It has \a [bayonet] [can_bayonet ? "" : "permanently "]affixed to it." + if(can_bayonet) //if it has a bayonet and this is false, the bayonet is permanent. + . += "[bayonet] looks like it can be unscrewed from [src]." + else if(can_bayonet) + . += "It has a bayonet lug on it." /obj/item/gun/equipped(mob/living/user, slot) . = ..() @@ -239,7 +245,7 @@ return if(weapon_weight == WEAPON_HEAVY && user.get_inactive_held_item()) - to_chat(user, "You need both hands free to fire \the [src]!") + to_chat(user, "You need both hands free to fire [src]!") return user.DelayNextAction() @@ -417,12 +423,12 @@ if(!gun_light) if(!user.transferItemToLoc(I, src)) return - to_chat(user, "You click \the [S] into place on \the [src].") + to_chat(user, "You click [S] into place on [src].") if(S.on) set_light(0) - gun_light = S + set_gun_light(S) update_gunlight(user) - alight = new /datum/action/item_action/toggle_gunlight(src) + alight = new(src) if(loc == user) alight.Grant(user) else if(istype(I, /obj/item/kitchen/knife)) @@ -431,27 +437,133 @@ return ..() if(!user.transferItemToLoc(I, src)) return - to_chat(user, "You attach \the [K] to the front of \the [src].") + to_chat(user, "You attach [K] to [src]'s bayonet lug.") bayonet = K update_icon() - else if(I.tool_behaviour == TOOL_SCREWDRIVER) - if(gun_light) - var/obj/item/flashlight/seclite/S = gun_light - to_chat(user, "You unscrew the seclite from \the [src].") - gun_light = null - S.forceMove(get_turf(user)) - update_gunlight(user) - S.update_brightness(user) - QDEL_NULL(alight) - if(bayonet) - to_chat(user, "You unscrew the bayonet from \the [src].") - var/obj/item/kitchen/knife/K = bayonet - K.forceMove(get_turf(user)) - bayonet = null - update_icon() else return ..() +/obj/item/gun/screwdriver_act(mob/living/user, obj/item/I) + . = ..() + if(.) + return + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + if((can_flashlight && gun_light) && (can_bayonet && bayonet)) //give them a choice instead of removing both + var/list/possible_items = list(gun_light, bayonet) + var/obj/item/item_to_remove = input(user, "Select an attachment to remove", "Attachment Removal") as null|obj in possible_items + if(!item_to_remove || !user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + return remove_gun_attachment(user, I, item_to_remove) + + else if(gun_light && can_flashlight) //if it has a gun_light and can_flashlight is false, the flashlight is permanently attached. + return remove_gun_attachment(user, I, gun_light, "unscrewed") + + else if(bayonet && can_bayonet) //if it has a bayonet, and the bayonet can be removed + return remove_gun_attachment(user, I, bayonet, "unfix") + + else if(pin && user.is_holding(src)) + user.visible_message(span_warning("[user] attempts to remove [pin] from [src] with [I]."), + span_notice("You attempt to remove [pin] from [src]. (It will take [DisplayTimeText(FIRING_PIN_REMOVAL_DELAY)].)"), null, 3) + if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, volume = 50)) + if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay + return + user.visible_message(span_notice("[pin] is pried out of [src] by [user], destroying the pin in the process."), + span_warning("You pry [pin] out with [I], destroying the pin in the process."), null, 3) + QDEL_NULL(pin) + return TRUE + +/obj/item/gun/welder_act(mob/living/user, obj/item/I) + . = ..() + if(.) + return + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + if(pin && user.is_holding(src)) + user.visible_message(span_warning("[user] attempts to remove [pin] from [src] with [I]."), + span_notice("You attempt to remove [pin] from [src]. (It will take [DisplayTimeText(FIRING_PIN_REMOVAL_DELAY)].)"), null, 3) + if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, 5, volume = 50)) + if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay + return + user.visible_message(span_notice("[pin] is spliced out of [src] by [user], melting part of the pin in the process."), + span_warning("You splice [pin] out of [src] with [I], melting part of the pin in the process."), null, 3) + QDEL_NULL(pin) + return TRUE + +/obj/item/gun/wirecutter_act(mob/living/user, obj/item/I) + . = ..() + if(.) + return + if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK)) + return + if(pin && user.is_holding(src)) + user.visible_message(span_warning("[user] attempts to remove [pin] from [src] with [I]."), + span_notice("You attempt to remove [pin] from [src]. (It will take [DisplayTimeText(FIRING_PIN_REMOVAL_DELAY)].)"), null, 3) + if(I.use_tool(src, user, FIRING_PIN_REMOVAL_DELAY, volume = 50)) + if(!pin) //check to see if the pin is still there, or we can spam messages by clicking multiple times during the tool delay + return + user.visible_message(span_notice("[pin] is ripped out of [src] by [user], mangling the pin in the process."), + span_warning("You rip [pin] out of [src] with [I], mangling the pin in the process."), null, 3) + QDEL_NULL(pin) + return TRUE + +/obj/item/gun/proc/remove_gun_attachment(mob/living/user, obj/item/tool_item, obj/item/item_to_remove, removal_verb) + if(tool_item) + tool_item.play_tool_sound(src) + to_chat(user, span_notice("You [removal_verb ? removal_verb : "remove"] [item_to_remove] from [src].")) + item_to_remove.forceMove(drop_location()) + + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(item_to_remove) + + if(item_to_remove == bayonet) + return clear_bayonet() + else if(item_to_remove == gun_light) + return clear_gunlight() + +/obj/item/gun/proc/clear_bayonet() + if(!bayonet) + return + bayonet = null + update_appearance() + return TRUE + +/obj/item/gun/proc/clear_gunlight() + if(!gun_light) + return + var/obj/item/flashlight/seclite/removed_light = gun_light + set_gun_light(null) + update_gunlight() + removed_light.update_brightness() + QDEL_NULL(alight) + return TRUE + +/** + * Swaps the gun's seclight, dropping the old seclight if it has not been qdel'd. + * + * Returns the former gun_light that has now been replaced by this proc. + * Arguments: + * * new_light - The new light to attach to the weapon. Can be null, which will mean the old light is removed with no replacement. + */ +/obj/item/gun/proc/set_gun_light(obj/item/flashlight/seclite/new_light) + // Doesn't look like this should ever happen? We're replacing our old light with our old light? + if(gun_light == new_light) + CRASH("Tried to set a new gun light when the old gun light was also the new gun light.") + + . = gun_light + + // If there's an old gun light that isn't being QDELETED, detatch and drop it to the floor. + if(!QDELETED(gun_light)) + if(gun_light.loc == src) + gun_light.forceMove(get_turf(src)) + + // If there's a new gun light to be added, attach and move it to the gun. + if(new_light) + if(new_light.loc != src) + new_light.forceMove(src) + + gun_light = new_light + /obj/item/gun/ui_action_click(mob/user, action) if(istype(action, /datum/action/item_action/toggle_scope_zoom)) zoom(user, user.dir) @@ -606,9 +718,16 @@ user.client.view_size.zoomIn() /obj/item/gun/handle_atom_del(atom/A) + if(A == pin) + pin = null if(A == chambered) chambered = null update_icon() + if(A == bayonet) + clear_bayonet() + if(A == gun_light) + clear_gunlight() + return ..() /obj/item/gun/proc/getinaccuracy(mob/living/user, bonus_spread, stamloss) return 0 // Replacement TBD: Exponential curved aim instability system. @@ -642,3 +761,6 @@ . = recoil if(user && !user.has_gravity()) . = recoil*5 + +#undef FIRING_PIN_REMOVAL_DELAY +#undef DUALWIELD_PENALTY_EXTRA_MULTIPLIER From c2378d3f2663856619d8d823d52acf65939063bf Mon Sep 17 00:00:00 2001 From: Linzolle Date: Mon, 29 Nov 2021 17:40:08 -0700 Subject: [PATCH 02/37] helmet stuff --- code/modules/clothing/clothing.dm | 2 - code/modules/clothing/head/helmet.dm | 110 +++++++++++++++++---------- code/modules/projectiles/gun.dm | 2 +- 3 files changed, 71 insertions(+), 43 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 492768a8e0..3beeef91d3 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -21,8 +21,6 @@ var/active_sound = null var/toggle_cooldown = null var/cooldown = 0 - var/obj/item/flashlight/F = null - var/can_flashlight = 0 var/blocks_shove_knockdown = FALSE //Whether wearing the clothing item blocks the ability for shove to knock down. diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index de68883a7b..6b698f9619 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -16,17 +16,47 @@ dog_fashion = /datum/dog_fashion/head/helmet + var/can_flashlight = FALSE //if a flashlight can be mounted. if it has a flashlight and this is false, it is permanently attached. + var/obj/item/flashlight/seclite/attached_light + var/datum/action/item_action/toggle_helmet_flashlight/alight + +/obj/item/clothing/head/helmet/Initialize(mapload) + . = ..() + if(attached_light) + alight = new(src) + /obj/item/clothing/head/helmet/ComponentInitialize() . = ..() AddComponent(/datum/component/wearertargeting/earprotection, list(SLOT_HEAD)) +/obj/item/clothing/head/helmet/examine(mob/user) + . = ..() + if(attached_light) + . += "It has \a [attached_light] [can_flashlight ? "" : "permanently "]mounted on it." + if(can_flashlight) + . += "[attached_light] looks like it can be unscrewed from [src]." + else if(can_flashlight) + . += "It has a mounting point for a seclite." + +/obj/item/clothing/head/helmet/Destroy() + QDEL_NULL(attached_light) + return ..() + +/obj/item/clothing/head/helmet/handle_atom_del(atom/A) + if(A == attached_light) + attached_light = null + update_helmlight() + update_icon() + QDEL_NULL(alight) + return ..() + /obj/item/clothing/head/helmet/sec can_flashlight = 1 /obj/item/clothing/head/helmet/sec/attackby(obj/item/I, mob/user, params) if(issignaler(I)) var/obj/item/assembly/signaler/S = I - if(F) //Has a flashlight. Player must remove it, else it will be lost forever. + if(attached_light) //Has a flashlight. Player must remove it, else it will be lost forever. to_chat(user, "The mounted flashlight is in the way, remove it first!") return @@ -280,8 +310,8 @@ /obj/item/clothing/head/helmet/update_icon_state() var/state = "[initial(icon_state)]" - if(F) - if(F.on) + if(attached_light) + if(attached_light.on) state += "-flight-on" //"helmet-flight-on" // "helmet-cam-flight-on" else state += "-flight" //etc. @@ -289,7 +319,7 @@ icon_state = state /obj/item/clothing/head/helmet/ui_action_click(mob/user, action) - if(istype(action, /datum/action/item_action/toggle_helmet_flashlight)) + if(istype(action, alight)) toggle_helmlight() else ..() @@ -297,60 +327,60 @@ /obj/item/clothing/head/helmet/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/flashlight/seclite)) var/obj/item/flashlight/seclite/S = I - if(can_flashlight) - if(!F) - if(!user.transferItemToLoc(S, src)) - return - to_chat(user, "You click [S] into place on [src].") - if(S.on) - set_light(0) - F = S - update_icon() - update_helmlight(user) - verbs += /obj/item/clothing/head/helmet/proc/toggle_helmlight - var/datum/action/A = new /datum/action/item_action/toggle_helmet_flashlight(src) - if(loc == user) - A.Grant(user) + if(can_flashlight && !attached_light) + if(!user.transferItemToLoc(S, src)) + return + to_chat(user, "You click [S] into place on [src].") + if(S.on) + set_light(0) + attached_light = S + update_icon() + update_helmlight() + alight = new(src) + if(loc == user) + alight.Grant(user) return - - if(I.tool_behaviour == TOOL_SCREWDRIVER) - if(F) - for(var/obj/item/flashlight/seclite/S in src) - to_chat(user, "You unscrew the seclite from [src].") - F = null - S.forceMove(user.drop_location()) - update_helmlight(user) - S.update_brightness(user) - update_icon() - usr.update_inv_head() - verbs -= /obj/item/clothing/head/helmet/proc/toggle_helmlight - for(var/datum/action/item_action/toggle_helmet_flashlight/THL in actions) - qdel(THL) - return - return ..() +/obj/item/clothing/head/helmet/screwdriver_act(mob/living/user, obj/item/I) + ..() + if(can_flashlight && attached_light) //if it has a light but can_flashlight is false, the light is permanently attached. + I.play_tool_sound(src) + to_chat(user, "You unscrew [attached_light] from [src].") + attached_light.forceMove(drop_location()) + if(Adjacent(user) && !issilicon(user)) + user.put_in_hands(attached_light) + + var/obj/item/flashlight/removed_light = attached_light + attached_light = null + update_helmlight() + removed_light.update_brightness(user) + update_icon() + user.update_inv_head() + QDEL_NULL(alight) + return TRUE + /obj/item/clothing/head/helmet/proc/toggle_helmlight() set name = "Toggle Helmetlight" set category = "Object" set desc = "Click to toggle your helmet's attached flashlight." - if(!F) + if(!attached_light) return var/mob/user = usr if(user.incapacitated()) return - F.on = !F.on - to_chat(user, "You toggle the helmetlight [F.on ? "on":"off"].") + attached_light.on = !attached_light.on + to_chat(user, "You toggle the helmet-light [attached_light.on ? "on":"off"].") playsound(user, 'sound/weapons/empty.ogg', 100, 1) update_helmlight(user) /obj/item/clothing/head/helmet/proc/update_helmlight(mob/user = null) - if(F) - if(F.on) - set_light(F.brightness_on, F.flashlight_power, F.light_color) + if(attached_light) + if(attached_light.on) + set_light(attached_light.brightness_on, attached_light.flashlight_power, attached_light.light_color) else set_light(0) update_icon() diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm index 2759a8f8d6..bbd77ad665 100644 --- a/code/modules/projectiles/gun.dm +++ b/code/modules/projectiles/gun.dm @@ -64,7 +64,7 @@ var/obj/item/firing_pin/pin = /obj/item/firing_pin //standard firing pin for most guns var/no_pin_required = FALSE //whether the gun can be fired without a pin - var/obj/item/flashlight/gun_light + var/obj/item/flashlight/seclite/gun_light var/can_flashlight = FALSE var/gunlight_state = "flight" var/obj/item/kitchen/knife/bayonet From b1691e0dfa206932181c9a789541d1cfa7fc8c40 Mon Sep 17 00:00:00 2001 From: TripleShades Date: Mon, 6 Dec 2021 23:11:00 -0500 Subject: [PATCH 03/37] Update PubbyStation.dmm --- _maps/map_files/PubbyStation/PubbyStation.dmm | 1 + 1 file changed, 1 insertion(+) diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 791e6d1368..4078c690d4 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -29637,6 +29637,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/item/cautery, /turf/open/floor/plasteel/white, /area/science/robotics/lab) "btb" = ( From 1762960b892461691b7b27c9bfe76b459b3f1a33 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sun, 12 Dec 2021 00:31:04 +0000 Subject: [PATCH 04/37] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-15421.yml | 4 ---- 3 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-15421.yml diff --git a/html/changelog.html b/html/changelog.html index b1f30d9e83..48c66f11b9 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
+

12 December 2021

+

DeltaFire15 updated:

+
    +
  • Linters should no longer complain about afterattack sleeps.
  • +
+

11 December 2021

SandPoot updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index fd720bcc02..8fbaca363e 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -30392,3 +30392,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. too hot even though their body temperature is the same as it. - balance: The warm pool is no longer nearly boiling and the cool pool no longer goes below 0C. +2021-12-12: + DeltaFire15: + - bugfix: Linters should no longer complain about afterattack sleeps. diff --git a/html/changelogs/AutoChangeLog-pr-15421.yml b/html/changelogs/AutoChangeLog-pr-15421.yml deleted file mode 100644 index ffc347c20e..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15421.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "Linters should no longer complain about afterattack sleeps." From 13834847e050a8a3de798bf935764439ad473fc3 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Sat, 11 Dec 2021 17:04:05 -0800 Subject: [PATCH 05/37] it works better when you're actually using a delta --- code/controllers/subsystem/research.dm | 11 ++++---- code/modules/research/techweb/_techweb.dm | 34 +++++++++++++++++------ 2 files changed, 32 insertions(+), 13 deletions(-) diff --git a/code/controllers/subsystem/research.dm b/code/controllers/subsystem/research.dm index 46fb232d6d..be722ed4f1 100644 --- a/code/controllers/subsystem/research.dm +++ b/code/controllers/subsystem/research.dm @@ -346,12 +346,13 @@ SUBSYSTEM_DEF(research) for(var/i in bitcoins) bitcoins[i] *= income_time_difference / 10 science_tech.add_point_list(bitcoins) - if(!length(science_tech.last_bitcoins)) - science_tech.last_bitcoins = science_tech.research_points - for(var/i in science_tech.last_bitcoins) + var/list/income = science_tech.commit_income() + for(var/i in income) var/old_weighted = science_tech.last_bitcoins[i] * (1 MINUTES - income_time_difference) - var/new_weighted = science_tech.research_points[i] * income_time_difference - science_tech.last_bitcoins[i] = round((old_weighted + new_weighted) / (1 MINUTES)) + var/new_weighted = income[i] * income_time_difference + science_tech.last_bitcoins[i] = (old_weighted + new_weighted) / (1 MINUTES) + else + science_tech.last_bitcoins = bitcoins.Copy() last_income = world.time /datum/controller/subsystem/research/proc/calculate_server_coefficient() //Diminishing returns. diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm index 35871e0cb3..d542694236 100644 --- a/code/modules/research/techweb/_techweb.dm +++ b/code/modules/research/techweb/_techweb.dm @@ -19,6 +19,7 @@ var/list/research_logs = list() //IC logs. var/largest_bomb_value = 0 var/organization = "Third-Party" //Organization name, used for display. + var/list/next_income = list() //To be applied on the next passive techweb income var/list/last_bitcoins = list() //Current per-second production, used for display only. var/list/discovered_mutations = list() //Mutations discovered by genetics, this way they are shared and cant be destroyed by destroying a single console var/list/tiers = list() //Assoc list, id = number, 1 is available, 2 is all reqs are 1, so on @@ -105,10 +106,15 @@ V.rescan_views() V.updateUsrDialog() -/datum/techweb/proc/add_point_list(list/pointlist) - for(var/i in pointlist) - if(SSresearch.point_types[i] && pointlist[i] > 0) - research_points[i] += pointlist[i] +/datum/techweb/proc/add_point_list(list/pointlist, income = TRUE) + if(income) // i DO NOT TRUST byond to optimize this way properly + for(var/i in pointlist) + if(SSresearch.point_types[i] && pointlist[i] > 0) + next_income[i] += pointlist[i] + else + for(var/i in pointlist) + if(SSresearch.point_types[i] && pointlist[i] > 0) + research_points[i] += pointlist[i] /datum/techweb/proc/add_points_all(amount) var/list/l = SSresearch.point_types.Copy() @@ -116,6 +122,12 @@ l[i] = amount add_point_list(l) +/datum/techweb/proc/commit_income() + . = next_income.Copy() + add_point_list(next_income, income = FALSE) + for(var/i in next_income) + next_income[i] = 0 + /datum/techweb/proc/remove_point_list(list/pointlist) for(var/i in pointlist) if(SSresearch.point_types[i] && pointlist[i] > 0) @@ -170,16 +182,22 @@ /datum/techweb/proc/get_researched_nodes() return researched_nodes - hidden_nodes -/datum/techweb/proc/add_point_type(type, amount) +/datum/techweb/proc/add_point_type(type, amount, income = TRUE) if(!SSresearch.point_types[type] || (amount <= 0)) return FALSE - research_points[type] += amount + if(income) + next_income[type] += amount + else + research_points[type] += amount return TRUE -/datum/techweb/proc/modify_point_type(type, amount) +/datum/techweb/proc/modify_point_type(type, amount, income = TRUE) if(!SSresearch.point_types[type]) return FALSE - research_points[type] = max(0, research_points[type] + amount) + if(income && amount > 0) + next_income[type] += amount + else + research_points[type] = max(0, research_points[type] + amount) return TRUE /datum/techweb/proc/remove_point_type(type, amount) From fbd0434f244964fac0ca147d7bcb4bff6970982f Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Sat, 11 Dec 2021 19:46:24 -0600 Subject: [PATCH 06/37] Automatic changelog generation for PR #15426 [ci skip] --- html/changelogs/AutoChangeLog-pr-15426.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15426.yml diff --git a/html/changelogs/AutoChangeLog-pr-15426.yml b/html/changelogs/AutoChangeLog-pr-15426.yml new file mode 100644 index 0000000000..ef1f3e979f --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15426.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Per-minute science output fixed" From 924ed553b08c2233213ae929187c0275f4afcefe Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 13 Dec 2021 00:29:26 +0000 Subject: [PATCH 07/37] Automatic changelog compile [ci skip] --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 3 +++ html/changelogs/AutoChangeLog-pr-15426.yml | 4 ---- 3 files changed, 9 insertions(+), 4 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-15426.yml diff --git a/html/changelog.html b/html/changelog.html index 48c66f11b9..384a84b730 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,12 @@ -->
    +

    13 December 2021

    +

    Putnam3145 updated:

    +
      +
    • Per-minute science output fixed
    • +
    +

    12 December 2021

    DeltaFire15 updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 8fbaca363e..da28145d2e 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -30395,3 +30395,6 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-12-12: DeltaFire15: - bugfix: Linters should no longer complain about afterattack sleeps. +2021-12-13: + Putnam3145: + - bugfix: Per-minute science output fixed diff --git a/html/changelogs/AutoChangeLog-pr-15426.yml b/html/changelogs/AutoChangeLog-pr-15426.yml deleted file mode 100644 index ef1f3e979f..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15426.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "Putnam3145" -delete-after: True -changes: - - bugfix: "Per-minute science output fixed" From f50dafe14136dc381b068e0388f6327f13825c94 Mon Sep 17 00:00:00 2001 From: Putnam3145 Date: Mon, 13 Dec 2021 17:01:22 -0800 Subject: [PATCH 08/37] Fixes SDGF nutrition growth not to be exponential --- .../code/modules/reagents/chemistry/reagents/SDGF.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm index d15d3b360a..7bb4fa5db6 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm @@ -169,17 +169,17 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING if(21) to_chat(M, "You feel the synethic cells rest uncomfortably within your body as they start to pulse and grow rapidly.") if(22 to 29) - M.adjust_nutrition(M.nutrition/10) + M.adjust_nutrition(10) if(30) to_chat(M, "You feel the synethic cells grow and expand within yourself, bloating your body outwards.") if(31 to 49) - M.adjust_nutrition(M.nutrition/5) + M.adjust_nutrition(20) if(50) to_chat(M, "The synthetic cells begin to merge with your body, it feels like your body is made of a viscous water, making your movements difficult.") M.action_cooldown_mod += 4//If this makes you fast then please fix it, it should make you slow!! //candidates = pollGhostCandidates("Do you want to play as a clone of [M.name] and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you. ", "FermiClone", null, ROLE_SENTIENCE, 300) // see poll_ignore.dm, should allow admins to ban greifers or bullies if(51 to 79) - M.adjust_nutrition(M.nutrition/2) + M.adjust_nutrition(50) if(80) to_chat(M, "The cells begin to precipitate outwards of your body, you feel like you'll split soon...") if (M.nutrition < 20000) From b3f0a74ff94f6830e5597658825ec1f95d8e1715 Mon Sep 17 00:00:00 2001 From: DeltaFire Date: Tue, 14 Dec 2021 18:40:33 +0100 Subject: [PATCH 09/37] delay returns --- code/modules/events/_event.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index 95ebbf71d2..640dbc468f 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -1,4 +1,4 @@ -#define RANDOM_EVENT_ADMIN_INTERVENTION_TIME 10 +#define RANDOM_EVENT_ADMIN_INTERVENTION_TIME 30 //this datum is used by the events controller to dictate how it selects events /datum/round_event_control From 2c0068873458b4f4f3fe8514968e15ba67ef1782 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 15 Dec 2021 00:29:06 +0000 Subject: [PATCH 10/37] Automatic changelog compile [ci skip] --- html/changelog.html | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 384a84b730..78389aedb3 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -437,17 +437,6 @@
    • Adds the fat dart cigarette and to vendors
    • Adds the sprites for the fat dart
    - -

    13 October 2021

    -

    Hatterhat updated:

    -
      -
    • Contraband dealers are now embracing their inner Old Space Westerner. Look for the Old West Surplus Crate on your mildly-hacked cargo console today.
    • -
    -

    MrJWhit updated:

    -
      -
    • Adds more fire-saftey closets and trashpiles to boxstation
    • -
    • Adds trashpiles to delta.
    • -
    GoonStation 13 Development Team From a9c9998e2f9d00cc1d38547e729b236f939518e2 Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 16 Dec 2021 01:08:55 -0600 Subject: [PATCH 11/37] Automatic changelog generation for PR #15429 [ci skip] --- html/changelogs/AutoChangeLog-pr-15429.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15429.yml diff --git a/html/changelogs/AutoChangeLog-pr-15429.yml b/html/changelogs/AutoChangeLog-pr-15429.yml new file mode 100644 index 0000000000..0137994697 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15429.yml @@ -0,0 +1,4 @@ +author: "DeltaFire15" +delete-after: True +changes: + - bugfix: "The time for admins to cancel events is 30 seconds again." From 67cfd000fe8ce783e096b9eb903abfe1c4a7edce Mon Sep 17 00:00:00 2001 From: SandPoot Date: Thu, 16 Dec 2021 12:57:21 -0300 Subject: [PATCH 12/37] Upload files --- code/game/objects/items.dm | 8 ++++++++ code/modules/assembly/assembly.dm | 20 ++++++++++++-------- code/modules/assembly/holder.dm | 6 +++--- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 96fd32401a..b320db0a20 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -331,6 +331,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb return ..() /obj/item/on_attack_hand(mob/user, act_intent = user.a_intent, unarmed_attack_flags) + . = ..() + if(.) + return if(!user) return if(anchored) @@ -340,6 +343,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb to_chat(user, "You are unable to unequip that while wearing other garments over it!") return FALSE + . = TRUE + if(resistance_flags & ON_FIRE) var/mob/living/carbon/C = user var/can_handle_hot = FALSE @@ -374,6 +379,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb //If the item is in a storage item, take it out SEND_SIGNAL(loc, COMSIG_TRY_STORAGE_TAKE, src, user.loc, TRUE) + if(QDELETED(src)) //moving it out of the storage to the floor destroyed it. + return if(throwing) throwing.finalize(FALSE) @@ -386,6 +393,7 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb add_fingerprint(user) if(!user.put_in_active_hand(src, FALSE, FALSE)) user.dropItemToGround(src) + return TRUE /obj/item/proc/allow_attack_hand_drop(mob/user) return TRUE diff --git a/code/modules/assembly/assembly.dm b/code/modules/assembly/assembly.dm index c50ca2f187..67844d50bf 100644 --- a/code/modules/assembly/assembly.dm +++ b/code/modules/assembly/assembly.dm @@ -34,14 +34,16 @@ /obj/item/assembly/proc/on_attach() -/obj/item/assembly/proc/on_detach() //call this when detaching it from a device. handles any special functions that need to be updated ex post facto +///Call this when detaching it from a device. handles any special functions that need to be updated ex post facto +/obj/item/assembly/proc/on_detach() if(!holder) return FALSE forceMove(holder.drop_location()) holder = null return TRUE -/obj/item/assembly/proc/holder_movement() //Called when the holder is moved +///Called when the holder is moved +/obj/item/assembly/proc/holder_movement() if(!holder) return FALSE setDir(holder.dir) @@ -53,7 +55,6 @@ return FALSE return TRUE - //Called when another assembly acts on this one, var/radio will determine where it came from for wire calcs /obj/item/assembly/proc/pulsed(radio = FALSE) if(wire_type & WIRE_RECEIVE) @@ -62,7 +63,6 @@ INVOKE_ASYNC(src, .proc/activate) return TRUE - //Called when this device attempts to act on another device, var/radio determines if it was sent via radio or direct /obj/item/assembly/proc/pulse(radio = FALSE) if(connected && wire_type) @@ -74,7 +74,6 @@ holder.process_activation(src, 0, 1) return TRUE - // What the device does when turned on /obj/item/assembly/proc/activate() if(QDELETED(src) || !secured || (next_activate > world.time)) @@ -82,13 +81,11 @@ next_activate = world.time + activate_cooldown return TRUE - /obj/item/assembly/proc/toggle_secure() secured = !secured update_icon() return secured - /obj/item/assembly/attackby(obj/item/W, mob/user, params) if(isassembly(W)) var/obj/item/assembly/A = W @@ -115,7 +112,6 @@ . = ..() . += "\The [src] [secured? "is secured and ready to be used!" : "can be attached to other things."]" - /obj/item/assembly/attack_self(mob/user) if(!user) return FALSE @@ -125,3 +121,11 @@ /obj/item/assembly/interact(mob/user) return ui_interact(user) + +/obj/item/assembly/ui_host(mob/user) + if(holder) + return holder + return src + +/obj/item/assembly/ui_state(mob/user) + return GLOB.hands_state diff --git a/code/modules/assembly/holder.dm b/code/modules/assembly/holder.dm index 84e70bbbb3..113964d68e 100644 --- a/code/modules/assembly/holder.dm +++ b/code/modules/assembly/holder.dm @@ -88,14 +88,14 @@ if(a_right) a_right.dropped(user) -/obj/item/assembly_holder/on_attack_hand()//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess +/obj/item/assembly_holder/on_attack_hand(user, act_intent)//Perhapse this should be a holder_pickup proc instead, can add if needbe I guess . = ..() if(.) return if(a_left) - a_left.attack_hand() + a_left.attack_hand(user, act_intent) if(a_right) - a_right.attack_hand() + a_right.attack_hand(user, act_intent) /obj/item/assembly_holder/screwdriver_act(mob/user, obj/item/tool) if(..()) From 1a637f221124a94d7d79e6632b8a68114ffd240c Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Thu, 16 Dec 2021 14:56:35 -0600 Subject: [PATCH 13/37] Automatic changelog generation for PR #15432 [ci skip] --- html/changelogs/AutoChangeLog-pr-15432.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15432.yml diff --git a/html/changelogs/AutoChangeLog-pr-15432.yml b/html/changelogs/AutoChangeLog-pr-15432.yml new file mode 100644 index 0000000000..90cd27d0bb --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15432.yml @@ -0,0 +1,4 @@ +author: "SandPoot" +delete-after: True +changes: + - bugfix: "Fixes assembly holders." From 7c3bdf6c8afdcdf6024a9d1fa281dcbd900f4fcc Mon Sep 17 00:00:00 2001 From: Changelogs Date: Fri, 17 Dec 2021 00:31:03 +0000 Subject: [PATCH 14/37] Automatic changelog compile [ci skip] --- html/changelog.html | 10 ++++++++++ html/changelogs/.all_changelog.yml | 5 +++++ html/changelogs/AutoChangeLog-pr-15429.yml | 4 ---- html/changelogs/AutoChangeLog-pr-15432.yml | 4 ---- 4 files changed, 15 insertions(+), 8 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-15429.yml delete mode 100644 html/changelogs/AutoChangeLog-pr-15432.yml diff --git a/html/changelog.html b/html/changelog.html index 78389aedb3..b44a58be3c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,16 @@ -->
    +

    17 December 2021

    +

    DeltaFire15 updated:

    +
      +
    • The time for admins to cancel events is 30 seconds again.
    • +
    +

    SandPoot updated:

    +
      +
    • Fixes assembly holders.
    • +
    +

    13 December 2021

    Putnam3145 updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index da28145d2e..0c24ab2b14 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -30398,3 +30398,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-12-13: Putnam3145: - bugfix: Per-minute science output fixed +2021-12-17: + DeltaFire15: + - bugfix: The time for admins to cancel events is 30 seconds again. + SandPoot: + - bugfix: Fixes assembly holders. diff --git a/html/changelogs/AutoChangeLog-pr-15429.yml b/html/changelogs/AutoChangeLog-pr-15429.yml deleted file mode 100644 index 0137994697..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15429.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "DeltaFire15" -delete-after: True -changes: - - bugfix: "The time for admins to cancel events is 30 seconds again." diff --git a/html/changelogs/AutoChangeLog-pr-15432.yml b/html/changelogs/AutoChangeLog-pr-15432.yml deleted file mode 100644 index 90cd27d0bb..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15432.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: "SandPoot" -delete-after: True -changes: - - bugfix: "Fixes assembly holders." From 9c408be0dcd1efda2b93d16f832bfa7dcc642e4d Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 18 Dec 2021 00:29:33 +0000 Subject: [PATCH 15/37] Automatic changelog compile [ci skip] --- html/changelog.html | 27 --------------------------- 1 file changed, 27 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index b44a58be3c..a19bed4578 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -420,33 +420,6 @@
    • Removed a panic from auxmos
    • Properly implemented hysteresis on heat exchanger processing
    - -

    16 October 2021

    -

    Ryll/Shaps updated:

    -
      -
    • Asay now supports pings (via using @[adminckey])
    • -
    -

    SandPoot updated:

    -
      -
    • If a gamemode fails to load too many times, a safe gamemode will be loaded instead.
    • -
    • Dynamic is no longer hardcoded, and you can now set a gamemode to be forced in the configs.
    • -
    • Equip delays are a bit less weird now, only relevant for coders/people who use straight jackets... on themself, since that's the only thing that uses it right now.
    • -
    • Toggling arousal will properly update your sprite.
    • -
    • That also means no spam when moving it in your hands.
    • -
    -

    WanderingFox95 updated:

    -
      -
    • Removes the quick attack loop (like TG did it)
    • -
    -

    dapnee updated:

    -
      -
    • BEPIS to science tweak: moved the courtroom
    • -
    -

    keronshb updated:

    -
      -
    • Adds the fat dart cigarette and to vendors
    • -
    • Adds the sprites for the fat dart
    • -
    GoonStation 13 Development Team From cc11cae967c7cc1b34c38382f7c67ed9937db299 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 18 Dec 2021 09:17:18 -0700 Subject: [PATCH 16/37] Update chem_synthesizer.dm --- code/modules/reagents/chemistry/machinery/chem_synthesizer.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm index 489f9dd179..3c544f290f 100644 --- a/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm +++ b/code/modules/reagents/chemistry/machinery/chem_synthesizer.dm @@ -53,8 +53,8 @@ return beaker = new /obj/item/reagent_containers/glass/beaker/bluespace(src) visible_message("[src] dispenses a bluespace beaker.") - if("amount") - var/input = text2num(params["amount"]) + if("synth_amount") + var/input = text2num(params["synth_amount"]) if(input) amount = input update_icon() From 24cb27f5cbca94f9486223357bbff15a541b3ce5 Mon Sep 17 00:00:00 2001 From: silicons <2003111+silicons@users.noreply.github.com> Date: Sat, 18 Dec 2021 09:17:47 -0700 Subject: [PATCH 17/37] Update ChemDebugSynthesizer.js --- tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js b/tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js index 0e073ba885..b82c793703 100644 --- a/tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js +++ b/tgui/packages/tgui/interfaces/ChemDebugSynthesizer.js @@ -33,8 +33,8 @@ export const ChemDebugSynthesizer = (props, context) => { maxValue={beakerMaxVolume} step={1} stepPixelSize={2} - onChange={(e, value) => act('amount', { - amount: value, + onChange={(e, value) => act('synth_amount', { + synth_amount: value, })} />
- -

25 October 2021

-

Putnam3145 updated:

-
    -
  • Vent pumps can now be set to siphoning via the air alarm UI
  • -
-

keronshb updated:

-
    -
  • 10k pirate spending money
  • -
GoonStation 13 Development Team From 857c612138df2c67a89940b563f064178a5bd9fc Mon Sep 17 00:00:00 2001 From: Changelogs Date: Tue, 28 Dec 2021 00:29:46 +0000 Subject: [PATCH 35/37] Automatic changelog compile [ci skip] --- html/changelog.html | 7 ------- 1 file changed, 7 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 03335fb87d..efbaa0710a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -399,13 +399,6 @@
  • -20 Wound bonus for Hyper Eu
  • Fixes hyper eu's slowdown when it's not wielded
  • - -

    26 October 2021

    -

    WanderingFox95 updated:

    -
      -
    • bone anvils and bone ingots
    • -
    • bone anvil sprites
    • -
    GoonStation 13 Development Team From a11e94eefc46d7ed0adf60c432497972b8a6092b Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Tue, 28 Dec 2021 15:35:31 -0600 Subject: [PATCH 36/37] Automatic changelog generation for PR #15435 [ci skip] --- html/changelogs/AutoChangeLog-pr-15435.yml | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-15435.yml diff --git a/html/changelogs/AutoChangeLog-pr-15435.yml b/html/changelogs/AutoChangeLog-pr-15435.yml new file mode 100644 index 0000000000..80a1990f00 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-15435.yml @@ -0,0 +1,7 @@ +author: "TripleShades" +delete-after: True +changes: + - rscadd: "(Festive Station) Fixes" + - rscadd: "Readds the cold to Festive Station +tweak: (Festive Station) Fixes" + - rscadd: "(Pubby) Cautery??? I think this is leftover but nobody has touched Pubby since me so it's fine probably" From 35a606007c00cf27753b089b41d36c25017286c4 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Wed, 29 Dec 2021 00:29:28 +0000 Subject: [PATCH 37/37] Automatic changelog compile [ci skip] --- html/changelog.html | 8 ++++++++ html/changelogs/.all_changelog.yml | 6 ++++++ html/changelogs/AutoChangeLog-pr-15435.yml | 7 ------- 3 files changed, 14 insertions(+), 7 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-15435.yml diff --git a/html/changelog.html b/html/changelog.html index efbaa0710a..d0d357172a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,14 @@ -->
    +

    29 December 2021

    +

    TripleShades updated:

    +
      +
    • (Festive Station) Fixes
    • +
    • Readds the cold to Festive Station tweak: (Festive Station) Fixes
    • +
    • (Pubby) Cautery??? I think this is leftover but nobody has touched Pubby since me so it's fine probably
    • +
    +

    23 December 2021

    Putnam3145 updated:

      diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 333a33d394..903fb8e1ae 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -30420,3 +30420,9 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-12-23: Putnam3145: - bugfix: Atmos group processing heuristic no longer does opposite of intent +2021-12-29: + TripleShades: + - rscadd: (Festive Station) Fixes + - rscadd: 'Readds the cold to Festive Station tweak: (Festive Station) Fixes' + - rscadd: (Pubby) Cautery??? I think this is leftover but nobody has touched Pubby + since me so it's fine probably diff --git a/html/changelogs/AutoChangeLog-pr-15435.yml b/html/changelogs/AutoChangeLog-pr-15435.yml deleted file mode 100644 index 80a1990f00..0000000000 --- a/html/changelogs/AutoChangeLog-pr-15435.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: "TripleShades" -delete-after: True -changes: - - rscadd: "(Festive Station) Fixes" - - rscadd: "Readds the cold to Festive Station -tweak: (Festive Station) Fixes" - - rscadd: "(Pubby) Cautery??? I think this is leftover but nobody has touched Pubby since me so it's fine probably"