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
diff --git a/shiptest.dme b/shiptest.dme
index 86c3e10672b8..543b4322394d 100644
--- a/shiptest.dme
+++ b/shiptest.dme
@@ -1948,11 +1948,8 @@
#include "code\modules\clothing\masks\miscellaneous.dm"
#include "code\modules\clothing\neck\_neck.dm"
#include "code\modules\clothing\outfits\event.dm"
-#include "code\modules\clothing\outfits\gezena.dm"
#include "code\modules\clothing\outfits\plasmaman.dm"
-#include "code\modules\clothing\outfits\solgov.dm"
#include "code\modules\clothing\outfits\standard.dm"
-#include "code\modules\clothing\outfits\syndicate.dm"
#include "code\modules\clothing\outfits\vv_outfit.dm"
#include "code\modules\clothing\outfits\ert\frontiersmen_ert.dm"
#include "code\modules\clothing\outfits\ert\indie_ert.dm"
@@ -1961,6 +1958,15 @@
#include "code\modules\clothing\outfits\ert\nanotrasen_ert.dm"
#include "code\modules\clothing\outfits\ert\solgov_ert.dm"
#include "code\modules\clothing\outfits\ert\syndicate_ert.dm"
+#include "code\modules\clothing\outfits\factions\frontiersmen.dm"
+#include "code\modules\clothing\outfits\factions\gezena.dm"
+#include "code\modules\clothing\outfits\factions\independent.dm"
+#include "code\modules\clothing\outfits\factions\inteq.dm"
+#include "code\modules\clothing\outfits\factions\minutemen.dm"
+#include "code\modules\clothing\outfits\factions\nanotrasen.dm"
+#include "code\modules\clothing\outfits\factions\roumain.dm"
+#include "code\modules\clothing\outfits\factions\solgov.dm"
+#include "code\modules\clothing\outfits\factions\syndicate.dm"
#include "code\modules\clothing\shoes\_shoes.dm"
#include "code\modules\clothing\shoes\bananashoes.dm"
#include "code\modules\clothing\shoes\colour.dm"
From 4cec2f261fdbb3b3c33cb7f5ab951c4009b7c93c Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Wed, 17 Jan 2024 14:23:04 -0600
Subject: [PATCH 02/68] Automatic changelog generation for PR #2628 [ci skip]
---
html/changelogs/AutoChangeLog-pr-2628.yml | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-2628.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2628.yml b/html/changelogs/AutoChangeLog-pr-2628.yml
new file mode 100644
index 000000000000..c810d8e71ed1
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2628.yml
@@ -0,0 +1,9 @@
+author: MeeMOfCourse, retlaw34
+changes:
+ - {tweak: 'Repathed almost every faction outfit, and they now apply factions upon
+ being used.'}
+ - {tweak: SecHud icons have been redone. Sprites by retlaw34.}
+ - {tweak: Descriptions of multiple clothing items.}
+ - {rscadd: SecHuds now identify factions. Somewhat.}
+ - {rscadd: More desperate groups of Frontiersmen have been spotted roaming the frontier.}
+delete-after: true
From 8e509996d6aecc35b00727e3bdffcc61711bdde2 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Thu, 18 Jan 2024 00:50:35 +0000
Subject: [PATCH 03/68] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-2628.yml | 9 ---------
html/changelogs/archive/2024-01.yml | 8 ++++++++
2 files changed, 8 insertions(+), 9 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-2628.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2628.yml b/html/changelogs/AutoChangeLog-pr-2628.yml
deleted file mode 100644
index c810d8e71ed1..000000000000
--- a/html/changelogs/AutoChangeLog-pr-2628.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-author: MeeMOfCourse, retlaw34
-changes:
- - {tweak: 'Repathed almost every faction outfit, and they now apply factions upon
- being used.'}
- - {tweak: SecHud icons have been redone. Sprites by retlaw34.}
- - {tweak: Descriptions of multiple clothing items.}
- - {rscadd: SecHuds now identify factions. Somewhat.}
- - {rscadd: More desperate groups of Frontiersmen have been spotted roaming the frontier.}
-delete-after: true
diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml
index de6904e7e829..ff71392c0ea0 100644
--- a/html/changelogs/archive/2024-01.yml
+++ b/html/changelogs/archive/2024-01.yml
@@ -47,3 +47,11 @@
tmtmtl30:
- rscdel: Holodeck code has been removed.
- bugfix: Outposts should end up erroneously spaced less frequently.
+2024-01-18:
+ MeeMOfCourse, retlaw34:
+ - tweak: Repathed almost every faction outfit, and they now apply factions upon
+ being used.
+ - tweak: SecHud icons have been redone. Sprites by retlaw34.
+ - tweak: Descriptions of multiple clothing items.
+ - rscadd: SecHuds now identify factions. Somewhat.
+ - rscadd: More desperate groups of Frontiersmen have been spotted roaming the frontier.
From e0676a5700743f244a3dc774695437dc85b3c4c1 Mon Sep 17 00:00:00 2001
From: "github-actions[bot]"
<41898282+github-actions[bot]@users.noreply.github.com>
Date: Thu, 18 Jan 2024 09:59:13 -0600
Subject: [PATCH 04/68] Automatic TGS DMAPI Update (#2644)
This pull request updates the TGS DMAPI to the latest version. Please
note any breaking or unimplemented changes before merging.
Co-authored-by: github-actions
---
code/__DEFINES/tgs.dm | 5 +++-
code/modules/tgs/v5/api.dm | 54 ++++++++++++++++++++++----------------
2 files changed, 36 insertions(+), 23 deletions(-)
diff --git a/code/__DEFINES/tgs.dm b/code/__DEFINES/tgs.dm
index c561a64ebf58..fdfec5e8ca08 100644
--- a/code/__DEFINES/tgs.dm
+++ b/code/__DEFINES/tgs.dm
@@ -1,6 +1,6 @@
// tgstation-server DMAPI
-#define TGS_DMAPI_VERSION "7.0.1"
+#define TGS_DMAPI_VERSION "7.0.2"
// All functions and datums outside this document are subject to change with any version and should not be relied on.
@@ -426,6 +426,7 @@
/**
* Send a message to connected chats. This function may sleep!
+ * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game.
*
* message - The [/datum/tgs_message_content] to send.
* admin_only: If [TRUE], message will be sent to admin connected chats. Vice-versa applies.
@@ -435,6 +436,7 @@
/**
* Send a private message to a specific user. This function may sleep!
+ * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game.
*
* message - The [/datum/tgs_message_content] to send.
* user: The [/datum/tgs_chat_user] to PM.
@@ -444,6 +446,7 @@
/**
* Send a message to connected chats that are flagged as game-related in TGS. This function may sleep!
+ * If TGS is offline when called, the message may be placed in a queue to be sent and this function will return immediately. Your message will be sent when TGS reconnects to the game.
*
* message - The [/datum/tgs_message_content] to send.
* channels - Optional list of [/datum/tgs_chat_channel]s to restrict the message to.
diff --git a/code/modules/tgs/v5/api.dm b/code/modules/tgs/v5/api.dm
index 25d49b3e3bdb..a5c064a8eaf1 100644
--- a/code/modules/tgs/v5/api.dm
+++ b/code/modules/tgs/v5/api.dm
@@ -8,8 +8,12 @@
var/reboot_mode = TGS_REBOOT_MODE_NORMAL
+ /// List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
var/list/intercepted_message_queue
+ /// List of chat messages list()s that attempted to be sent during a topic call. To be bundled in the result of the call
+ var/list/offline_message_queue
+
var/list/custom_commands
var/list/test_merges
@@ -194,17 +198,7 @@
var/datum/tgs_chat_channel/channel = I
ids += channel.id
- message2 = UpgradeDeprecatedChatMessage(message2)
-
- if (!length(channels))
- return
-
- var/list/data = message2._interop_serialize()
- data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = ids
- if(intercepted_message_queue)
- intercepted_message_queue += list(data)
- else
- Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data))
+ SendChatMessageRaw(message2, ids)
/datum/tgs_api/v5/ChatTargetedBroadcast(datum/tgs_message_content/message2, admin_only)
var/list/channels = list()
@@ -213,26 +207,42 @@
if (!channel.is_private_channel && ((channel.is_admin_channel && admin_only) || (!channel.is_admin_channel && !admin_only)))
channels += channel.id
+ SendChatMessageRaw(message2, channels)
+
+/datum/tgs_api/v5/ChatPrivateMessage(datum/tgs_message_content/message2, datum/tgs_chat_user/user)
+ SendChatMessageRaw(message2, list(user.channel.id))
+
+/datum/tgs_api/v5/proc/SendChatMessageRaw(datum/tgs_message_content/message2, list/channel_ids)
message2 = UpgradeDeprecatedChatMessage(message2)
- if (!length(channels))
+ if (!length(channel_ids))
return
var/list/data = message2._interop_serialize()
- data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channels
+ data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = channel_ids
if(intercepted_message_queue)
intercepted_message_queue += list(data)
- else
- Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data))
+ return
-/datum/tgs_api/v5/ChatPrivateMessage(datum/tgs_message_content/message2, datum/tgs_chat_user/user)
- message2 = UpgradeDeprecatedChatMessage(message2)
- var/list/data = message2._interop_serialize()
- data[DMAPI5_CHAT_MESSAGE_CHANNEL_IDS] = list(user.channel.id)
- if(intercepted_message_queue)
- intercepted_message_queue += list(data)
+ if(offline_message_queue)
+ offline_message_queue += list(data)
+ return
+
+ if(detached)
+ offline_message_queue = list(data)
+
+ WaitForReattach(FALSE)
+
+ data = offline_message_queue
+ offline_message_queue = null
+
+ for(var/queued_message in data)
+ SendChatDataRaw(queued_message)
else
- Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data))
+ SendChatDataRaw(data)
+
+/datum/tgs_api/v5/proc/SendChatDataRaw(list/data)
+ Bridge(DMAPI5_BRIDGE_COMMAND_CHAT_SEND, list(DMAPI5_BRIDGE_PARAMETER_CHAT_MESSAGE = data))
/datum/tgs_api/v5/ChatChannelInfo()
RequireInitialBridgeResponse()
From 97ac42636a9d77be448382d26336aeb2c896ef74 Mon Sep 17 00:00:00 2001
From: Theos
Date: Thu, 18 Jan 2024 11:00:54 -0500
Subject: [PATCH 05/68] Tend wounds surgery variants no longer attempt to heal
the wrong type of damage (#2646)
## About The Pull Request
![image](https://github.com/shiptest-ss13/Shiptest/assets/24857008/2e267cd6-7b43-4900-8a20-09e3b8879d30)
![image](https://github.com/shiptest-ss13/Shiptest/assets/24857008/75dad61e-84ac-4bd3-b285-a37e43a49d41)
## Why It's Good For The Game
Prevents a tend wounds heal cycle from targeting a limb that won't
benefit from its flat healing bonus.
## Changelog
:cl:
tweak: tend brute/burns can no longer attempt to (very ineffectively)
heal the other damage type
/:cl:
Signed-off-by: Theos
---
code/modules/surgery/healing.dm | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/code/modules/surgery/healing.dm b/code/modules/surgery/healing.dm
index 956768c09aa4..8d3eecb3ead3 100644
--- a/code/modules/surgery/healing.dm
+++ b/code/modules/surgery/healing.dm
@@ -65,11 +65,11 @@
var/urhealedamt_burn = burnhealing
if(missinghpbonus)
if(target.stat != DEAD)
- urhealedamt_brute += round((target.getBruteLoss()/ missinghpbonus),0.1)
- urhealedamt_burn += round((target.getFireLoss()/ missinghpbonus),0.1)
+ urhealedamt_brute += brutehealing ? round((target.getBruteLoss()/ missinghpbonus),0.1) : 0
+ urhealedamt_burn += burnhealing ? round((target.getFireLoss()/ missinghpbonus),0.1) : 0
else //less healing bonus for the dead since they're expected to have lots of damage to begin with (to make TW into defib not TOO simple)
- urhealedamt_brute += round((target.getBruteLoss()/ (missinghpbonus*5)),0.1)
- urhealedamt_burn += round((target.getFireLoss()/ (missinghpbonus*5)),0.1)
+ urhealedamt_brute += brutehealing ? round((target.getBruteLoss()/ (missinghpbonus*5)),0.1) : 0
+ urhealedamt_burn += burnhealing ? round((target.getFireLoss()/ (missinghpbonus*5)),0.1) : 0
if(!get_location_accessible(target, target_zone))
urhealedamt_brute *= 0.55
urhealedamt_burn *= 0.55
From 2918caf0ceedcfcf9bf3d05943d0b1a6aea3736f Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Thu, 18 Jan 2024 10:15:29 -0600
Subject: [PATCH 06/68] Automatic changelog generation for PR #2646 [ci skip]
---
html/changelogs/AutoChangeLog-pr-2646.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-2646.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2646.yml b/html/changelogs/AutoChangeLog-pr-2646.yml
new file mode 100644
index 000000000000..82e356149677
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2646.yml
@@ -0,0 +1,5 @@
+author: SomeguyManperson
+changes:
+ - {tweak: tend brute/burns can no longer attempt to (very ineffectively) heal the
+ other damage type}
+delete-after: true
From 3693e631086046749d5cc86c82f99a0bdd9b8f93 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Fri, 19 Jan 2024 00:52:14 +0000
Subject: [PATCH 07/68] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-2646.yml | 5 -----
html/changelogs/archive/2024-01.yml | 4 ++++
2 files changed, 4 insertions(+), 5 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-2646.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2646.yml b/html/changelogs/AutoChangeLog-pr-2646.yml
deleted file mode 100644
index 82e356149677..000000000000
--- a/html/changelogs/AutoChangeLog-pr-2646.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: SomeguyManperson
-changes:
- - {tweak: tend brute/burns can no longer attempt to (very ineffectively) heal the
- other damage type}
-delete-after: true
diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml
index ff71392c0ea0..59fdbb9e32b1 100644
--- a/html/changelogs/archive/2024-01.yml
+++ b/html/changelogs/archive/2024-01.yml
@@ -55,3 +55,7 @@
- tweak: Descriptions of multiple clothing items.
- rscadd: SecHuds now identify factions. Somewhat.
- rscadd: More desperate groups of Frontiersmen have been spotted roaming the frontier.
+2024-01-19:
+ SomeguyManperson:
+ - tweak: tend brute/burns can no longer attempt to (very ineffectively) heal the
+ other damage type
From 1e4201aba066df063a491211e282ce2b00fe8c20 Mon Sep 17 00:00:00 2001
From: Theos
Date: Mon, 22 Jan 2024 15:05:22 -0500
Subject: [PATCH 08/68] Fixes 2647 (#2648)
## About The Pull Request
Arcane machine tried to smelt up to 10 sheets of material but the alloy
smelting proc didn't get a smelting number passed so it just spawned 1
sheet and called it a day.
## Why It's Good For The Game
fixes #2647
## Changelog
:cl:
fix: ore smelter no longer obliterates materials when smelting alloys
/:cl:
Signed-off-by: Theos
---
code/modules/mining/machine_processing.dm | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm
index 10f43aad4580..bbc84ec7ee68 100644
--- a/code/modules/mining/machine_processing.dm
+++ b/code/modules/mining/machine_processing.dm
@@ -253,7 +253,7 @@
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
materials.use_materials(alloy.materials, amount)
- generate_mineral(alloy.build_path)
+ generate_mineral(alloy.build_path, amount)
/obj/machinery/mineral/processing_unit/proc/can_smelt(datum/design/D)
if(D.make_reagents.len)
@@ -271,8 +271,8 @@
return build_amount
-/obj/machinery/mineral/processing_unit/proc/generate_mineral(P)
- var/O = new P(src)
+/obj/machinery/mineral/processing_unit/proc/generate_mineral(P, amount)
+ var/O = new P(src, amount)
unload_mineral(O)
/obj/machinery/mineral/processing_unit/on_deconstruction()
From 929b143d3f313dcfe9947a939f0f878da83976d0 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Mon, 22 Jan 2024 14:19:51 -0600
Subject: [PATCH 09/68] Automatic changelog generation for PR #2648 [ci skip]
---
html/changelogs/AutoChangeLog-pr-2648.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-2648.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2648.yml b/html/changelogs/AutoChangeLog-pr-2648.yml
new file mode 100644
index 000000000000..3349aabe7c9c
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2648.yml
@@ -0,0 +1,4 @@
+author: SomeguyManperson
+changes:
+ - {bugfix: ore smelter no longer obliterates materials when smelting alloys}
+delete-after: true
From 808526d1a274dc52e4c5e407cccb5d536eccd181 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Tue, 23 Jan 2024 00:52:20 +0000
Subject: [PATCH 10/68] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-2648.yml | 4 ----
html/changelogs/archive/2024-01.yml | 3 +++
2 files changed, 3 insertions(+), 4 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-2648.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2648.yml b/html/changelogs/AutoChangeLog-pr-2648.yml
deleted file mode 100644
index 3349aabe7c9c..000000000000
--- a/html/changelogs/AutoChangeLog-pr-2648.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: SomeguyManperson
-changes:
- - {bugfix: ore smelter no longer obliterates materials when smelting alloys}
-delete-after: true
diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml
index 59fdbb9e32b1..71fd490bb992 100644
--- a/html/changelogs/archive/2024-01.yml
+++ b/html/changelogs/archive/2024-01.yml
@@ -59,3 +59,6 @@
SomeguyManperson:
- tweak: tend brute/burns can no longer attempt to (very ineffectively) heal the
other damage type
+2024-01-23:
+ SomeguyManperson:
+ - bugfix: ore smelter no longer obliterates materials when smelting alloys
From 4b6c1abe16e10fe5d3be97021182bab2217a1641 Mon Sep 17 00:00:00 2001
From: Apogee-dev <60533805+Apogee-dev@users.noreply.github.com>
Date: Wed, 24 Jan 2024 19:44:11 -0800
Subject: [PATCH 11/68] Updates syndicate ship prefixes (#2665)
## About The Pull Request
Changes the prefixes on Syndicate ships to reflect subfaction more
strongly.
- 2nd Battlegroup uses NGRV (New Gorlex Republic Vessel)
- Hardliners use ISV (They don't have a unique registration because they
aren't an organized group and aren't officially part of Cybersun. this
puts them in a similar position to non-Frontiersman pirates, using ISV
while not being normal independents.)
- Cybersun uses CSSV (CyberSun Space Vessel)
- SUNS uses SUNS (SUNS, lol)
- ACLF still uses SSV
- The Lugol, as GEC's only ship and an adminspawn ship, uses XSV
(Experimental Space Vessel)
## Why It's Good For The Game
the syndicate kind of Isn't anymore and pushing faction distinctions is
good, especially between the gorlex splinters
## Changelog
:cl:
tweak: Changed prefixes on Syndicate ships to reflect subfaction
/:cl:
---
_maps/configs/syndicate_aegis.json | 2 +-
_maps/configs/syndicate_cybersun_kansatsu.json | 2 +-
_maps/configs/syndicate_gorlex_hyena.json | 2 +-
_maps/configs/syndicate_gorlex_komodo.json | 2 +-
_maps/configs/syndicate_litieguai.json | 2 +-
_maps/configs/syndicate_lugol.json | 4 ++--
6 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/_maps/configs/syndicate_aegis.json b/_maps/configs/syndicate_aegis.json
index 9dc307f7f091..6863c4e11279 100644
--- a/_maps/configs/syndicate_aegis.json
+++ b/_maps/configs/syndicate_aegis.json
@@ -1,5 +1,5 @@
{
- "prefix": "SSV",
+ "prefix": "SUNS",
"map_name": "Aegis-class Long Term Care Ship",
"map_short_name": "Aegis-class",
"map_path": "_maps/shuttles/syndicate/syndicate_aegis.dmm",
diff --git a/_maps/configs/syndicate_cybersun_kansatsu.json b/_maps/configs/syndicate_cybersun_kansatsu.json
index fbde6dc608d6..a9c9fcb94349 100644
--- a/_maps/configs/syndicate_cybersun_kansatsu.json
+++ b/_maps/configs/syndicate_cybersun_kansatsu.json
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
- "prefix": "SSV",
+ "prefix": "CSSV",
"namelists": [
"CYBERSUN",
"SPACE",
diff --git a/_maps/configs/syndicate_gorlex_hyena.json b/_maps/configs/syndicate_gorlex_hyena.json
index 4e9086139275..51b046d114b7 100644
--- a/_maps/configs/syndicate_gorlex_hyena.json
+++ b/_maps/configs/syndicate_gorlex_hyena.json
@@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
- "prefix": "SSV",
+ "prefix": "NGRV",
"namelists": [
"GORLEX",
"NATURAL_AGGRESSIVE",
diff --git a/_maps/configs/syndicate_gorlex_komodo.json b/_maps/configs/syndicate_gorlex_komodo.json
index 5692eaf44a14..595b61b079d9 100644
--- a/_maps/configs/syndicate_gorlex_komodo.json
+++ b/_maps/configs/syndicate_gorlex_komodo.json
@@ -1,5 +1,5 @@
{
- "prefix": "SSV",
+ "prefix": "ISV",
"namelists": [
"GORLEX",
"NATURAL_AGGRESSIVE",
diff --git a/_maps/configs/syndicate_litieguai.json b/_maps/configs/syndicate_litieguai.json
index 887828e28176..685a53187422 100644
--- a/_maps/configs/syndicate_litieguai.json
+++ b/_maps/configs/syndicate_litieguai.json
@@ -1,7 +1,7 @@
{
"$schema": "https://raw.githubusercontent.com/shiptest-ss13/Shiptest/master/_maps/ship_config_schema.json",
"map_name": "Li Tieguai-class Rescue Ship",
- "prefix": "SSV",
+ "prefix": "CSSV",
"map_short_name": "Li Tieguai-class",
"description": "A small, nimble, and exceptionally well-built medical response vessel, the Li Tieguai is a recent addition to Cybersun’s fleet, forming a critical component of their Frontier stabilization program. Li Tieguais come equipped with high-end medical equipment, including a selection of Cybersun augments and prosthetics, as well as weaponry and armor sufficient to protect its personnel in the often-dangerous Frontier sectors, so that they can offer premium healthcare (at premium prices) in even the most dangerous of scenarios.",
"tags": [
diff --git a/_maps/configs/syndicate_lugol.json b/_maps/configs/syndicate_lugol.json
index 26599d93a8ee..673d9be16ff5 100644
--- a/_maps/configs/syndicate_lugol.json
+++ b/_maps/configs/syndicate_lugol.json
@@ -1,6 +1,6 @@
{
"map_name": "Lugol-class GEC Engineering Project",
- "prefix": "SEV",
+ "prefix": "XSV",
"map_short_name": "Lugol-class",
"description": "The Lugol is effectively an enormous Galactic Engineers Concordat research barge, used as a test bed for refinements to power systems, new technologies, and so on. As it offers freedom from the usual constraints of working aboard vessels belonging to other Syndicate factions, Lugols are especially popular among the GEC’s more radical members. Accordingly, they have a reputation for either accomplishing the impossible or generating the equivalent of a new star when they inevitably melt down. Lugols are generally only found on the Frontier, where the collateral damage from potential accidents can be kept to a minimum and secrecy, when needed, can be better maintained.",
"tags": [
@@ -14,7 +14,7 @@
],
"map_path": "_maps/shuttles/syndicate/syndicate_gec_lugol.dmm",
"map_id": "gec_lugol",
- "limit": 2,
+ "limit": 1,
"job_slots": {
"Project Overseer": {
"outfit": "/datum/outfit/job/syndicate/ce/gec",
From 73362102eb1900409702861556bfa5289e28d6f8 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Wed, 24 Jan 2024 21:58:19 -0600
Subject: [PATCH 12/68] Automatic changelog generation for PR #2665 [ci skip]
---
html/changelogs/AutoChangeLog-pr-2665.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-2665.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2665.yml b/html/changelogs/AutoChangeLog-pr-2665.yml
new file mode 100644
index 000000000000..a025323feb59
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2665.yml
@@ -0,0 +1,4 @@
+author: Apogee-dev
+changes:
+ - {tweak: Changed prefixes on Syndicate ships to reflect subfaction}
+delete-after: true
From 236cbef3127759829bb5debad678e8ce15f994c2 Mon Sep 17 00:00:00 2001
From: Theos
Date: Wed, 24 Jan 2024 23:10:07 -0500
Subject: [PATCH 13/68] fixes crusher loot for icemoon ruin dragon not dropping
a key (#2650)
## About The Pull Request
adds the key to the crusher loot list since the default loot list is
overridden by that
## Why It's Good For The Game
Dragon lair could be locked off without admin intervention if the dragon
is killed with a crusher
## Changelog
:cl:
fix: you can no longer lock yourself out of the icemoon dragon lair by
killing the dragon with a crusher
/:cl:
---
_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm
index 4c8ccc99dfcb..f089a09b8fba 100644
--- a/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm
+++ b/_maps/RandomRuins/IceRuins/icemoon_underground_drakelair.dmm
@@ -127,7 +127,8 @@
"iT" = (
/obj/structure/stone_tile/slab,
/mob/living/simple_animal/hostile/megafauna/dragon/icemoon{
- loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair)
+ loot = list(/obj/structure/closet/crate/necropolis/dragon,/obj/item/keycard/gatedrop/drakelair);
+ crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher,/obj/item/keycard/gatedrop/drakelair)
},
/turf/open/indestructible/boss,
/area/ruin)
From 709a12c14b45d875f89dfef89bb363b9222c9485 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Wed, 24 Jan 2024 22:23:47 -0600
Subject: [PATCH 14/68] Automatic changelog generation for PR #2650 [ci skip]
---
html/changelogs/AutoChangeLog-pr-2650.yml | 5 +++++
1 file changed, 5 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-2650.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2650.yml b/html/changelogs/AutoChangeLog-pr-2650.yml
new file mode 100644
index 000000000000..be0a14f8ee04
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2650.yml
@@ -0,0 +1,5 @@
+author: SomeguyManperson
+changes:
+ - {bugfix: you can no longer lock yourself out of the icemoon dragon lair by killing
+ the dragon with a crusher}
+delete-after: true
From 286941e4258ecf39b4bc2c6562f5f6cc9a147299 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Fri, 26 Jan 2024 00:47:37 +0000
Subject: [PATCH 15/68] Automatic changelog compile [ci skip]
---
html/changelogs/AutoChangeLog-pr-2650.yml | 5 -----
html/changelogs/AutoChangeLog-pr-2665.yml | 4 ----
html/changelogs/archive/2024-01.yml | 6 ++++++
3 files changed, 6 insertions(+), 9 deletions(-)
delete mode 100644 html/changelogs/AutoChangeLog-pr-2650.yml
delete mode 100644 html/changelogs/AutoChangeLog-pr-2665.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2650.yml b/html/changelogs/AutoChangeLog-pr-2650.yml
deleted file mode 100644
index be0a14f8ee04..000000000000
--- a/html/changelogs/AutoChangeLog-pr-2650.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-author: SomeguyManperson
-changes:
- - {bugfix: you can no longer lock yourself out of the icemoon dragon lair by killing
- the dragon with a crusher}
-delete-after: true
diff --git a/html/changelogs/AutoChangeLog-pr-2665.yml b/html/changelogs/AutoChangeLog-pr-2665.yml
deleted file mode 100644
index a025323feb59..000000000000
--- a/html/changelogs/AutoChangeLog-pr-2665.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: Apogee-dev
-changes:
- - {tweak: Changed prefixes on Syndicate ships to reflect subfaction}
-delete-after: true
diff --git a/html/changelogs/archive/2024-01.yml b/html/changelogs/archive/2024-01.yml
index 71fd490bb992..9ee67f626bd5 100644
--- a/html/changelogs/archive/2024-01.yml
+++ b/html/changelogs/archive/2024-01.yml
@@ -62,3 +62,9 @@
2024-01-23:
SomeguyManperson:
- bugfix: ore smelter no longer obliterates materials when smelting alloys
+2024-01-26:
+ Apogee-dev:
+ - tweak: Changed prefixes on Syndicate ships to reflect subfaction
+ SomeguyManperson:
+ - bugfix: you can no longer lock yourself out of the icemoon dragon lair by killing
+ the dragon with a crusher
From 7096415fac7fe84112a68a77918fda48492d0396 Mon Sep 17 00:00:00 2001
From: Skies-Of-Blue <86762641+Skies-Of-Blue@users.noreply.github.com>
Date: Fri, 26 Jan 2024 21:59:28 -0800
Subject: [PATCH 16/68] Murders The Devil from The Bible in the form of a bee
(#2672)
## About The Pull Request
Removes chem bees from the jungle and beach spawn pools, replacing them
with normal bees.
## Why It's Good For The Game
Walking off of a ship onto one of the relatively "peaceful" planets,
only to be loaded up with admin chemicals was a pretty awful experience.
We inherited these little guys from Voidcrew, honestly that should be
enough reason to remove them.
## Changelog
:cl:
balance: planetary chem bees have been replaced with the garden variety
/:cl:
---
code/datums/mapgen/planetary/BeachGenerator.dm | 2 +-
code/datums/mapgen/planetary/JungleGenerator.dm | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/code/datums/mapgen/planetary/BeachGenerator.dm b/code/datums/mapgen/planetary/BeachGenerator.dm
index ca1d70b929fa..7999d76f3a11 100644
--- a/code/datums/mapgen/planetary/BeachGenerator.dm
+++ b/code/datums/mapgen/planetary/BeachGenerator.dm
@@ -119,7 +119,7 @@
/mob/living/simple_animal/butterfly = 4,
/mob/living/simple_animal/hostile/retaliate/poison/snake = 5,
- /mob/living/simple_animal/hostile/poison/bees/toxin = 3,
+ /mob/living/simple_animal/hostile/poison/bees = 3,
)
mob_spawn_chance = 2
feature_spawn_chance = 0.1
diff --git a/code/datums/mapgen/planetary/JungleGenerator.dm b/code/datums/mapgen/planetary/JungleGenerator.dm
index dd5635d4841f..45ae4a7120cc 100644
--- a/code/datums/mapgen/planetary/JungleGenerator.dm
+++ b/code/datums/mapgen/planetary/JungleGenerator.dm
@@ -228,7 +228,7 @@
)
mob_spawn_chance = 1
mob_spawn_list = list(
- /mob/living/simple_animal/hostile/poison/bees/toxin = 1,
+ /mob/living/simple_animal/hostile/poison/bees = 1,
/mob/living/simple_animal/hostile/mushroom = 1,
/mob/living/simple_animal/pet/dog/corgi/capybara = 1
)
From 7eb3bdfa7643c681a466ed0c0f042f062a5e09c3 Mon Sep 17 00:00:00 2001
From: Changelogs
Date: Sat, 27 Jan 2024 00:13:07 -0600
Subject: [PATCH 17/68] Automatic changelog generation for PR #2672 [ci skip]
---
html/changelogs/AutoChangeLog-pr-2672.yml | 4 ++++
1 file changed, 4 insertions(+)
create mode 100644 html/changelogs/AutoChangeLog-pr-2672.yml
diff --git a/html/changelogs/AutoChangeLog-pr-2672.yml b/html/changelogs/AutoChangeLog-pr-2672.yml
new file mode 100644
index 000000000000..88151cbed8ce
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-2672.yml
@@ -0,0 +1,4 @@
+author: Skies-Of-Blue
+changes:
+ - {balance: planetary chem bees have been replaced with the garden variety}
+delete-after: true
From 36aefeb9fcc036f171de1cf5b7aeb72984378f02 Mon Sep 17 00:00:00 2001
From: Fest1v3 <154591738+Fest1v3@users.noreply.github.com>
Date: Sat, 27 Jan 2024 02:40:41 -0700
Subject: [PATCH 18/68] Vox Sprite Update (#2668)
## About The Pull Request
Updates a few Vox sprites, mostly backpacks. Adds a proper icon for the
tail hold action.
## Why It's Good For The Game
We love vox in this house
## Changelog
:cl:
imageadd: Added vox sprites & a tailhold icon.
/:cl:
---
.../living/carbon/human/species_types/vox.dm | 1 +
icons/mob/actions.dmi | Bin 11110 -> 11861 bytes
icons/mob/species/vox/onmob_back_vox.dmi | Bin 45978 -> 48271 bytes
icons/mob/species/vox/onmob_belt_vox.dmi | Bin 8617 -> 11722 bytes
4 files changed, 1 insertion(+)
diff --git a/code/modules/mob/living/carbon/human/species_types/vox.dm b/code/modules/mob/living/carbon/human/species_types/vox.dm
index e1a0107bc0ad..1f3a00e8641b 100644
--- a/code/modules/mob/living/carbon/human/species_types/vox.dm
+++ b/code/modules/mob/living/carbon/human/species_types/vox.dm
@@ -118,6 +118,7 @@
/datum/action/innate/tail_hold
name = "Tail Hold"
desc = "Store an item in your tail's grip."
+ button_icon_state = "tail_hold"
var/obj/item/held_item
var/mutable_appearance/held_item_overlay
diff --git a/icons/mob/actions.dmi b/icons/mob/actions.dmi
index ea2c5c556db0d3e5dccda0403f27787cfda11486..bc600528d82591e2fda135a58196bcd1c7af4a12 100644
GIT binary patch
literal 11861
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