diff --git a/code/__DEFINES/stat.dm b/code/__DEFINES/stat.dm index 942a82e73f..ecb3fcc611 100644 --- a/code/__DEFINES/stat.dm +++ b/code/__DEFINES/stat.dm @@ -32,6 +32,7 @@ #define STASIS_MUTE "stasis" #define GENETICS_SPELL "genetics_spell" #define TRAUMA_DISABILITY "trauma" +#define CHEMICAL_DISABILITY "chemical" // bitflags for machine stat variable #define BROKEN 1 diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index ddfbec5935..68428cae90 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -58,9 +58,11 @@ SendSignal(COMSIG_ITEM_ATTACK, M, user) if(flags_1 & NOBLUDGEON_1) return - - if(user.has_disability(DISABILITY_PACIFISM)) + + if(force && user.has_disability(DISABILITY_PACIFISM)) + to_chat(user, "You don't want to harm other living beings!") return + if(!force) playsound(loc, 'sound/weapons/tap.ogg', get_clamped_volume(), 1, -1) else if(hitsound) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index a84683c5ae..7d0bc721a6 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -72,6 +72,10 @@ else if(eye_blurry) //blurry eyes heal slowly adjust_blurriness(-1) + if(has_disability(DISABILITY_PACIFISM) && a_intent == INTENT_HARM) + to_chat(src, "You don't feel like harming anybody.") + a_intent_change(INTENT_HELP) + /mob/living/carbon/human/handle_mutations_and_radiation() if(!dna || !dna.species.handle_mutations_and_radiation(src)) ..() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 219d9df8ef..bb504c316f 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -1688,3 +1688,23 @@ description = "blue sparkles that get everywhere" color = "#4040FF" //A blueish color glitter_type = /obj/effect/decal/cleanable/glitter/blue + +/datum/reagent/pax + name = "pax" + id = "pax" + description = "A colorless liquid that suppresses violence on the subjects." + color = "#AAAAAA55" + taste_description = "water" + metabolization_rate = 0.25 * REAGENTS_METABOLISM + +/datum/reagent/pax/on_mob_add(mob/M) + ..() + if(isliving(M)) + var/mob/living/L = M + L.add_disability(DISABILITY_PACIFISM, CHEMICAL_DISABILITY) + +/datum/reagent/pax/on_mob_delete(mob/M) + if(isliving(M)) + var/mob/living/L = M + L.remove_disability(DISABILITY_PACIFISM, CHEMICAL_DISABILITY) + ..() \ No newline at end of file diff --git a/code/modules/reagents/chemistry/recipes/others.dm b/code/modules/reagents/chemistry/recipes/others.dm index 222f88ba8b..8ebc470c5f 100644 --- a/code/modules/reagents/chemistry/recipes/others.dm +++ b/code/modules/reagents/chemistry/recipes/others.dm @@ -671,3 +671,9 @@ var/location = get_turf(holder.my_atom) for(var/i in 1 to 10) new /obj/item/stack/sheet/plastic(location) + +/datum/chemical_reaction/pax + name = "pax" + id = "pax" + results = list("pax" = 3) + required_reagents = list("mindbreaker" = 1, "synaptizine" = 1, "water" = 1)