mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-12 00:27:31 +01:00
Purrbation toggle and organ insert code refactor (#68738)
This PR improves the purrbation toggle code. Admins can now put any human species on purrbation.
This commit is contained in:
@@ -72,12 +72,12 @@
|
||||
/obj/item/organ/internal/appendix/get_availability(datum/species/owner_species)
|
||||
return !(TRAIT_NOHUNGER in owner_species.inherent_traits)
|
||||
|
||||
/obj/item/organ/internal/appendix/Remove(mob/living/carbon/organ_owner, special = FALSE)
|
||||
/obj/item/organ/internal/appendix/Remove(mob/living/carbon/organ_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
REMOVE_TRAIT(organ_owner, TRAIT_DISEASELIKE_SEVERITY_MEDIUM, type)
|
||||
organ_owner.med_hud_set_status()
|
||||
..()
|
||||
|
||||
/obj/item/organ/internal/appendix/Insert(mob/living/carbon/organ_owner, special = FALSE)
|
||||
/obj/item/organ/internal/appendix/Insert(mob/living/carbon/organ_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
if(.)
|
||||
if(inflamation_stage)
|
||||
|
||||
@@ -116,11 +116,11 @@
|
||||
|
||||
var/stun_cap_amount = 40
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_stun/Remove(mob/living/carbon/implant_owner, special = FALSE)
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_stun/Remove(mob/living/carbon/implant_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
UnregisterSignal(implant_owner, signalCache)
|
||||
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_stun/Insert()
|
||||
/obj/item/organ/internal/cyberimp/brain/anti_stun/Insert(special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
RegisterSignal(owner, signalCache, .proc/on_signal)
|
||||
|
||||
|
||||
@@ -243,11 +243,11 @@
|
||||
see_in_dark = NIGHTVISION_FOV_RANGE
|
||||
sight_flags = SEE_MOBS | SEE_OBJS | SEE_TURFS
|
||||
|
||||
/obj/item/organ/internal/eyes/robotic/xray/Insert(mob/living/carbon/eye_owner, special = FALSE)
|
||||
/obj/item/organ/internal/eyes/robotic/xray/Insert(mob/living/carbon/eye_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
ADD_TRAIT(eye_owner, TRAIT_XRAY_VISION, ORGAN_TRAIT)
|
||||
|
||||
/obj/item/organ/internal/eyes/robotic/xray/Remove(mob/living/carbon/eye_owner, special = FALSE)
|
||||
/obj/item/organ/internal/eyes/robotic/xray/Remove(mob/living/carbon/eye_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
REMOVE_TRAIT(eye_owner, TRAIT_XRAY_VISION, ORGAN_TRAIT)
|
||||
return ..()
|
||||
|
||||
@@ -519,11 +519,11 @@
|
||||
eye_icon_state = "flyeyes"
|
||||
icon_state = "eyeballs-fly"
|
||||
|
||||
/obj/item/organ/internal/eyes/fly/Insert(mob/living/carbon/eye_owner, special = FALSE)
|
||||
/obj/item/organ/internal/eyes/fly/Insert(mob/living/carbon/eye_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
ADD_TRAIT(eye_owner, TRAIT_FLASH_SENSITIVE, ORGAN_TRAIT)
|
||||
|
||||
/obj/item/organ/internal/eyes/fly/Remove(mob/living/carbon/eye_owner, special = FALSE)
|
||||
/obj/item/organ/internal/eyes/fly/Remove(mob/living/carbon/eye_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
REMOVE_TRAIT(eye_owner, TRAIT_FLASH_SENSITIVE, ORGAN_TRAIT)
|
||||
return ..()
|
||||
|
||||
@@ -538,7 +538,7 @@
|
||||
overlay_ignore_lighting = TRUE
|
||||
var/obj/item/flashlight/eyelight/adapted/adapt_light
|
||||
|
||||
/obj/item/organ/internal/eyes/night_vision/maintenance_adapted/Insert(mob/living/carbon/adapted, special = FALSE)
|
||||
/obj/item/organ/internal/eyes/night_vision/maintenance_adapted/Insert(mob/living/carbon/adapted, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
//add lighting
|
||||
if(!adapt_light)
|
||||
@@ -561,7 +561,7 @@
|
||||
applyOrganDamage(-10) //heal quickly
|
||||
. = ..()
|
||||
|
||||
/obj/item/organ/internal/eyes/night_vision/maintenance_adapted/Remove(mob/living/carbon/unadapted, special = FALSE)
|
||||
/obj/item/organ/internal/eyes/night_vision/maintenance_adapted/Remove(mob/living/carbon/unadapted, special = FALSE, drop_if_replaced = TRUE)
|
||||
//remove lighting
|
||||
adapt_light.on = FALSE
|
||||
adapt_light.update_brightness(unadapted)
|
||||
|
||||
@@ -137,12 +137,12 @@
|
||||
else
|
||||
last_pump = world.time //lets be extra fair *sigh*
|
||||
|
||||
/obj/item/organ/internal/heart/cursed/Insert(mob/living/carbon/accursed, special = 0)
|
||||
/obj/item/organ/internal/heart/cursed/Insert(mob/living/carbon/accursed, special = FALSE, drop_if_replaced = TRUE)
|
||||
..()
|
||||
if(owner)
|
||||
to_chat(owner, span_userdanger("Your heart has been replaced with a cursed one, you have to pump this one manually otherwise you'll die!"))
|
||||
|
||||
/obj/item/organ/internal/heart/cursed/Remove(mob/living/carbon/accursed, special = 0)
|
||||
/obj/item/organ/internal/heart/cursed/Remove(mob/living/carbon/accursed, special = FALSE, drop_if_replaced = TRUE)
|
||||
..()
|
||||
accursed.remove_client_colour(/datum/client_colour/cursed_heart_blood)
|
||||
|
||||
@@ -276,13 +276,13 @@
|
||||
. = ..()
|
||||
add_atom_colour(ethereal_color, FIXED_COLOUR_PRIORITY)
|
||||
|
||||
/obj/item/organ/internal/heart/ethereal/Insert(mob/living/carbon/owner, special = 0)
|
||||
/obj/item/organ/internal/heart/ethereal/Insert(mob/living/carbon/owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
RegisterSignal(owner, COMSIG_MOB_STATCHANGE, .proc/on_stat_change)
|
||||
RegisterSignal(owner, COMSIG_LIVING_POST_FULLY_HEAL, .proc/on_owner_fully_heal)
|
||||
RegisterSignal(owner, COMSIG_PARENT_QDELETING, .proc/owner_deleted)
|
||||
|
||||
/obj/item/organ/internal/heart/ethereal/Remove(mob/living/carbon/owner, special = 0)
|
||||
/obj/item/organ/internal/heart/ethereal/Remove(mob/living/carbon/owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
UnregisterSignal(owner, list(COMSIG_MOB_STATCHANGE, COMSIG_LIVING_POST_FULLY_HEAL, COMSIG_PARENT_QDELETING))
|
||||
REMOVE_TRAIT(owner, TRAIT_CORPSELOCKED, SPECIES_TRAIT)
|
||||
stop_crystalization_process(owner)
|
||||
|
||||
@@ -12,13 +12,13 @@
|
||||
adjust_charge(-ETHEREAL_CHARGE_FACTOR * delta_time)
|
||||
handle_charge(owner, delta_time, times_fired)
|
||||
|
||||
/obj/item/organ/internal/stomach/ethereal/Insert(mob/living/carbon/carbon, special = 0)
|
||||
/obj/item/organ/internal/stomach/ethereal/Insert(mob/living/carbon/carbon, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
RegisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT, .proc/charge)
|
||||
RegisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT, .proc/on_electrocute)
|
||||
ADD_TRAIT(owner, TRAIT_NOHUNGER, REF(src))
|
||||
|
||||
/obj/item/organ/internal/stomach/ethereal/Remove(mob/living/carbon/carbon, special = 0)
|
||||
/obj/item/organ/internal/stomach/ethereal/Remove(mob/living/carbon/carbon, special = FALSE, drop_if_replaced = TRUE)
|
||||
UnregisterSignal(owner, COMSIG_PROCESS_BORGCHARGER_OCCUPANT)
|
||||
UnregisterSignal(owner, COMSIG_LIVING_ELECTROCUTE_ACT)
|
||||
REMOVE_TRAIT(owner, TRAIT_NOHUNGER, REF(src))
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
/obj/item/organ/internal/tongue/proc/modify_speech(datum/source, list/speech_args)
|
||||
return speech_args[SPEECH_MESSAGE]
|
||||
|
||||
/obj/item/organ/internal/tongue/Insert(mob/living/carbon/tongue_owner, special = 0)
|
||||
/obj/item/organ/internal/tongue/Insert(mob/living/carbon/tongue_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
..()
|
||||
if(say_mod && tongue_owner.dna && tongue_owner.dna.species)
|
||||
tongue_owner.dna.species.say_mod = say_mod
|
||||
@@ -63,7 +63,7 @@
|
||||
if(!sense_of_taste)
|
||||
ADD_TRAIT(tongue_owner, TRAIT_AGEUSIA, ORGAN_TRAIT)
|
||||
|
||||
/obj/item/organ/internal/tongue/Remove(mob/living/carbon/tongue_owner, special = 0)
|
||||
/obj/item/organ/internal/tongue/Remove(mob/living/carbon/tongue_owner, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
if(say_mod && tongue_owner.dna && tongue_owner.dna.species)
|
||||
tongue_owner.dna.species.say_mod = initial(tongue_owner.dna.species.say_mod)
|
||||
@@ -446,7 +446,7 @@
|
||||
// The timerid for our tonal indicator
|
||||
var/tonal_timerid
|
||||
|
||||
/obj/item/organ/internal/tongue/tied/Insert(mob/living/carbon/signer)
|
||||
/obj/item/organ/internal/tongue/tied/Insert(mob/living/carbon/signer, special = FALSE, drop_if_replaced = TRUE)
|
||||
. = ..()
|
||||
signer.verb_ask = "signs"
|
||||
signer.verb_exclaim = "signs"
|
||||
@@ -457,7 +457,7 @@
|
||||
ADD_TRAIT(signer, TRAIT_SIGN_LANG, ORGAN_TRAIT)
|
||||
REMOVE_TRAIT(signer, TRAIT_MUTE, ORGAN_TRAIT)
|
||||
|
||||
/obj/item/organ/internal/tongue/tied/Remove(mob/living/carbon/speaker, special = 0)
|
||||
/obj/item/organ/internal/tongue/tied/Remove(mob/living/carbon/speaker, special = FALSE, drop_if_replaced = TRUE)
|
||||
..()
|
||||
speaker.verb_ask = initial(speaker.verb_ask)
|
||||
speaker.verb_exclaim = initial(speaker.verb_exclaim)
|
||||
|
||||
Reference in New Issue
Block a user