Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cyberware quirks #2084

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions code/controllers/subsystem/processing/quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
list("Mute", "Soft-Spoken"),
list("Stormtrooper Aim", "Big Hands"),
list("Bilingual", "Foreigner"),
//might be fun to change this in the future. you can be a body purist but be forced to use implants regardless for medical reasons
list("Body Purist", "Hosed", "Neuralinked")
)

/datum/controller/subsystem/processing/quirks/Initialize()
Expand Down
81 changes: 81 additions & 0 deletions monkestation/code/datums/quirks/positive_quirks.dm
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,84 @@
/datum/quirk/voracious/remove()
var/mob/living/carbon/human/holder = quirk_holder
holder.max_food_buffs --


/datum/quirk/bright_eyes
name = "Bright Eyes"
desc = "You've got bright, cybernetic eyes!"
icon = FA_ICON_SUN
value = 3
medical_record_text = "Patient has acquired and been installed with high luminosity eyes."
// hardcore_value = 0
quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE
gain_text = span_notice("Your eyes feel extra shiny.")
lose_text = span_danger("You can't feel your eyes anymore.")

/datum/quirk/bright_eyes/add()
var/obj/item/organ/internal/eyes/old_eyes = quirk_holder.get_organ_slot(ORGAN_SLOT_EYES)
var/obj/item/organ/internal/eyes/robotic/glow/new_eyes = new

qdel(old_eyes)
new_eyes.Insert(quirk_holder)

/datum/quirk/bright_eyes/remove()
var/obj/item/organ/internal/eyes/old_eyes = quirk_holder.get_organ_slot(ORGAN_SLOT_EYES)
var/mob/living/carbon/human/quirk_mob = quirk_holder

if(!old_eyes || /obj/item/organ/internal/eyes/robotic/glow)
return

var/species_eyes = /obj/item/organ/internal/eyes
if(quirk_mob.dna.species && quirk_mob.dna.species.mutanteyes)
species_eyes = quirk_mob.dna.species.mutanteyes
var/obj/item/organ/internal/eyes/new_eyes = new species_eyes()

qdel(old_eyes)
new_eyes.Insert(quirk_holder)

/datum/quirk/neuralink
name = "Neuralinked"
desc = "You've been installed with an NT 1.0 cyberlink!"
icon = FA_ICON_PLUG
value = 3
medical_record_text = "Patient has acquired and been installed with a NT 1.0 Cyberlink."
// hardcore_value = 0
gain_text = span_notice("You feel robotic.")
lose_text = span_danger("You feel fleshy again.")

/datum/quirk/neuralink/add()
var/obj/item/organ/internal/cyberimp/cyberlink/nt_low/neuralink = new

neuralink.Insert(quirk_holder)

/datum/quirk/neuralink/remove()
var/obj/item/organ/internal/cyberimp/cyberlink/nt_low/neuralink = new
var/obj/item/organ/internal/cyberimp/cyberlink/current_link = quirk_holder.get_organ_slot(ORGAN_SLOT_LINK)

if(!neuralink)
return
qdel(current_link)

/datum/quirk/hosed
name = "Hosed"
desc = "You've got a cybernetic breathing tube implant!"
icon = FA_ICON_LUNGS
value = 3
medical_record_text = "Patient has been installed with a breathing tube implant."
// hardcore_value = 0
gain_text = span_notice("You can breathe easier!")
lose_text = span_notice("Breathing feels normal again.")

/datum/quirk/hosed/add()
var/obj/item/organ/internal/cyberimp/mouth/breathing_tube/hose = new

hose.Insert(quirk_holder)

/datum/quirk/hosed/remove()
var/obj/item/organ/internal/cyberimp/mouth/breathing_tube/hose = new
var/obj/item/organ/internal/cyberimp/cyberlink/current_hose = quirk_holder.get_organ_slot(ORGAN_SLOT_BREATHING_TUBE)

//should work even if we get more implants of this type in the future. maybe. might have issues mentioned in previous comment
if(!hose)
return
qdel(current_hose)
Loading