diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 099ab160c06..114f0afe867 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -26,6 +26,9 @@ PROCESSING_SUBSYSTEM_DEF(quirks) list("Clown Enjoyer","Mime Fan"), list("Bad Touch", "Friendly"), list("Extrovert", "Introvert"), + //SKYRAT EDIT ADDITION BEGIN + list("Nerve Stapled", "Pacifist", "Nearsighted") + //SKYRAT EDIT ADDITION END ) /datum/controller/subsystem/processing/quirks/Initialize(timeofday) diff --git a/modular_skyrat/master_files/code/datums/quirks/negative.dm b/modular_skyrat/master_files/code/datums/quirks/negative.dm new file mode 100644 index 00000000000..9b5bdc49082 --- /dev/null +++ b/modular_skyrat/master_files/code/datums/quirks/negative.dm @@ -0,0 +1,23 @@ +/datum/quirk/equipping/nerve_staple + name = "Nerve Stapled" + desc = "You're a pacifist. Not because you want to be, but because of the device stapled into your eye." + value = -10 //pacifism = -8, losing eye slots = -2 + gain_text = span_danger("You suddenly can't raise a hand to hurt others!") + lose_text = span_notice("You think you can defend yourself again.") + medical_record_text = "Patient is nerve stapled and is unable to harm others." + icon = "hand-peace" + forced_items = list(/obj/item/clothing/glasses/nerve_staple = list(ITEM_SLOT_EYES)) + /// The nerve staple attached to the quirk + var/obj/item/clothing/glasses/nerve_staple/staple + +/datum/quirk/equipping/nerve_staple/on_equip_item(obj/item/equipped, successful) + if (!istype(equipped, /obj/item/clothing/glasses/nerve_staple)) + return + staple = equipped + +/datum/quirk/equipping/nerve_staple/remove() + . = ..() + if (!staple || staple != quirk_holder.get_item_by_slot(ITEM_SLOT_EYES)) + return + to_chat(quirk_holder, span_warning("The nerve staple suddenly falls off your face and melts[istype(quirk_holder.loc, /turf/open/floor) ? " on the floor" : ""]!")) + qdel(staple) diff --git a/modular_skyrat/master_files/code/modules/clothing/glasses/nerve_staple.dm b/modular_skyrat/master_files/code/modules/clothing/glasses/nerve_staple.dm new file mode 100644 index 00000000000..5da3a75d126 --- /dev/null +++ b/modular_skyrat/master_files/code/modules/clothing/glasses/nerve_staple.dm @@ -0,0 +1,25 @@ +/obj/item/clothing/glasses/nerve_staple + name = "nerve staple" + desc = "A horrific looking device that is stapled into your face" + icon = 'modular_skyrat/master_files/icons/obj/clothing/glasses.dmi' + icon_state = "nerve_staple" + worn_icon = 'modular_skyrat/master_files/icons/mob/clothing/eyes.dmi' + worn_icon_state = "nerve_staple" + resistance_flags = FIRE_PROOF | ACID_PROOF + clothing_traits = list(TRAIT_PACIFISM) + +/obj/item/clothing/glasses/nerve_staple/Initialize(mapload) + . = ..() + if (prob(20)) + worn_icon_state = "[initial(worn_icon_state)]_r" + +/obj/item/clothing/glasses/nerve_staple/equipped(mob/user, slot) + . = ..() + if (slot == ITEM_SLOT_EYES) + ADD_TRAIT(src, TRAIT_NODROP, CLOTHING_TRAIT) + else + REMOVE_TRAIT(src, TRAIT_NODROP, CLOTHING_TRAIT) + +/obj/item/clothing/glasses/nerve_staple/dropped(mob/user) + . = ..() + REMOVE_TRAIT(src, TRAIT_NODROP, CLOTHING_TRAIT) diff --git a/modular_skyrat/master_files/icons/mob/clothing/eyes.dmi b/modular_skyrat/master_files/icons/mob/clothing/eyes.dmi index 671463e9ccd..20a820f81c7 100644 Binary files a/modular_skyrat/master_files/icons/mob/clothing/eyes.dmi and b/modular_skyrat/master_files/icons/mob/clothing/eyes.dmi differ diff --git a/modular_skyrat/master_files/icons/obj/clothing/glasses.dmi b/modular_skyrat/master_files/icons/obj/clothing/glasses.dmi index 03121fa78ec..d876f1f0a10 100644 Binary files a/modular_skyrat/master_files/icons/obj/clothing/glasses.dmi and b/modular_skyrat/master_files/icons/obj/clothing/glasses.dmi differ diff --git a/tgstation.dme b/tgstation.dme index d5a78e69863..83d51f1d7cf 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4135,6 +4135,7 @@ #include "modular_skyrat\master_files\code\datums\martial\cqcplus.dm" #include "modular_skyrat\master_files\code\datums\mutations\chameleon.dm" #include "modular_skyrat\master_files\code\datums\quirks\_quirk.dm" +#include "modular_skyrat\master_files\code\datums\quirks\negative.dm" #include "modular_skyrat\master_files\code\datums\quirks\neutral.dm" #include "modular_skyrat\master_files\code\datums\traits\good.dm" #include "modular_skyrat\master_files\code\datums\traits\negative.dm" @@ -4190,6 +4191,7 @@ #include "modular_skyrat\master_files\code\modules\clothing\chameleon.dm" #include "modular_skyrat\master_files\code\modules\clothing\clothing.dm" #include "modular_skyrat\master_files\code\modules\clothing\non_anthro_clothes.dm" +#include "modular_skyrat\master_files\code\modules\clothing\glasses\nerve_staple.dm" #include "modular_skyrat\master_files\code\modules\clothing\head\monkey_magnification_helmet.dm" #include "modular_skyrat\master_files\code\modules\clothing\outfits\ert.dm" #include "modular_skyrat\master_files\code\modules\events\spacevine.dm"