Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into donotreviveme
This commit is contained in:
@@ -37,11 +37,11 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
if(job?.blacklisted_quirks)
|
||||
cut = filter_quirks(my_quirks, job.blacklisted_quirks)
|
||||
for(var/V in my_quirks)
|
||||
var/datum/quirk/Q = quirks[V]
|
||||
if(Q)
|
||||
if(V in quirks)
|
||||
var/datum/quirk/Q = quirks[V]
|
||||
user.add_quirk(Q, spawn_effects)
|
||||
else
|
||||
stack_trace("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
|
||||
log_admin("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
|
||||
cli.prefs.all_quirks -= V
|
||||
badquirk = TRUE
|
||||
if(badquirk)
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
..()
|
||||
make_backseats()
|
||||
get_ghost()
|
||||
RegisterSignal(M, COMSIG_MOB_DEATH, .proc/revert_to_normal)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/make_backseats()
|
||||
stranger_backseat = new(owner, src)
|
||||
@@ -37,23 +38,23 @@
|
||||
qdel(src)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/on_life()
|
||||
if(owner.stat == DEAD)
|
||||
if(current_controller != OWNER)
|
||||
switch_personalities()
|
||||
qdel(src)
|
||||
else if(prob(3))
|
||||
if(prob(3))
|
||||
switch_personalities()
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/on_lose()
|
||||
if(current_controller != OWNER) //it would be funny to cure a guy only to be left with the other personality, but it seems too cruel
|
||||
switch_personalities()
|
||||
switch_personalities(TRUE)
|
||||
QDEL_NULL(stranger_backseat)
|
||||
QDEL_NULL(owner_backseat)
|
||||
UnregisterSignal(M, COMSIG_MOB_DEATH)
|
||||
..()
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/switch_personalities()
|
||||
if(QDELETED(owner) || owner.stat == DEAD || QDELETED(stranger_backseat) || QDELETED(owner_backseat))
|
||||
/datum/brain_trauma/severe/split_personality/proc/revert_to_normal()
|
||||
qdel(src)
|
||||
|
||||
/datum/brain_trauma/severe/split_personality/proc/switch_personalities(forced = FALSE)
|
||||
if(QDELETED(owner) || (owner.stat == DEAD && !forced) || QDELETED(stranger_backseat) || QDELETED(owner_backseat))
|
||||
return
|
||||
|
||||
var/mob/living/split_personality/current_backseat
|
||||
@@ -126,10 +127,6 @@
|
||||
if(QDELETED(body))
|
||||
qdel(src) //in case trauma deletion doesn't already do it
|
||||
|
||||
if((body.stat == DEAD && trauma.owner_backseat == src))
|
||||
trauma.switch_personalities()
|
||||
qdel(trauma)
|
||||
|
||||
//if one of the two ghosts, the other one stays permanently
|
||||
if(!body.client && trauma.initialized)
|
||||
trauma.switch_personalities()
|
||||
|
||||
@@ -88,14 +88,6 @@
|
||||
if(quirk_holder)
|
||||
quirk_holder.remove_client_colour(/datum/client_colour/monochrome)
|
||||
|
||||
/datum/quirk/libido
|
||||
name = "Nymphomania"
|
||||
desc = "You're always feeling a bit in heat. Also, you get aroused faster than usual."
|
||||
value = 0
|
||||
mob_trait = TRAIT_PERMABONER
|
||||
gain_text = "<span class='notice'>You are feeling extra wild.</span>"
|
||||
lose_text = "<span class='notice'>You don't feel that burning sensation anymore.</span>"
|
||||
|
||||
/datum/quirk/maso
|
||||
name = "Masochism"
|
||||
desc = "You are aroused by pain."
|
||||
|
||||
@@ -451,7 +451,7 @@
|
||||
/obj/structure/closet/relaymove(mob/user)
|
||||
if(user.stat || !isturf(loc) || !isliving(user))
|
||||
return
|
||||
if(locked)
|
||||
if(locked || welded)
|
||||
if(message_cooldown <= world.time)
|
||||
message_cooldown = world.time + 50
|
||||
to_chat(user, "<span class='warning'>[src]'s door won't budge!</span>")
|
||||
|
||||
@@ -2154,6 +2154,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
toggles ^= MEMBER_PUBLIC
|
||||
if("gender")
|
||||
var/chosengender = input(user, "Select your character's gender.", "Gender Selection", gender) as null|anything in list(MALE,FEMALE,"nonbinary","object")
|
||||
if(!chosengender)
|
||||
return
|
||||
switch(chosengender)
|
||||
if("nonbinary")
|
||||
chosengender = PLURAL
|
||||
|
||||
@@ -438,7 +438,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
|
||||
//Citadel code
|
||||
S["feature_genitals_use_skintone"] >> features["genitals_use_skintone"]
|
||||
S["feature_exhibitionist"] >> features["exhibitionist"]
|
||||
S["feature_mcolor2"] >> features["mcolor2"]
|
||||
S["feature_mcolor3"] >> features["mcolor3"]
|
||||
S["feature_mam_body_markings"] >> features["mam_body_markings"]
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
brainmob.stored_dna = new /datum/dna/stored(brainmob)
|
||||
C.dna.copy_dna(brainmob.stored_dna)
|
||||
if(HAS_TRAIT(L, TRAIT_NOCLONE))
|
||||
brainmob.status_traits[TRAIT_NOCLONE] = L.status_traits[TRAIT_NOCLONE]
|
||||
LAZYSET(brainmob.status_traits, TRAIT_NOCLONE, L.status_traits[TRAIT_NOCLONE])
|
||||
var/obj/item/organ/zombie_infection/ZI = L.getorganslot(ORGAN_SLOT_ZOMBIE)
|
||||
if(ZI)
|
||||
brainmob.set_species(ZI.old_species) //For if the brain is cloned
|
||||
|
||||
@@ -283,6 +283,8 @@
|
||||
|
||||
/mob/living/carbon/resist_buckle()
|
||||
. = FALSE
|
||||
if(!buckled)
|
||||
return
|
||||
if(restrained())
|
||||
// too soon.
|
||||
if(last_special > world.time)
|
||||
|
||||
@@ -715,7 +715,7 @@
|
||||
return TRUE
|
||||
|
||||
/mob/living/proc/resist_buckle()
|
||||
buckled.user_unbuckle_mob(src,src)
|
||||
buckled?.user_unbuckle_mob(src,src)
|
||||
|
||||
/mob/living/proc/resist_fire()
|
||||
return
|
||||
|
||||
@@ -65,10 +65,10 @@
|
||||
update_icon()
|
||||
|
||||
/obj/item/gun/energy/Destroy()
|
||||
if(flags_1 & INITIALIZED_1)
|
||||
QDEL_NULL(cell)
|
||||
QDEL_LIST(ammo_type)
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
//no need to delete them, since contents are already deleted in atom/movable/Destroy().
|
||||
cell = null
|
||||
ammo_type = null
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
return ..()
|
||||
|
||||
/obj/item/gun/energy/examine(mob/user)
|
||||
|
||||
Reference in New Issue
Block a user