From 4fb87bd77f4dda317d97eb9fe56453f52f906dd5 Mon Sep 17 00:00:00 2001
From: Gaxeer <44334376+Gaxeer@users.noreply.github.com>
Date: Tue, 19 Dec 2023 13:14:26 +0200
Subject: [PATCH] feat: add `blood brother` to `Check Antagonists` (#877)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Что этот PR делает
Добавляет `Blood Brother` в `Check Antagonists` админ панель
## Почему это хорошо для игры
Админ попросил
## Изображения изменений
В коде
## Тестирование
Скомпилировал, выдал антага, открыл манель
## Changelog
:cl:
add: Добавляет `Blood Brother` в `Check Antagonists` админ панель
/:cl:
---
code/__DEFINES/hud.dm | 3 +
code/datums/mind.dm | 3 +
code/modules/admin/player_panel.dm | 5 +
modular_ss220/_defines220/_defines220.dme | 5 +-
modular_ss220/_defines220/code/atom_hud.dm | 1 -
modular_ss220/antagonists/_antagonists.dme | 4 +-
.../blood_brothers/blood_brothers_datum.dm | 3 +-
.../antagonists/code/mind/memory_edit.dm | 105 ++----------------
8 files changed, 26 insertions(+), 103 deletions(-)
delete mode 100644 modular_ss220/_defines220/code/atom_hud.dm
diff --git a/code/__DEFINES/hud.dm b/code/__DEFINES/hud.dm
index e2b9380850c4..15a5191c211c 100644
--- a/code/__DEFINES/hud.dm
+++ b/code/__DEFINES/hud.dm
@@ -56,6 +56,9 @@
#define DATA_HUD_ABDUCTOR 19
#define ANTAG_HUD_EVENTMISC 20
#define ANTAG_HUD_BLOB 21
+// SS220 EDIT - START
+#define ANTAG_HUD_BLOOD_BROTHER 22
+// SS220 EDIT - END
// Notification action types
#define NOTIFY_JUMP "jump"
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index c70d63dbd35f..dda9365c288b 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -535,6 +535,9 @@
sections["eventmisc"] = memory_edit_eventmisc(H)
/** TRAITOR ***/
sections["traitor"] = memory_edit_traitor()
+ // SS220 EDIT - START
+ sections["blood_brother"] = memory_edit_blood_brother()
+ // SS220 EDIT - END
if(!issilicon(current))
/** CULT ***/
sections["cult"] = memory_edit_cult(H)
diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm
index a3628c9622ba..85177988b5d4 100644
--- a/code/modules/admin/player_panel.dm
+++ b/code/modules/admin/player_panel.dm
@@ -461,6 +461,11 @@
if(SSticker.mode.traitors.len)
dat += check_role_table("Traitors", SSticker.mode.traitors)
+ // SS220 EDIT - START
+ if(SSticker.mode.blood_brothers.len)
+ dat += check_role_table("Blood Brothers", SSticker.mode.blood_brothers)
+ // SS220 EDIT - END
+
if(SSticker.mode.implanted.len)
dat += check_role_table("Mindslaves", SSticker.mode.implanted)
diff --git a/modular_ss220/_defines220/_defines220.dme b/modular_ss220/_defines220/_defines220.dme
index c04f3832953e..a393d8dc67f5 100644
--- a/modular_ss220/_defines220/_defines220.dme
+++ b/modular_ss220/_defines220/_defines220.dme
@@ -6,13 +6,12 @@
#include "code/signals_mob/signals_mob_main.dm"
#include "code/signals_mob/signals_mob_silicon.dm"
#include "code/signals_mob/signals_mob_simple.dm"
+#include "code/role_preferences.dm"
+#include "code/gamemode.dm"
#include "code/signals_keybindings.dm"
#include "code/signals_obj.dm"
#include "code/cult_defines_ss220.dm"
#include "code/hud_ss220.dm"
-#include "code/atom_hud.dm"
-#include "code/gamemode.dm"
-#include "code/role_preferences.dm"
#include "code/layers_ss220.dm"
#include "code/signals_atom.dm"
#include "code/jobs_defines.dm"
diff --git a/modular_ss220/_defines220/code/atom_hud.dm b/modular_ss220/_defines220/code/atom_hud.dm
deleted file mode 100644
index eb191aefd6c6..000000000000
--- a/modular_ss220/_defines220/code/atom_hud.dm
+++ /dev/null
@@ -1 +0,0 @@
-#define ANTAG_HUD_BLOOD_BROTHER 21
diff --git a/modular_ss220/antagonists/_antagonists.dme b/modular_ss220/antagonists/_antagonists.dme
index c03286e61a90..95aa531b404b 100644
--- a/modular_ss220/antagonists/_antagonists.dme
+++ b/modular_ss220/antagonists/_antagonists.dme
@@ -3,8 +3,8 @@
#include "code/antag_mix/scenarios/antag_scenario.dm"
#include "code/antag_mix/scenarios/antag_team_scenario.dm"
#include "code/antag_mix/scenarios/minor_scenarios.dm"
-#include "code/configuration/antag_mix_configuration.dm"
-#include "code/blood_brothers/blood_brothers_datum.dm"
#include "code/blood_brothers/blood_brothers_team.dm"
+#include "code/blood_brothers/blood_brothers_datum.dm"
+#include "code/configuration/antag_mix_configuration.dm"
#include "code/mind/memory_edit.dm"
#include "code/antag_mix/antag_mix.dm"
diff --git a/modular_ss220/antagonists/code/blood_brothers/blood_brothers_datum.dm b/modular_ss220/antagonists/code/blood_brothers/blood_brothers_datum.dm
index 888677a0921a..b145dabbbd17 100644
--- a/modular_ss220/antagonists/code/blood_brothers/blood_brothers_datum.dm
+++ b/modular_ss220/antagonists/code/blood_brothers/blood_brothers_datum.dm
@@ -101,8 +101,7 @@
alert(admin, "No candidates for second blood brother found.")
return FALSE
- sortTim(choices, GLOBAL_PROC_REF(cmp_text_asc))
- var/choice = tgui_input_list(admin, "Choose the blood brother.", "Brother", choices)
+ var/choice = tgui_input_list(admin, "Choose the blood brother.", "Brother", sortTim(choices, GLOBAL_PROC_REF(cmp_text_asc)))
if(!choice)
return FALSE
diff --git a/modular_ss220/antagonists/code/mind/memory_edit.dm b/modular_ss220/antagonists/code/mind/memory_edit.dm
index 6ae3574b00f8..3ae318daf3ed 100644
--- a/modular_ss220/antagonists/code/mind/memory_edit.dm
+++ b/modular_ss220/antagonists/code/mind/memory_edit.dm
@@ -1,89 +1,3 @@
-/datum/mind/edit_memory()
- if(!SSticker || !SSticker.mode)
- alert("Not before round-start!", "Alert")
- return
-
- var/list/out = list("[name][(current && (current.real_name != name))?" (as [current.real_name])" : ""]")
- out.Add("Mind currently owned by key: [key] [active ? "(synced)" : "(not synced)"]")
- out.Add("Assigned role: [assigned_role]. Edit")
- out.Add("Factions and special roles:")
-
- var/list/sections = list(
- "implant",
- "revolution",
- "cult",
- "wizard",
- "changeling",
- "vampire", // "traitorvamp",
- "nuclear",
- "traitor", // "traitorchan",
- )
- var/mob/living/carbon/human/H = current
- if(ishuman(current))
- /** Impanted**/
- sections["implant"] = memory_edit_implant(H)
- /** REVOLUTION ***/
- sections["revolution"] = memory_edit_revolution(H)
- /** WIZARD ***/
- sections["wizard"] = memory_edit_wizard(H)
- /** CHANGELING ***/
- sections["changeling"] = memory_edit_changeling(H)
- /** VAMPIRE ***/
- sections["vampire"] = memory_edit_vampire(H)
- /** NUCLEAR ***/
- sections["nuclear"] = memory_edit_nuclear(H)
- /** Abductors **/
- sections["abductor"] = memory_edit_abductor(H)
- sections["eventmisc"] = memory_edit_eventmisc(H)
- /** TRAITOR ***/
- sections["traitor"] = memory_edit_traitor()
- /** BLOOD BROTHER **/
- sections["blood_brother"] = memory_edit_blood_brother()
- if(!issilicon(current))
- /** CULT ***/
- sections["cult"] = memory_edit_cult(H)
- /** SILICON ***/
- if(issilicon(current))
- sections["silicon"] = memory_edit_silicon()
- /*
- This prioritizes antags relevant to the current round to make them appear at the top of the panel.
- Traitorchan and traitorvamp are snowflaked in because they have multiple sections.
- */
- if(SSticker.mode.config_tag == "traitorchan")
- if(sections["traitor"])
- out.Add(sections["traitor"])
- if(sections["changeling"])
- out.Add(sections["changeling"])
- sections -= "traitor"
- sections -= "changeling"
- // Elif technically unnecessary but it makes the following else look better
- else if(SSticker.mode.config_tag == "traitorvamp")
- if(sections["traitor"])
- out.Add(sections["traitor"])
- if(sections["vampire"])
- out.Add(sections["vampire"])
- sections -= "traitor"
- sections -= "vampire"
- else
- if(sections[SSticker.mode.config_tag])
- out.Add(sections[SSticker.mode.config_tag])
- sections -= SSticker.mode.config_tag
-
- for(var/i in sections)
- if(sections[i])
- out.Add(sections[i])
-
- out.Add(memory_edit_uplink())
-
- out.Add("Memory:")
- out.Add(memory)
- out.Add("Edit memory
")
- out.Add("Objectives:")
- out.Add(gen_objective_text(admin = TRUE))
- out.Add("Add objective
")
- out.Add("Announce objectives
")
- DIRECT_OUTPUT(usr, browse(out.Join("
"), "window=edit_memory[src];size=500x500"))
-
/datum/mind/proc/memory_edit_blood_brother()
. = _memory_edit_header("blood brother")
if(has_antag_datum(/datum/antagonist/blood_brother))
@@ -94,6 +8,16 @@
. += _memory_edit_role_enabled(ROLE_BLOOD_BROTHER)
+/datum/mind/proc/clear_antag_datum(datum/antagonist/antag_datum_to_clear)
+ if(!has_antag_datum(antag_datum_to_clear))
+ return
+
+ remove_antag_datum(antag_datum_to_clear)
+ var/antag_name = initial(antag_datum_to_clear.name)
+ log_admin("[key_name(usr)] has removed [antag_name] from [key_name(current)]")
+ message_admins("[key_name_admin(usr)] has removed [antag_name] from [key_name_admin(current)]")
+
+
/datum/mind/Topic(href, href_list)
if(!check_rights(R_ADMIN))
return
@@ -108,12 +32,3 @@
qdel(brother_antag_datum)
. = ..()
-
-/datum/mind/proc/clear_antag_datum(datum/antagonist/antag_datum_to_clear)
- if(!has_antag_datum(antag_datum_to_clear))
- return
-
- remove_antag_datum(antag_datum_to_clear)
- var/antag_name = initial(antag_datum_to_clear.name)
- log_admin("[key_name(usr)] has removed [antag_name] from [key_name(current)]")
- message_admins("[key_name_admin(usr)] has removed [antag_name] from [key_name_admin(current)]")