This commit is contained in:
SandPoot
2023-01-17 22:26:56 -03:00
53 changed files with 339 additions and 93 deletions
+31 -3
View File
@@ -181,10 +181,10 @@
/datum/quirk/trandening
name = "High Luminosity Eyes"
desc = "When the next big fancy implant came out you had to buy one on impluse!"
desc = "When the next big fancy implant came out you had to buy one on impulse! You start the shift with emissive cybernetic eyes that can emit colored beams of light."
value = 1
gain_text = "<span class='notice'>You have to keep up with the next big thing!.</span>"
lose_text = "<span class='danger'>High-tech gizmos are a scam...</span>"
gain_text = "<span class='notice'>You've been keeping up with the latest cybernetic trends!</span>"
lose_text = "<span class='danger'>High powered eye lasers? What were you thinking...</span>"
/datum/quirk/trandening/on_spawn()
// Get targets
@@ -195,6 +195,34 @@
qdel(old_eyes)
new_eyes.Insert(quirk_holder)
/datum/quirk/trandening/remove()
// Get targets
var/obj/item/organ/eyes/old_eyes = quirk_holder.getorganslot(ORGAN_SLOT_EYES)
var/mob/living/carbon/human/qurk_mob = quirk_holder
// Check for eyes existing
if(!old_eyes)
return
// Check for quirk eyes
if(!istype(old_eyes, /obj/item/organ/eyes/robotic/glow))
return
// Define new eyes
var/species_eyes = /obj/item/organ/eyes
// Check for mutant eyes
if(qurk_mob.dna.species && qurk_mob.dna.species.mutanteyes)
// Set eyes to mutant type
species_eyes = qurk_mob.dna.species.mutanteyes
// Create new eyes item
var/obj/item/organ/eyes/new_eyes = new species_eyes()
// Replace eyes
qdel(old_eyes)
new_eyes.Insert(quirk_holder)
/datum/quirk/bloodpressure
name = "Polycythemia vera"
desc = "You've a treated form of Polycythemia vera that increases the total blood volume inside of you as well as the rate of replenishment!"
+36 -13
View File
@@ -43,27 +43,38 @@
GLOBAL_LIST_EMPTY(family_heirlooms)
/datum/quirk/family_heirloom/on_spawn()
var/mob/living/carbon/human/H = quirk_holder
/datum/quirk/family_heirloom/on_spawn()
// Define holder and type
var/mob/living/carbon/human/human_holder = quirk_holder
var/obj/item/heirloom_type
var/species_heirloom_entry = GLOB.species_heirlooms[H.dna.species.id]
if(species_heirloom_entry)
if(prob(species_heirloom_entry[1]))
heirloom_type = pick(species_heirloom_entry[2])
// The quirk holder's species - we have a 50% chance, if we have a species with a set heirloom, to choose a species heirloom.
var/datum/species/holder_species = human_holder.dna?.species
if(holder_species && LAZYLEN(holder_species.family_heirlooms) && prob(50))
heirloom_type = pick(holder_species.family_heirlooms)
else
// Our quirk holder's job
var/datum/job/holder_job = SSjob.GetJob(human_holder.last_mind?.assigned_role)
if(holder_job && LAZYLEN(holder_job.family_heirlooms))
heirloom_type = pick(holder_job.family_heirlooms)
// If we didn't find an heirloom somehow, throw them a generic one
if(!heirloom_type)
var/job_heirloom_entry = GLOB.job_heirlooms[quirk_holder.mind.assigned_role]
if(!job_heirloom_entry)
heirloom_type = pick(GLOB.job_heirlooms["NO_JOB"]) //consider: should this be a define?
else
heirloom_type = pick(job_heirloom_entry)
heirloom_type = pick(/obj/item/toy/cards/deck, /obj/item/lighter, /obj/item/dice/d20)
// Create the heirloom item
heirloom = new heirloom_type(get_turf(quirk_holder))
// Add to global list
GLOB.family_heirlooms += heirloom
// Determine and assign item location
var/list/slots = list(
"in your left pocket" = ITEM_SLOT_LPOCKET,
"in your right pocket" = ITEM_SLOT_RPOCKET,
"in your backpack" = ITEM_SLOT_BACKPACK
)
where = H.equip_in_one_of_slots(heirloom, slots, FALSE) || "at your feet"
where = human_holder.equip_in_one_of_slots(heirloom, slots, FALSE) || "at your feet"
/datum/quirk/family_heirloom/post_add()
if(where == "in your backpack")
@@ -75,13 +86,25 @@ GLOBAL_LIST_EMPTY(family_heirlooms)
heirloom.name = "\improper [family_name[family_name.len]] family [heirloom.name]"
/datum/quirk/family_heirloom/on_process()
if(heirloom in quirk_holder.GetAllContents())
// Ignore for dead holder
if(quirk_holder.stat == DEAD)
return
// When held: Positive mood
if(heirloom && (heirloom in quirk_holder.GetAllContents()))
SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "family_heirloom_missing")
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "family_heirloom", /datum/mood_event/family_heirloom)
// When not held: Negative mood
else
SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "family_heirloom")
SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "family_heirloom_missing", /datum/mood_event/family_heirloom_missing)
/datum/quirk/item_quirk/family_heirloom/remove()
// Clear mood events when removing this quirk
SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "family_heirloom")
SEND_SIGNAL(quirk_holder, COMSIG_CLEAR_MOOD_EVENT, "family_heirloom_missing")
/datum/quirk/family_heirloom/clone_data()
return heirloom
+1 -16
View File
@@ -163,22 +163,7 @@
lose_text = "<span class='notice'>You no longer feel like you should be eating trash.</span>"
mob_trait = TRAIT_TRASHCAN
/datum/quirk/colorist
name = "Colorist"
desc = "You like carrying around a hair dye spray to quickly apply color patterns to your hair."
value = 0
medical_record_text = "Patient enjoys dyeing their hair with pretty colors."
/datum/quirk/colorist/on_spawn()
var/mob/living/carbon/human/H = quirk_holder
var/obj/item/dyespray/spraycan = new(get_turf(quirk_holder))
H.equip_to_slot(spraycan, ITEM_SLOT_BACKPACK)
H.regenerate_icons()
/datum/quirk/colorist/post_add()
var/mob/living/carbon/human/H = quirk_holder
SEND_SIGNAL(H.back, COMSIG_TRY_STORAGE_SHOW, H)
to_chat(quirk_holder, "<span class='boldnotice'>You brought some extra dye with you! It's in your bag if you forgot.</span>")
// Moved Colorist quirk to a loadout item
/datum/quirk/salt_sensitive
name = "Sodium Sensitivity"