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)]")