From 841a4199af66473aea1cff03040fd66597efc34b Mon Sep 17 00:00:00 2001 From: Cameron! Date: Mon, 5 Mar 2018 13:33:23 -0500 Subject: [PATCH] Removes MediHound's Noncon Vore (#5738) * Removes MediHound's Noncon Vore MediHound once again respects vore preferences, as intended. To make up for this, they now receive a unique cyborg hypospray with fewer reagents, increased energy costs, and no ability to upgrade. * Moves Preference Check to New Sleeper-Specific Variable, Buffs Hypo Rather than using target.devourable, MediHounds now check for a new target.sleeperable preference, which defaults to TRUE. Also, removed the custom HoundHypo. MediHounds will now get the full borg hypospray. * Removes unnecessary 5th port code * Breaks the patch for Bhijn's viewing pleasure DNM etc * Still not fixed * Fixes it again. MediHound sleeper preference is now a game preference toggle, rather than a vore panel toggle. MediHounds will not be able to ingest SSD or catatonic players. --- code/__DEFINES/preferences.dm | 3 ++- code/citadel/dogborgstuff.dm | 3 +++ code/modules/client/preferences.dm | 4 ++++ code/modules/client/preferences_toggles.dm | 15 +++++++++++++++ .../mob/living/silicon/robot/robot_modules.dm | 1 + 5 files changed, 25 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index d7a5356f0f..db496f1cba 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -14,8 +14,9 @@ #define SOUND_ANNOUNCEMENTS 2048 #define DISABLE_DEATHRATTLE 4096 #define DISABLE_ARRIVALRATTLE 8192 +#define MEDIHOUND_SLEEPER 16384 -#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS) +#define TOGGLES_DEFAULT (SOUND_ADMINHELP|SOUND_MIDI|SOUND_AMBIENCE|SOUND_LOBBY|MEMBER_PUBLIC|INTENT_STYLE|MIDROUND_ANTAG|SOUND_INSTRUMENTS|SOUND_SHIP_AMBIENCE|SOUND_PRAYERS|SOUND_ANNOUNCEMENTS|MEDIHOUND_SLEEPER) //Chat toggles #define CHAT_OOC 1 diff --git a/code/citadel/dogborgstuff.dm b/code/citadel/dogborgstuff.dm index daafd135f6..55eb6fe356 100644 --- a/code/citadel/dogborgstuff.dm +++ b/code/citadel/dogborgstuff.dm @@ -361,6 +361,9 @@ return if(!iscarbon(target)) return + if(!(target.client && target.client.prefs && target.client.prefs.toggles && (target.client.prefs.toggles & MEDIHOUND_SLEEPER))) + to_chat(user, "This person is incompatible with our equipment.") + return if(target.buckled) to_chat(user, "The user is buckled and can not be put into your [src.name].") return diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index f2ef23f1ce..06af2abb9d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -316,6 +316,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Window Flashing: [(windowflashing) ? "Yes" : "No"]
" dat += "Play admin midis: [(toggles & SOUND_MIDI) ? "Yes" : "No"]
" dat += "Play lobby music: [(toggles & SOUND_LOBBY) ? "Yes" : "No"]
" + dat += "Allow MediHound sleeper: [(toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"]
" dat += "Ghost ears: [(chat_toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
" dat += "Ghost sight: [(chat_toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]
" dat += "Ghost whispers: [(chat_toggles & CHAT_GHOSTWHISPER) ? "All Speech" : "Nearest Creatures"]
" @@ -1783,6 +1784,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("pull_requests") chat_toggles ^= CHAT_PULLR + if("hound_sleeper") + toggles ^= MEDIHOUND_SLEEPER + if("allow_midround_antag") toggles ^= MIDROUND_ANTAG diff --git a/code/modules/client/preferences_toggles.dm b/code/modules/client/preferences_toggles.dm index 255423a4fc..52139fd7bc 100644 --- a/code/modules/client/preferences_toggles.dm +++ b/code/modules/client/preferences_toggles.dm @@ -250,6 +250,20 @@ TOGGLE_CHECKBOX(/datum/verbs/menu/Settings, listen_ooc)() /datum/verbs/menu/Settings/listen_ooc/Get_checked(client/C) return C.prefs.chat_toggles & CHAT_OOC +TOGGLE_CHECKBOX(/datum/verbs/menu/Settings/Sound, togglehoundsleeper)() + set name = "Allow/Deny Hound Sleeper" + set category = "Preferences" + set desc = "Allow MediHound Sleepers" + usr.client.prefs.toggles ^= MEDIHOUND_SLEEPER + usr.client.prefs.save_preferences() + if(usr.client.prefs.toggles & MEDIHOUND_SLEEPER) + to_chat(usr, "You will now allow MediHounds to place you in their sleeper.") + else + to_chat(usr, "You will no longer allow MediHounds to place you in their sleeper.") + SSblackbox.record_feedback("nested tally", "preferences_verb", 1, list("Toggle MediHound Sleeper", "[usr.client.prefs.toggles & MEDIHOUND_SLEEPER ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! +/datum/verbs/menu/Settings/Sound/togglehoundsleeper/Get_checked(client/C) + return C.prefs.toggles & MEDIHOUND_SLEEPER + GLOBAL_LIST_INIT(ghost_forms, list("ghost","ghostking","ghostian2","skeleghost","ghost_red","ghost_black", \ "ghost_blue","ghost_yellow","ghost_green","ghost_pink", \ @@ -415,3 +429,4 @@ GLOBAL_LIST_INIT(ghost_orbits, list(GHOST_ORBIT_CIRCLE,GHOST_ORBIT_TRIANGLE,GHOS prefs.save_preferences() to_chat(src, "You will [(prefs.chat_toggles & CHAT_PRAYER) ? "now" : "no longer"] see prayerchat.") SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Prayer Visibility", "[prefs.chat_toggles & CHAT_PRAYER ? "Enabled" : "Disabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + diff --git a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm index af30ff3349..dd7d492575 100644 --- a/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/modular_citadel/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -67,6 +67,7 @@ /obj/item/soap/tongue, /obj/item/device/healthanalyzer, /obj/item/device/dogborg/sleeper/medihound, + /obj/item/reagent_containers/borghypo, /obj/item/twohanded/shockpaddles/cyborg/hound, /obj/item/stack/medical/gauze/cyborg, /obj/item/device/sensor_device)