diff --git a/_maps/~monkestation/RandomBars/Icebox/BarSM.dmm b/_maps/~monkestation/RandomBars/Icebox/BarSM.dmm index a283cdc68cd6..3b341440cb3c 100644 --- a/_maps/~monkestation/RandomBars/Icebox/BarSM.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/BarSM.dmm @@ -1385,6 +1385,7 @@ /obj/effect/turf_decal/trimline/yellow/warning{ dir = 5 }, +/obj/effect/mapping_helpers/mail_sorting/service/bar, /turf/open/floor/pod/dark, /area/station/commons/lounge) "Vg" = ( diff --git a/_maps/~monkestation/RandomBars/Icebox/clockwork_icebox.dmm b/_maps/~monkestation/RandomBars/Icebox/clockwork_icebox.dmm index e2dfb4976558..a8890927c179 100644 --- a/_maps/~monkestation/RandomBars/Icebox/clockwork_icebox.dmm +++ b/_maps/~monkestation/RandomBars/Icebox/clockwork_icebox.dmm @@ -304,10 +304,11 @@ "oS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/junction/flip{ +/obj/structure/cable, +/obj/structure/disposalpipe/sorting/mail/flip{ dir = 4 }, -/obj/structure/cable, +/obj/effect/mapping_helpers/mail_sorting/service/bar, /turf/open/floor/bronze, /area/station/commons/lounge) "qk" = ( @@ -412,16 +413,6 @@ }, /turf/open/floor/bronze/filled, /area/station/service/bar) -"va" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/mail_sorting/service/bar, -/obj/structure/cable, -/turf/open/floor/bronze, -/area/station/commons/lounge) "vh" = ( /obj/structure/chair/bronze{ dir = 1 @@ -993,7 +984,7 @@ Pz Xo cx vh -va +Xp TP EK EK diff --git a/code/__DEFINES/~monkestation/traits.dm b/code/__DEFINES/~monkestation/traits.dm index 0ab61cb18a9a..91ef22414513 100644 --- a/code/__DEFINES/~monkestation/traits.dm +++ b/code/__DEFINES/~monkestation/traits.dm @@ -14,6 +14,8 @@ #define TRAIT_ALL_SURGERIES "all_surgeries" /// Prevents the user from ever (unintentionally) failing a surgery step, and ensures they always have the maximum surgery speed. #define TRAIT_PERFECT_SURGEON "perfect_surgeon" +/// Prevents the user from casting spells using sign language. Works on both /datum/mind and /mob/living. +#define TRAIT_CANT_SIGN_SPELLS "cant_sign_spells" /// Station trait for when the clown has bridge access *shudders* #define STATION_TRAIT_CLOWN_BRIDGE "clown_bridge" diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 6d294a153cdc..2b2ee17563d0 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -201,6 +201,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_EXPANDED_FOV" = TRAIT_EXPANDED_FOV, "TRAIT_ANALGESIA" = TRAIT_ANALGESIA, "TRAIT_ON_ELEVATED_SURFACE" = TRAIT_ON_ELEVATED_SURFACE, + "TRAIT_CANT_SIGN_SPELLS" = TRAIT_CANT_SIGN_SPELLS, // monke edit ), /obj/item/bodypart = list( "TRAIT_PARALYSIS" = TRAIT_PARALYSIS, diff --git a/code/modules/spells/spell.dm b/code/modules/spells/spell.dm index b72a363faaf9..77d567b78186 100644 --- a/code/modules/spells/spell.dm +++ b/code/modules/spells/spell.dm @@ -378,6 +378,8 @@ return FALSE if((invocation_type == INVOCATION_WHISPER || invocation_type == INVOCATION_SHOUT) && !living_owner.can_speak()) + if(HAS_TRAIT(living_owner, TRAIT_SIGN_LANG) && !HAS_MIND_TRAIT(living_owner, TRAIT_CANT_SIGN_SPELLS)) // monkestation edit: allow sign language users to cast spells + return TRUE if(feedback) to_chat(owner, span_warning("You can't get the words out to invoke [src]!")) return FALSE diff --git a/html/changelogs/AutoChangeLog-pr-1654.yml b/html/changelogs/AutoChangeLog-pr-1654.yml new file mode 100644 index 000000000000..75bf62c0e1e9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-1654.yml @@ -0,0 +1,4 @@ +author: "KnigTheThrasher" +delete-after: True +changes: + - bugfix: "Fixed Icebox tests" \ No newline at end of file diff --git a/html/changelogs/archive/2024-04.yml b/html/changelogs/archive/2024-04.yml index 00d92a7b69be..28d6899e2947 100644 --- a/html/changelogs/archive/2024-04.yml +++ b/html/changelogs/archive/2024-04.yml @@ -172,3 +172,9 @@ 2024-04-14: KnigTheThrasher: - rscadd: Added composters into every perma botany +2024-04-15: + Absolucy: + - qol: People who can't taste things also can't smell things. + - qol: Mute people who can still use sign language are now capable of using sign + language to invoke spells. Wizards are still too egotistical to even consider + doing so, tho. diff --git a/monkestation/code/modules/antagonists/wizard/wizard_antagonist.dm b/monkestation/code/modules/antagonists/wizard/wizard.dm similarity index 90% rename from monkestation/code/modules/antagonists/wizard/wizard_antagonist.dm rename to monkestation/code/modules/antagonists/wizard/wizard.dm index b644296388a7..ec0c23effe79 100644 --- a/monkestation/code/modules/antagonists/wizard/wizard_antagonist.dm +++ b/monkestation/code/modules/antagonists/wizard/wizard.dm @@ -1,3 +1,11 @@ +/datum/antagonist/wizard/on_gain() + . = ..() + ADD_TRAIT(owner, TRAIT_CANT_SIGN_SPELLS, REF(src)) + +/datum/antagonist/wizard/on_removal() + REMOVE_TRAITS_IN(owner, REF(src)) + return ..() + /datum/antagonist/wizard/traitor // traitors that complete a final objective to become a wizard, this subtype is mainly for wizard look things name = "\improper Syndicate Space Wizard" roundend_category = "syndicate wizards/witches" diff --git a/monkestation/code/modules/pollution/pollution.dm b/monkestation/code/modules/pollution/pollution.dm index 548a51c0e5fd..47c35eb04491 100644 --- a/monkestation/code/modules/pollution/pollution.dm +++ b/monkestation/code/modules/pollution/pollution.dm @@ -38,6 +38,8 @@ /// When a user smells this pollution /datum/pollution/proc/smell_act(mob/living/sniffer) + if(HAS_TRAIT(sniffer, TRAIT_AGEUSIA)) // can't taste, can't smell. + return var/list/singleton_cache = SSpollution.singletons var/datum/pollutant/dominant_pollutant var/dominiant_smell_power diff --git a/tgstation.dme b/tgstation.dme index 62dc515675d0..4745f7942a9b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5942,7 +5942,7 @@ #include "monkestation\code\modules\antagonists\traitor\objectives\tide_bug_department.dm" #include "monkestation\code\modules\antagonists\traitor\objectives\final_objective\become_wizard.dm" #include "monkestation\code\modules\antagonists\traitor\objectives\final_objective\final_objective.dm" -#include "monkestation\code\modules\antagonists\wizard\wizard_antagonist.dm" +#include "monkestation\code\modules\antagonists\wizard\wizard.dm" #include "monkestation\code\modules\antagonists\wizard\equipment\artefact.dm" #include "monkestation\code\modules\antagonists\wizard\equipment\spellbook_entries\defensive.dm" #include "monkestation\code\modules\antagonists\wizard\equipment\spellbook_entries\mobility.dm"