Merge branch 'master' into species-refactor
This commit is contained in:
@@ -51,7 +51,7 @@
|
||||
|
||||
/datum/sprite_accessory/xeno_head/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
|
||||
var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
|
||||
return (!H.dna.features["xenohead"] || H.dna.features["xenohead"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC)
|
||||
return (!H.dna.features["xenohead"] || H.dna.features["xenohead"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic))
|
||||
|
||||
/datum/sprite_accessory/xeno_head/standard
|
||||
name = "Standard"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
/datum/sprite_accessory/ears/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
|
||||
var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
|
||||
return (!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC)
|
||||
return (!H.dna.features["ears"] || H.dna.features["ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic))
|
||||
|
||||
/datum/sprite_accessory/ears/none
|
||||
name = "None"
|
||||
@@ -187,7 +187,7 @@
|
||||
|
||||
/datum/sprite_accessory/ears/mam_ears/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
|
||||
var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
|
||||
return (!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || HD.status == BODYPART_ROBOTIC)
|
||||
return (!H.dna.features["mam_ears"] || H.dna.features["mam_ears"] == "None" || H.head && (H.head.flags_inv & HIDEEARS) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEEARS)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic))
|
||||
|
||||
/datum/sprite_accessory/ears/mam_ears/none
|
||||
name = "None"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
/datum/sprite_accessory/horns/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
|
||||
var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
|
||||
return (!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || HD.status == BODYPART_ROBOTIC)
|
||||
return (!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags_inv & HIDEHAIR) || (H.wear_mask && (H.wear_mask.flags_inv & HIDEHAIR)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic))
|
||||
|
||||
/datum/sprite_accessory/horns/none
|
||||
name = "None"
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
/datum/sprite_accessory/snouts/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
|
||||
var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
|
||||
return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC)
|
||||
return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic))
|
||||
|
||||
/datum/sprite_accessory/snout/guilmon
|
||||
name = "Guilmon"
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/is_not_visible(var/mob/living/carbon/human/H, var/tauric)
|
||||
var/obj/item/bodypart/head/HD = H.get_bodypart(BODY_ZONE_HEAD)
|
||||
return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || HD.status == BODYPART_ROBOTIC)
|
||||
return ((H.wear_mask && (H.wear_mask.flags_inv & HIDESNOUT)) || (H.head && (H.head.flags_inv & HIDESNOUT)) || !HD || (HD.status == BODYPART_ROBOTIC && !HD.render_like_organic))
|
||||
|
||||
/datum/sprite_accessory/snouts/mam_snouts/none
|
||||
name = "None"
|
||||
|
||||
@@ -169,13 +169,7 @@
|
||||
if(!brainmob || iscyborg(loc))
|
||||
return
|
||||
else
|
||||
switch(severity)
|
||||
if(1)
|
||||
brainmob.emp_damage = min(brainmob.emp_damage + rand(20,30), 30)
|
||||
if(2)
|
||||
brainmob.emp_damage = min(brainmob.emp_damage + rand(10,20), 30)
|
||||
if(3)
|
||||
brainmob.emp_damage = min(brainmob.emp_damage + rand(0,10), 30)
|
||||
brainmob.emp_damage = min(brainmob.emp_damage + rand(-5,5) + severity/3, 30)
|
||||
brainmob.emote("alarm")
|
||||
|
||||
/obj/item/mmi/Destroy()
|
||||
|
||||
@@ -284,11 +284,19 @@
|
||||
QDEL_LIST(traumas)
|
||||
return ..()
|
||||
|
||||
//other types of brains
|
||||
|
||||
/obj/item/organ/brain/alien
|
||||
name = "alien brain"
|
||||
desc = "We barely understand the brains of terrestial animals. Who knows what we may find in the brain of such an advanced species?"
|
||||
icon_state = "brain-x"
|
||||
|
||||
/obj/item/organ/brain/ipc
|
||||
name = "positronic brain"
|
||||
desc = "A cube of shining metal, four inches to a side and covered in shallow grooves. It has an IPC serial number engraved on the top. It is usually slotted into the head of synthetic crewmembers."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
icon_state = "posibrain-ipc"
|
||||
|
||||
|
||||
////////////////////////////////////TRAUMAS////////////////////////////////////////
|
||||
|
||||
|
||||
@@ -407,18 +407,16 @@
|
||||
if(. & EMP_PROTECT_CONTENTS)
|
||||
return
|
||||
var/informed = FALSE
|
||||
if(isrobotic(src))
|
||||
apply_status_effect(/datum/status_effect/no_combat_mode/robotic_emp, severity / 20)
|
||||
severity *= 0.5
|
||||
for(var/obj/item/bodypart/L in src.bodyparts)
|
||||
if(L.status == BODYPART_ROBOTIC)
|
||||
if(!informed)
|
||||
to_chat(src, "<span class='userdanger'>You feel a sharp pain as your robotic limbs overload.</span>")
|
||||
informed = TRUE
|
||||
switch(severity)
|
||||
if(1)
|
||||
L.receive_damage(0,10)
|
||||
Stun(200)
|
||||
if(2)
|
||||
L.receive_damage(0,5)
|
||||
Stun(100)
|
||||
L.receive_damage(0,severity/10)
|
||||
Stun(severity*2)
|
||||
|
||||
/mob/living/carbon/human/acid_act(acidpwr, acid_volume, bodyzone_hit)
|
||||
var/list/damaged = list()
|
||||
|
||||
@@ -96,6 +96,8 @@
|
||||
throw_alert("not_enough_co2", /obj/screen/alert/not_enough_co2)
|
||||
else if(S.breathid == "n2")
|
||||
throw_alert("not_enough_nitro", /obj/screen/alert/not_enough_nitro)
|
||||
else if(S.breathid == "ch3br")
|
||||
throw_alert("not_enough_ch3br", /obj/screen/alert/not_enough_ch3br)
|
||||
|
||||
return FALSE
|
||||
else
|
||||
|
||||
@@ -364,8 +364,15 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
|
||||
C.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod)
|
||||
|
||||
if(ROBOTIC_LIMBS in species_traits)
|
||||
for(var/obj/item/bodypart/B in C.bodyparts)
|
||||
B.change_bodypart_status(BODYPART_ROBOTIC, FALSE, TRUE) // Makes all Bodyparts robotic.
|
||||
B.render_like_organic = TRUE
|
||||
|
||||
SEND_SIGNAL(C, COMSIG_SPECIES_GAIN, src, old_species)
|
||||
|
||||
/datum/species/proc/update_species_slowdown(mob/living/carbon/human/H)
|
||||
H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/species, TRUE, multiplicative_slowdown = speedmod)
|
||||
|
||||
// EDIT ENDS
|
||||
|
||||
@@ -402,6 +409,12 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
if(F)
|
||||
qdel(F)
|
||||
|
||||
|
||||
if(ROBOTIC_LIMBS in species_traits)
|
||||
for(var/obj/item/bodypart/B in C.bodyparts)
|
||||
B.change_bodypart_status(BODYPART_ORGANIC, FALSE, TRUE)
|
||||
B.render_like_organic = FALSE
|
||||
|
||||
SEND_SIGNAL(C, COMSIG_SPECIES_LOSS, src)
|
||||
|
||||
/datum/species/proc/handle_hair(mob/living/carbon/human/H, forced_colour)
|
||||
@@ -422,7 +435,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
|
||||
var/dynamic_fhair_suffix = ""
|
||||
|
||||
//for augmented heads
|
||||
if(HD.status == BODYPART_ROBOTIC)
|
||||
if(HD.status == BODYPART_ROBOTIC && !HD.render_like_organic)
|
||||
return
|
||||
|
||||
//we check if our hat or helmet hides our facial hair.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
name = "Android"
|
||||
id = SPECIES_ANDROID
|
||||
say_mod = "states"
|
||||
species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL)
|
||||
species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL,ROBOTIC_LIMBS)
|
||||
inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_NOFIRE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_LIMBATTACHMENT)
|
||||
inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID
|
||||
meat = null
|
||||
|
||||
@@ -142,3 +142,4 @@
|
||||
override_float = FALSE
|
||||
H.pass_flags &= ~PASSTABLE
|
||||
H.CloseWings()
|
||||
update_species_slowdown(H)
|
||||
|
||||
@@ -84,11 +84,7 @@
|
||||
EMPeffect = TRUE
|
||||
spec_updatehealth(H)
|
||||
to_chat(H, "<span class='notice'>You feel the light of your body leave you.</span>")
|
||||
switch(severity)
|
||||
if(EMP_LIGHT)
|
||||
addtimer(CALLBACK(src, .proc/stop_emp, H), 10 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 10 seconds
|
||||
if(EMP_HEAVY)
|
||||
addtimer(CALLBACK(src, .proc/stop_emp, H), 20 SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //We're out for 20 seconds
|
||||
addtimer(CALLBACK(src, .proc/stop_emp, H), (severity/5) SECONDS, TIMER_UNIQUE|TIMER_OVERRIDE) //lights out
|
||||
|
||||
/datum/species/ethereal/proc/on_emag_act(mob/living/carbon/human/H, mob/user)
|
||||
if(emageffect)
|
||||
|
||||
@@ -5,19 +5,26 @@
|
||||
default_color = "00FF00"
|
||||
blacklisted = 0
|
||||
sexes = 0
|
||||
species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING,HAS_FLESH,HAS_BONE,HAIR)
|
||||
inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD)
|
||||
species_traits = list(MUTCOLORS,NOEYES,NOTRANSSTING,HAS_FLESH,HAS_BONE,HAIR,ROBOTIC_LIMBS)
|
||||
hair_alpha = 210
|
||||
inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID
|
||||
mutant_bodyparts = list("ipc_screen" = "Blank", "ipc_antenna" = "None")
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc
|
||||
gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless)
|
||||
mutanttongue = /obj/item/organ/tongue/robot/ipc
|
||||
//Just robo looking parts.
|
||||
|
||||
//Just robo looking parts.
|
||||
mutant_heart = /obj/item/organ/heart/ipc
|
||||
mutantlungs = /obj/item/organ/lungs/ipc
|
||||
mutantliver = /obj/item/organ/liver/ipc
|
||||
mutantstomach = /obj/item/organ/stomach/ipc
|
||||
mutanteyes = /obj/item/organ/eyes/ipc
|
||||
mutantears = /obj/item/organ/ears/ipc
|
||||
mutanttongue = /obj/item/organ/tongue/robot/ipc
|
||||
mutant_brain = /obj/item/organ/brain/ipc
|
||||
|
||||
//special cybernetic organ for getting power from apcs
|
||||
mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord)
|
||||
|
||||
exotic_bloodtype = "HF"
|
||||
exotic_blood_color = BLOOD_COLOR_OIL
|
||||
|
||||
@@ -249,6 +249,8 @@
|
||||
var/mob/living/carbon/human/spare = new /mob/living/carbon/human(H.loc)
|
||||
|
||||
spare.underwear = "Nude"
|
||||
spare.undershirt = "Nude"
|
||||
spare.socks = "Nude"
|
||||
H.dna.transfer_identity(spare, transfer_SE=1)
|
||||
spare.dna.features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F")
|
||||
spare.real_name = spare.dna.real_name
|
||||
@@ -435,6 +437,8 @@
|
||||
heatmod = 1
|
||||
burnmod = 1
|
||||
|
||||
allowed_limb_ids = list("slime","stargazer","lum")
|
||||
|
||||
/datum/action/innate/slime_change
|
||||
name = "Alter Form"
|
||||
check_flags = AB_CHECK_CONSCIOUS
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
else if(isliving(AM))
|
||||
var/mob/living/L = AM
|
||||
if(isethereal(AM))
|
||||
AM.emp_act(EMP_LIGHT)
|
||||
AM.emp_act(50)
|
||||
if(iscyborg(AM))
|
||||
var/mob/living/silicon/robot/borg = AM
|
||||
if(borg.lamp_intensity)
|
||||
|
||||
@@ -3,18 +3,24 @@
|
||||
id = SPECIES_SYNTH_LIZARD
|
||||
say_mod = "beeps"
|
||||
default_color = "00FF00"
|
||||
species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,HAS_FLESH,HAS_BONE)
|
||||
species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,ROBOTIC_LIMBS,HAS_FLESH,HAS_BONE)
|
||||
inherent_traits = list(TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT,TRAIT_NO_PROCESS_FOOD)
|
||||
inherent_biotypes = MOB_ROBOTIC|MOB_HUMANOID
|
||||
mutant_bodyparts = list("ipc_antenna" = "Synthetic Lizard - Antennae","mam_tail" = "Synthetic Lizard", "mam_snouts" = "Synthetic Lizard - Snout", "legs" = "Digitigrade", "mam_body_markings" = "Synthetic Lizard - Plates", "taur" = "None")
|
||||
meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/ipc
|
||||
gib_types = list(/obj/effect/gibspawner/ipc, /obj/effect/gibspawner/ipc/bodypartless)
|
||||
mutanttongue = /obj/item/organ/tongue/robot/ipc
|
||||
//Just robo looking parts.
|
||||
mutant_heart = /obj/item/organ/heart/ipc
|
||||
mutantlungs = /obj/item/organ/lungs/ipc
|
||||
mutantliver = /obj/item/organ/liver/ipc
|
||||
mutantstomach = /obj/item/organ/stomach/ipc
|
||||
mutanteyes = /obj/item/organ/eyes/ipc
|
||||
mutantears = /obj/item/organ/ears/ipc
|
||||
mutanttongue = /obj/item/organ/tongue/robot/ipc
|
||||
mutant_brain = /obj/item/organ/brain/ipc
|
||||
|
||||
//special cybernetic organ for getting power from apcs
|
||||
mutant_organs = list(/obj/item/organ/cyberimp/arm/power_cord)
|
||||
|
||||
exotic_bloodtype = "S"
|
||||
exotic_blood_color = BLOOD_COLOR_OIL
|
||||
|
||||
@@ -19,13 +19,14 @@
|
||||
. = ..()
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
disconnect_shell()
|
||||
if (prob(30))
|
||||
switch(pick(1,2))
|
||||
if(1)
|
||||
view_core()
|
||||
if(2)
|
||||
SSshuttle.requestEvac(src,"ALERT: Energy surge detected in AI core! Station integrity may be compromised! Initiati--%m091#ar-BZZT")
|
||||
if(severity >= 60)
|
||||
disconnect_shell()
|
||||
if(prob(30))
|
||||
switch(pick(1,2))
|
||||
if(1)
|
||||
view_core()
|
||||
if(2)
|
||||
SSshuttle.requestEvac(src,"ALERT: Energy surge detected in AI core! Station integrity may be compromised! Initiati--%m091#ar-BZZT")
|
||||
|
||||
/mob/living/silicon/ai/ex_act(severity, target)
|
||||
switch(severity)
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
. = ..()
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
take_holo_damage(50/severity)
|
||||
DefaultCombatKnockdown(400/severity)
|
||||
take_holo_damage(severity/2)
|
||||
DefaultCombatKnockdown(severity*4)
|
||||
silent = max(silent, (PAI_EMP_SILENCE_DURATION) / SSmobs.wait / severity)
|
||||
if(holoform)
|
||||
fold_in(force = TRUE)
|
||||
|
||||
@@ -85,12 +85,7 @@
|
||||
. = ..()
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
switch(severity)
|
||||
if(1)
|
||||
Paralyze(160)
|
||||
if(2)
|
||||
Paralyze(60)
|
||||
|
||||
Paralyze(10 + severity/1.2)
|
||||
|
||||
/mob/living/silicon/robot/emag_act(mob/user)
|
||||
if(user == src)//To prevent syndieborgs from emagging themselves
|
||||
|
||||
@@ -105,14 +105,10 @@
|
||||
to_chat(src, "<span class='danger'>Warning: Electromagnetic pulse detected.</span>")
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
switch(severity)
|
||||
if(1)
|
||||
src.take_bodypart_damage(20)
|
||||
if(2)
|
||||
src.take_bodypart_damage(10)
|
||||
src.take_bodypart_damage(severity/5)
|
||||
to_chat(src, "<span class='userdanger'>*BZZZT*</span>")
|
||||
for(var/mob/living/M in buckled_mobs)
|
||||
if(prob(severity*50))
|
||||
if(prob(severity/2))
|
||||
unbuckle_mob(M)
|
||||
M.DefaultCombatKnockdown(40)
|
||||
M.visible_message("<span class='boldwarning'>[M] is thrown off of [src]!</span>",
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
ejectpai(0)
|
||||
if(on)
|
||||
turn_off()
|
||||
spawn(severity*300)
|
||||
spawn(3 * severity)
|
||||
stat &= ~EMPED
|
||||
if(was_on)
|
||||
turn_on()
|
||||
@@ -1060,4 +1060,4 @@ Pass a positive integer as an argument to override a bot's default speed.
|
||||
path.Cut(1, 2)
|
||||
|
||||
/mob/living/silicon/rust_heretic_act()
|
||||
adjustBruteLoss(500)
|
||||
adjustBruteLoss(500)
|
||||
|
||||
@@ -459,12 +459,10 @@ Auto Patrol[]"},
|
||||
|
||||
|
||||
/mob/living/simple_animal/bot/ed209/emp_act(severity)
|
||||
if(severity == 2 && prob(70))
|
||||
severity = 1
|
||||
. = ..()
|
||||
if(. & EMP_PROTECT_SELF)
|
||||
return
|
||||
if (severity >= 2)
|
||||
if (severity >= 65)
|
||||
new /obj/effect/temp_visual/emp(loc)
|
||||
var/list/mob/living/carbon/targets = new
|
||||
for(var/mob/living/carbon/C in view(12,src))
|
||||
|
||||
@@ -729,7 +729,6 @@
|
||||
if(load)
|
||||
load.emp_act(severity)
|
||||
|
||||
|
||||
/mob/living/simple_animal/bot/mulebot/explode()
|
||||
visible_message("<span class='boldannounce'>[src] blows apart!</span>")
|
||||
var/atom/Tsec = drop_location()
|
||||
|
||||
@@ -220,11 +220,10 @@
|
||||
return
|
||||
Stun(100)
|
||||
to_chat(src, "<span class='danger'><b>ER@%R: MME^RY CO#RU9T!</b> R&$b@0tin)...</span>")
|
||||
if(severity == 1)
|
||||
if(severity >= 65)
|
||||
adjustBruteLoss(heavy_emp_damage)
|
||||
to_chat(src, "<span class='userdanger'>HeAV% DA%^MMA+G TO I/O CIR!%UUT!</span>")
|
||||
|
||||
|
||||
/mob/living/simple_animal/drone/proc/triggerAlarm(class, area/A, O, obj/alarmsource)
|
||||
if(alarmsource.z != z)
|
||||
return
|
||||
@@ -240,7 +239,6 @@
|
||||
L[A.name] = list(A, list(alarmsource))
|
||||
to_chat(src, "--- [class] alarm detected in [A.name]!")
|
||||
|
||||
|
||||
/mob/living/simple_animal/drone/proc/cancelAlarm(class, area/A, obj/origin)
|
||||
if(stat != DEAD)
|
||||
var/list/L = alarms[class]
|
||||
|
||||
@@ -80,7 +80,9 @@
|
||||
if(C.can_absorb_dna(owner))
|
||||
C.add_new_profile(owner)
|
||||
|
||||
C.purchasedpowers += new /obj/effect/proc_holder/changeling/humanform(null)
|
||||
var/obj/effect/proc_holder/changeling/humanform/hf = new
|
||||
C.purchasedpowers += hf
|
||||
hf.on_purchase(origin.current, TRUE)
|
||||
M.key = origin.key
|
||||
owner.gib()
|
||||
|
||||
|
||||
@@ -485,11 +485,13 @@ mob/visible_message(message, self_message, blind_message, vision_distance = DEFA
|
||||
if(!ckey)
|
||||
return
|
||||
SEND_SIGNAL(new_mob, COMSIG_MOB_PRE_PLAYER_CHANGE, new_mob, src)
|
||||
if (client && client.prefs && client.prefs.auto_ooc)
|
||||
if (client.prefs.chat_toggles & CHAT_OOC && isliving(new_mob))
|
||||
client.prefs.chat_toggles ^= CHAT_OOC
|
||||
if (!(client.prefs.chat_toggles & CHAT_OOC) && isdead(new_mob))
|
||||
client.prefs.chat_toggles ^= CHAT_OOC
|
||||
if (client)
|
||||
if(client.prefs?.auto_ooc)
|
||||
if (client.prefs.chat_toggles & CHAT_OOC && isliving(new_mob))
|
||||
client.prefs.chat_toggles ^= CHAT_OOC
|
||||
if (!(client.prefs.chat_toggles & CHAT_OOC) && isdead(new_mob))
|
||||
client.prefs.chat_toggles ^= CHAT_OOC
|
||||
client.change_view(CONFIG_GET(string/default_view))
|
||||
new_mob.ckey = ckey
|
||||
if(send_signal)
|
||||
SEND_SIGNAL(src, COMSIG_MOB_KEY_CHANGE, new_mob, src)
|
||||
|
||||
Reference in New Issue
Block a user