From 18648f81bfc13ae6b4d7697c1ecca40a62104783 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Sat, 24 Feb 2024 00:43:41 +0000 Subject: [PATCH 01/67] Automatic changelog compile [ci skip] --- html/changelogs/AutoChangeLog-pr-2734.yml | 11 ----------- html/changelogs/archive/2024-02.yml | 10 ++++++++++ 2 files changed, 10 insertions(+), 11 deletions(-) delete mode 100644 html/changelogs/AutoChangeLog-pr-2734.yml diff --git a/html/changelogs/AutoChangeLog-pr-2734.yml b/html/changelogs/AutoChangeLog-pr-2734.yml deleted file mode 100644 index 6b2c85a65ac1..000000000000 --- a/html/changelogs/AutoChangeLog-pr-2734.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: ryerice, [Apogee-dev](https://github.com/Apogee-dev) -changes: - - {rscadd: "All the SVGs have been placed in a Illestren museum, somehow, instead - being replaced by the SKM, CLIP's former standard issue rifle!"} - - {rscadd: 7.62x39mm has been renamed to 7.62x40mm CLIP} - - {rscadd: LMGs now support bipods; this is a mystery tool that will be useful later!} - - {bugfix: 7.62x40mm no longer breaks spread on the rifles it's used in} - - {rscdel: NT-SVG and AK-74 have been merged into a single gun} - - {balance: 7.62x40mm now contains eighty rounds per ammo box} - - {bugfix: 45-70 hollow point ammo boxes now no longer contains 357 for some reason} -delete-after: true diff --git a/html/changelogs/archive/2024-02.yml b/html/changelogs/archive/2024-02.yml index 172527c38a4f..8abca39ef0da 100644 --- a/html/changelogs/archive/2024-02.yml +++ b/html/changelogs/archive/2024-02.yml @@ -230,3 +230,13 @@ - bugfix: All the PGF weapons should be correctly sized now thgvr: - bugfix: SMGs are now too large to store in your bag +2024-02-24: + ryerice, [Apogee-dev](https://github.com/Apogee-dev): + - rscadd: All the SVGs have been placed in a Illestren museum, somehow, instead + being replaced by the SKM, CLIP's former standard issue rifle! + - rscadd: 7.62x39mm has been renamed to 7.62x40mm CLIP + - rscadd: LMGs now support bipods; this is a mystery tool that will be useful later! + - bugfix: 7.62x40mm no longer breaks spread on the rifles it's used in + - rscdel: NT-SVG and AK-74 have been merged into a single gun + - balance: 7.62x40mm now contains eighty rounds per ammo box + - bugfix: 45-70 hollow point ammo boxes now no longer contains 357 for some reason From 314715b195bede183b63be5a0b1970ed10d9406a Mon Sep 17 00:00:00 2001 From: Martinpachu <86135885+Martinpachu@users.noreply.github.com> Date: Mon, 26 Feb 2024 07:38:57 -0300 Subject: [PATCH 02/67] Removes clowns from the butcher's cleaver description. (#2768) ## About The Pull Request As the name says. ## Why It's Good For The Game comedy is illegal in shiptest ## Changelog :cl: fix: Removed mention of clowns in the butcher cleaver's description. /:cl: --- code/game/objects/items/kitchen.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm index 71799b83004e..2732e0d37719 100644 --- a/code/game/objects/items/kitchen.dm +++ b/code/game/objects/items/kitchen.dm @@ -157,7 +157,7 @@ name = "butcher's cleaver" icon_state = "butch" item_state = "butch" - desc = "A huge thing used for chopping and chopping up meat. This includes clowns and clown by-products." + desc = "A huge thing used for chopping and chopping up meat." flags_1 = CONDUCT_1 force = 15 throwforce = 10 From a8ffd957caa64c1bed21fc655ac0a5aea12f1095 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 26 Feb 2024 04:54:31 -0600 Subject: [PATCH 03/67] Automatic changelog generation for PR #2768 [ci skip] --- html/changelogs/AutoChangeLog-pr-2768.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2768.yml diff --git a/html/changelogs/AutoChangeLog-pr-2768.yml b/html/changelogs/AutoChangeLog-pr-2768.yml new file mode 100644 index 000000000000..260e7543a959 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2768.yml @@ -0,0 +1,4 @@ +author: Martinpachu +changes: + - {bugfix: Removed mention of clowns in the butcher cleaver's description.} +delete-after: true From abd3a32b1caa7cba9a59eaf77c9ca02f7298a43a Mon Sep 17 00:00:00 2001 From: Martinpachu <86135885+Martinpachu@users.noreply.github.com> Date: Mon, 26 Feb 2024 07:40:16 -0300 Subject: [PATCH 04/67] Rebalances prices of guns. (#2756) ## About The Pull Request Rebalances the prices of guns aimed towards mostly making automatics such as the SKM, P16 and Cobra more expensive, and slightly lowers the price of shotguns. Waiting until the SKM merge so that i can change the price of that without repercussions. ## Why It's Good For The Game Automatics are very powerful and should have a price that matches so. Might also make non-automatic options such as the Illestren, Shotguns and Pistols more worthwhile. ## Changelog :cl: balance: Cargo gun crates are more granularized, having only one gun at a time and a price reflecting that. Prices were rebalanced making automatics more expensive overall. /:cl: --- code/modules/cargo/packs/gun.dm | 117 ++++++++++++++------------------ 1 file changed, 50 insertions(+), 67 deletions(-) diff --git a/code/modules/cargo/packs/gun.dm b/code/modules/cargo/packs/gun.dm index c75e16b348cc..05fb2308702b 100644 --- a/code/modules/cargo/packs/gun.dm +++ b/code/modules/cargo/packs/gun.dm @@ -19,38 +19,34 @@ /datum/supply_pack/gun/commanders name = "Commander pistol crate" - desc = "Contains two modified Candor 'Commander' pistols, produced by Nanotrasen and chambered in 9mm." - cost = 1500 - contains = list(/obj/item/gun/ballistic/automatic/pistol/commander, - /obj/item/gun/ballistic/automatic/pistol/commander) + desc = "Contains a modified Candor 'Commander' pistol, produced by Nanotrasen and chambered in 9mm." + cost = 750 + contains = list(/obj/item/gun/ballistic/automatic/pistol/commander) /datum/supply_pack/gun/makarovs name = "Stechkin pistol crate" - desc = "Contains two concealable stechkin pistols, produced by Scarborough Arms and chambered in 10mm." - cost = 2000 + desc = "Contains a concealable stechkin pistol, produced by Scarborough Arms and chambered in 10mm." + cost = 1000 contains = list(/obj/item/gun/ballistic/automatic/pistol, /obj/item/gun/ballistic/automatic/pistol) /datum/supply_pack/gun/revolver name = "Scarbourgh Revolver crate" - desc = "Contains two concealable Scarbourgh revolvers, chambered in .357." - cost = 2500 - contains = list(/obj/item/gun/ballistic/revolver, - /obj/item/gun/ballistic/revolver) + desc = "Contains a concealable Scarbourgh revolver, chambered in .357." + cost = 1250 + contains = list(/obj/item/gun/ballistic/revolver) /datum/supply_pack/gun/detrevolver name = "Hunter's Pride Detective Revolver crate" - desc = "Contains two concealable Solarian revolvers, chambered in .38." - cost = 2000 - contains = list(/obj/item/gun/ballistic/revolver/detective, - /obj/item/gun/ballistic/revolver/detective) + desc = "Contains a concealable Solarian revolver, chambered in .38." + cost = 1000 + contains = list(/obj/item/gun/ballistic/revolver/detective) /datum/supply_pack/gun/shadowrevolver name = "Shadow Revolver crate" - desc = "Contains two concealable Shadow revolvers, chambered in .45 ACP." - cost = 2500 - contains = list(/obj/item/gun/ballistic/revolver/shadow, - /obj/item/gun/ballistic/revolver/shadow) + desc = "Contains a concealable Shadow revolver, chambered in .45 ACP." + cost = 1000 + contains = list(/obj/item/gun/ballistic/revolver/shadow) /* @@ -58,27 +54,24 @@ */ /datum/supply_pack/gun/laser - name = "Lasers Crate" - desc = "Contains two lethal, high-energy laser guns." - cost = 2000 - contains = list(/obj/item/gun/energy/laser, - /obj/item/gun/energy/laser) + name = "Laser Gun Crate" + desc = "Contains a lethal, high-energy laser gun." + cost = 1000 + contains = list(/obj/item/gun/energy/laser) crate_name = "laser crate" /datum/supply_pack/gun/laser name = "Mini Energy Gun Crate" - desc = "Contains two small, versatile energy guns, capable of firing both nonlethal and lethal blasts, but with a limited power cell." - cost = 1500 - contains = list(/obj/item/gun/energy/e_gun/mini, - /obj/item/gun/energy/e_gun/mini) + desc = "Contains a small, versatile energy guns, capable of firing both nonlethal and lethal blasts, but with a limited power cell." + cost = 500 + contains = list(/obj/item/gun/energy/e_gun/mini) crate_name = "laser crate" /datum/supply_pack/gun/energy - name = "Energy Guns Crate" - desc = "Contains two versatile energy guns, capable of firing both nonlethal and lethal blasts of light." - cost = 2500 - contains = list(/obj/item/gun/energy/e_gun, - /obj/item/gun/energy/e_gun) + name = "Energy Gun Crate" + desc = "Contains a versatile energy gun, capable of firing both nonlethal and lethal blasts of light." + cost = 1250 + contains = list(/obj/item/gun/energy/e_gun) crate_name = "energy gun crate" crate_type = /obj/structure/closet/crate/secure/plasma @@ -95,19 +88,17 @@ */ /datum/supply_pack/gun/hellfire_shotgun - name = "Hellfire Shotguns Crate" - desc = "For when you need to deal with 7 hooligans. Contains 2 pump shotguns, each with a 8-round capacity." - cost = 4500 - contains = list(/obj/item/gun/ballistic/shotgun/hellfire, - /obj/item/gun/ballistic/shotgun/hellfire) + name = "Hellfire Shotgun Crate" + desc = "For when you need to deal with 7 hooligans. Contains a pump shotguns, with a 8-round capacity." + cost = 2000 + contains = list(/obj/item/gun/ballistic/shotgun/hellfire) crate_name = "shotguns crate" /datum/supply_pack/gun/brimstone_shotgun - name = "Brimstone Shotguns Crate" - desc = "For when you need to deal with 5 hooligans, and QUICKLY. Contains 2 slamfire shotguns, each with a 5-round capacity. Warranty voided if sawed off." - cost = 4500 - contains = list(/obj/item/gun/ballistic/shotgun/brimstone, - /obj/item/gun/ballistic/shotgun/brimstone) + name = "Brimstone Shotgun Crate" + desc = "For when you need to deal with 5 hooligans, and QUICKLY. Contains a slamfire shotguns, with a 5-round capacity. Warranty voided if sawed off." + cost = 2000 + contains = list(/obj/item/gun/ballistic/shotgun/brimstone) crate_name = "shotguns crate" /* @@ -116,52 +107,44 @@ /datum/supply_pack/gun/winchester name = "Flaming Arrow Lever Action Rifle Crate" - desc = "Contains three antiquated lever action rifles intended for hunting wildlife. Chambered in .38 rounds." - cost = 1500 - contains = list(/obj/item/gun/ballistic/shotgun/flamingarrow, - /obj/item/gun/ballistic/shotgun/flamingarrow, - /obj/item/gun/ballistic/shotgun/flamingarrow) + desc = "Contains a antiquated lever action rifles intended for hunting wildlife. Chambered in .38 rounds." + cost = 750 + contains = list(/obj/item/gun/ballistic/shotgun/flamingarrow) crate_name = "rifle crate" /datum/supply_pack/gun/cobra20 name = "Cobra-20 SMG Crate" - desc = "Contains two .45 submachine guns, manufactured by Scaraborough Arms and chambered in .45" + desc = "Contains a .45 submachine guns, manufactured by Scaraborough Arms and chambered in .45" cost = 3000 - contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra, - /obj/item/gun/ballistic/automatic/smg/c20r/cobra) + contains = list(/obj/item/gun/ballistic/automatic/smg/c20r/cobra) crate_name = "SMG crate" /datum/supply_pack/gun/illestren name = "Illestren Rifle Crate" - desc = "Contains three expertly made bolt action rifles intended for hunting wildlife. Chambered in 8x50mmR rounds." - cost = 4000 - contains = list(/obj/item/gun/ballistic/rifle/illestren, - /obj/item/gun/ballistic/rifle/illestren, - /obj/item/gun/ballistic/rifle/illestren) + desc = "Contains a expertly made bolt action rifles intended for hunting wildlife. Chambered in 8x50mmR rounds." + cost = 1250 + contains = list(/obj/item/gun/ballistic/rifle/illestren) crate_name = "rifle crate" /datum/supply_pack/gun/wt550 name = "WT-550 Auto Rifle Crate" - desc = "Contains two high-powered, semiautomatic rifles chambered in 4.6x30mm." - cost = 6000 - contains = list(/obj/item/gun/ballistic/automatic/smg/wt550, - /obj/item/gun/ballistic/automatic/smg/wt550) + desc = "Contains a high-powered, automatic personal defense weapon chambered in 4.6x30mm." + cost = 4000 + contains = list(/obj/item/gun/ballistic/automatic/smg/wt550) crate_name = "auto rifle crate" /datum/supply_pack/gun/p16 name = "P16 Assault Rifle Crate" - desc = "Contains two high-powered, automatic rifles chambered in 5.56mm." - cost = 8000 - contains = list(/obj/item/gun/ballistic/automatic/assault/p16, - /obj/item/gun/ballistic/automatic/assault/p16) + desc = "Contains a high-powered, automatic rifles chambered in 5.56mm." + cost = 5000 + contains = list(/obj/item/gun/ballistic/automatic/assault/p16) crate_name = "auto rifle crate" /datum/supply_pack/gun/skm name = "SKM-24 Rifle Crate" - desc = "Contains two high-powered, automatic rifles chambered in 7.62x40mm CLIP." - cost = 6000 - contains = list(/obj/item/gun/ballistic/automatic/assault/skm, - /obj/item/gun/ballistic/automatic/assault/skm) + desc = "Contains a high-powered, automatic rifles chambered in 7.62x40mm CLIP." + cost = 5000 + contains = list(/obj/item/gun/ballistic/automatic/assault/skm) crate_name = "auto rifle crate" /* From ad90123fb979d2d6d674bc2e31f31841fa2161e2 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 26 Feb 2024 05:13:17 -0600 Subject: [PATCH 05/67] Automatic changelog generation for PR #2756 [ci skip] --- html/changelogs/AutoChangeLog-pr-2756.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2756.yml diff --git a/html/changelogs/AutoChangeLog-pr-2756.yml b/html/changelogs/AutoChangeLog-pr-2756.yml new file mode 100644 index 000000000000..a2dc725bf27e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2756.yml @@ -0,0 +1,6 @@ +author: Martinpachu +changes: + - {balance: 'Cargo gun crates are more granularized, having only one gun at a time + and a price reflecting that. Prices were rebalanced making automatics more expensive + overall.'} +delete-after: true From 008b0d12bcfd53d1f5a243f2a485eb49db3d8e01 Mon Sep 17 00:00:00 2001 From: Martinpachu <86135885+Martinpachu@users.noreply.github.com> Date: Mon, 26 Feb 2024 07:40:41 -0300 Subject: [PATCH 06/67] Kills combat knife crate and replaces it with survival knives (#2736) ## About The Pull Request As the name says!!!!! ## Why It's Good For The Game Holdover from TG, massively overpriced for today's shiptest and combat knives are being kept as a higher-tier loot item. ## Changelog :cl: balance: Changes combat knives in cargo to survival knives and cheapens their crate. /:cl: --- code/modules/cargo/packs/sec_supply.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/modules/cargo/packs/sec_supply.dm b/code/modules/cargo/packs/sec_supply.dm index 5c0ec7b26964..023ab5ee853f 100644 --- a/code/modules/cargo/packs/sec_supply.dm +++ b/code/modules/cargo/packs/sec_supply.dm @@ -63,13 +63,13 @@ /obj/item/shield/riot) crate_name = "riot shields crate" -/datum/supply_pack/sec_supply/combatknives - name = "Combat Knives Crate" - desc = "Contains three sharpened combat knives. Each knife guaranteed to fit snugly inside any galactic-standard boot." - cost = 2500 - contains = list(/obj/item/kitchen/knife/combat, - /obj/item/kitchen/knife/combat, - /obj/item/kitchen/knife/combat) +/datum/supply_pack/sec_supply/survknives + name = "Survival Knives Crate" + desc = "Contains three sharpened survival knives. Each knife guaranteed to fit snugly inside any galactic-standard boot." + cost = 500 + contains = list(/obj/item/kitchen/knife/combat/survival, + /obj/item/kitchen/knife/combat/survival, + /obj/item/kitchen/knife/combat/survival) crate_name = "combat knife crate" /datum/supply_pack/sec_supply/fire From c07d1e870e016918bf96d279f9f6dfec46ca83d6 Mon Sep 17 00:00:00 2001 From: Changelogs Date: Mon, 26 Feb 2024 05:31:37 -0600 Subject: [PATCH 07/67] Automatic changelog generation for PR #2736 [ci skip] --- html/changelogs/AutoChangeLog-pr-2736.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 html/changelogs/AutoChangeLog-pr-2736.yml diff --git a/html/changelogs/AutoChangeLog-pr-2736.yml b/html/changelogs/AutoChangeLog-pr-2736.yml new file mode 100644 index 000000000000..6e3ac8a6c201 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-2736.yml @@ -0,0 +1,5 @@ +author: Martinpachu +changes: + - {balance: Changes combat knives in cargo to survival knives and cheapens their + crate.} +delete-after: true From 88ed280cdf8367d79d43aae76e0cba42d852de45 Mon Sep 17 00:00:00 2001 From: Theos Date: Mon, 26 Feb 2024 05:41:28 -0500 Subject: [PATCH 08/67] Adds the ability for admins to bar ship docking permission in the event someone knows what they did. (#2751) ## About The Pull Request Blacklist button in shuttle manipulator. If someone is being naughty they can be barred access from the station. ![image](https://github.com/shiptest-ss13/Shiptest/assets/24857008/8ef2ff63-ac8d-4866-8679-44b01d61b19c) ## Why It's Good For The Game https://github.com/shiptest-ss13/Shiptest/assets/24857008/88d765fc-6d0e-4cdb-935e-dd08646d2058 Judgement. ## Changelog :cl: add: admins can now blacklist ships, preventing them from docking at a station. /:cl: --- code/controllers/subsystem/shuttle.dm | 26 +++++++++++++++++++ .../overmap/objects/outpost/outpost.dm | 3 +++ .../overmap/ships/controlled_ship_datum.dm | 4 +++ .../tgui/interfaces/ShuttleManipulator.js | 9 +++++++ 4 files changed, 42 insertions(+) diff --git a/code/controllers/subsystem/shuttle.dm b/code/controllers/subsystem/shuttle.dm index 90e3f3a73cae..f56fd9e73ab9 100644 --- a/code/controllers/subsystem/shuttle.dm +++ b/code/controllers/subsystem/shuttle.dm @@ -536,6 +536,32 @@ SUBSYSTEM_DEF(shuttle) user.client.debug_variables(port.current_ship) return TRUE + if("blist") + var/obj/docking_port/mobile/port = locate(params["id"]) in mobile + if(!port || !port.current_ship) + return + var/datum/overmap/ship/controlled/port_ship = port.current_ship + var/temp_loc = input(user, "Select outpost to modify ship blacklist status for", "Get Em Outta Here") as null|anything in SSovermap.outposts + if(!temp_loc) + return + var/datum/overmap/outpost/please_leave = temp_loc + if(please_leave in port_ship.blacklisted) + if(tgui_alert(user, "Rescind ship blacklist?", "Maybe They Aren't So Bad", list("Yes", "No")) == "Yes") + port_ship.blacklisted &= ~please_leave + message_admins("[key_name_admin(user)] unblocked [port_ship] from [please_leave].") + log_admin("[key_name_admin(user)] unblocked [port_ship] from [please_leave].") + return TRUE + var/reason = input(user, "Provide a reason for blacklisting, which will be displayed on docking attempts", "Bar Them From The Pearly Gates", "Contact local law enforcement for more information.") as null|text + if(!reason) + return TRUE + if(please_leave in port_ship.blacklisted) //in the event two admins are blacklisting a ship at the same time + if(tgui_alert(user, "Ship is already blacklisted, overwrite current reason with your own?", "I call the shots here", list("Yes", "No")) != "Yes") + return TRUE + port_ship.blacklisted[please_leave] = reason + message_admins("[key_name_admin(user)] blacklisted [port_ship] from landing at [please_leave] with reason: [reason]") + log_admin("[key_name_admin(user)] blacklisted [port_ship] from landing at [please_leave] with reason: [reason]") + return TRUE + if("fly") for(var/obj/docking_port/mobile/M as anything in mobile) if(REF(M) == params["id"]) diff --git a/code/modules/overmap/objects/outpost/outpost.dm b/code/modules/overmap/objects/outpost/outpost.dm index 158827693335..774057b68a08 100644 --- a/code/modules/overmap/objects/outpost/outpost.dm +++ b/code/modules/overmap/objects/outpost/outpost.dm @@ -211,6 +211,9 @@ ) return FALSE + if(src in dock_requester.blacklisted) + return new /datum/docking_ticket(_docking_error = "Docking request denied: [dock_requester.blacklisted[src]]") + adjust_dock_to_shuttle(h_dock, dock_requester.shuttle_port) return new /datum/docking_ticket(h_dock, src, dock_requester) diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm index da35c3b9df9c..1779192f0cb2 100644 --- a/code/modules/overmap/ships/controlled_ship_datum.dm +++ b/code/modules/overmap/ships/controlled_ship_datum.dm @@ -63,6 +63,9 @@ ///Time that next job slot change can occur COOLDOWN_DECLARE(job_slot_adjustment_cooldown) + ///Stations the ship has been blacklisted from landing at, associative station = reason + var/list/blacklisted = list() + /datum/overmap/ship/controlled/Rename(new_name, force = FALSE) var/oldname = name if(!..() || (!COOLDOWN_FINISHED(src, rename_cooldown) && !force)) @@ -128,6 +131,7 @@ QDEL_NULL(shipkey) QDEL_LIST(manifest) job_slots.Cut() + blacklisted.Cut() for(var/a_key in applications) if(isnull(applications[a_key])) continue diff --git a/tgui/packages/tgui/interfaces/ShuttleManipulator.js b/tgui/packages/tgui/interfaces/ShuttleManipulator.js index f6a142bfd1d2..0608bb3a047e 100644 --- a/tgui/packages/tgui/interfaces/ShuttleManipulator.js +++ b/tgui/packages/tgui/interfaces/ShuttleManipulator.js @@ -92,6 +92,15 @@ export const ShuttleManipulatorStatus = (props, context) => { }) } /> +