Merge pull request #7814 from Crazylemon64/many_fixes

Runtime killer v2
This commit is contained in:
Fox McCloud
2017-07-22 00:39:10 -04:00
committed by GitHub
11 changed files with 44 additions and 26 deletions
+1 -2
View File
@@ -259,8 +259,7 @@ Pipelines + Other Objects -> Pipe network
user.last_played_vent = world.time
playsound(src, 'sound/machines/ventcrawl.ogg', 50, 1, -3)
else
var/can_connect = check_connect_types(target_move, src)
if((direction & initialize_directions) || (is_type_in_list(src, ventcrawl_machinery) && target_move.can_crawl_through() && can_connect)) //if we move in a way the pipe can connect, but doesn't - or we're in a vent
if((direction & initialize_directions) || is_type_in_list(src, ventcrawl_machinery)) //if we move in a way the pipe can connect, but doesn't - or we're in a vent
user.remove_ventcrawl()
user.forceMove(src.loc)
user.visible_message("You hear something squeezing through the pipes.", "You climb out the ventilation system.")
+4 -2
View File
@@ -134,8 +134,10 @@
var/obj/item/organ/external/head/head_organ = H.get_organ("head")
var/obj/item/organ/internal/eyes/eye_organ = H.get_int_organ(/obj/item/organ/internal/eyes)
var/datum/species/S = H.species
dna.write_head_attributes(head_organ)
dna.write_eyes_attributes(eye_organ)
if(istype(head_organ))
dna.write_head_attributes(head_organ)
if(istype(eye_organ))
dna.write_eyes_attributes(eye_organ)
H.update_eyes()
H.r_skin = dna.GetUIValueRange(DNA_UI_SKIN_R, 255)
@@ -101,4 +101,25 @@ var/global/list/image/fluidtrack_cache=list()
I.color = basecolor
overlays += I
alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness
alpha = BLOODY_FOOTPRINT_BASE_ALPHA+bloodiness
/proc/createFootprintsFrom(atom/movable/A, dir, turf/T)
var/obj/effect/decal/cleanable/blood/footprints/FP = new /obj/effect/decal/cleanable/blood/footprints(T)
if(ishuman(A))
var/mob/living/carbon/human/H = A
FP.blood_state = H.blood_state
FP.bloodiness = H.bloody_feet[H.blood_state]
FP.basecolor = H.feet_blood_color
if(H.blood_DNA)
FP.blood_DNA = H.blood_DNA.Copy()
else if(istype(A, /obj/item/clothing/shoes))
var/obj/item/clothing/shoes/S = A
FP.blood_state = S.blood_state
FP.bloodiness = S.bloody_shoes[S.blood_state]
FP.basecolor = S.blood_color
if(S.blood_DNA)
FP.blood_DNA = S.blood_DNA.Copy()
FP.entered_dirs |= dir
FP.update_icon()
return FP
@@ -568,6 +568,8 @@
for(var/thing in data["content"])
if(islist(thing))
list_to_object(thing, src)
else if(thing == null)
log_runtime(EXCEPTION("Null entry found in storage/deserialize."), src)
else
log_runtime(EXCEPTION("Non-list thing found in storage/deserialize."), src, list("Thing: [thing]"))
..()
@@ -25,12 +25,14 @@
to_chat(user, "<span class='notice'>You carefully locate the manual activation switch and start the positronic brain's boot process.</span>")
icon_state = "posibrain-searching"
ghost_volunteers.Cut()
src.searching = 1
src.request_player()
searching = 1
request_player()
spawn(600)
if(ghost_volunteers.len)
var/mob/dead/observer/O = pick(ghost_volunteers)
if(check_observer(O))
var/mob/dead/observer/O
while(!istype(O) && ghost_volunteers.len)
O = pick_n_take(ghost_volunteers)
if(istype(O) && check_observer(O))
transfer_personality(O)
reset_search()
else
@@ -56,13 +56,7 @@
else
//No oldFP or it's a different kind of blood
S.bloody_shoes[S.blood_state] = max(0, S.bloody_shoes[S.blood_state] - BLOOD_LOSS_PER_STEP)
var/obj/effect/decal/cleanable/blood/footprints/FP = new /obj/effect/decal/cleanable/blood/footprints(T)
FP.blood_state = S.blood_state
FP.entered_dirs |= dir
FP.bloodiness = S.bloody_shoes[S.blood_state]
FP.blood_DNA = S.blood_DNA
FP.basecolor = S.blood_color
FP.update_icon()
createFootprintsFrom(shoes, dir, T)
update_inv_shoes()
else if(hasfeet)
if(bloody_feet && bloody_feet[blood_state])
@@ -71,12 +65,7 @@
return
else
bloody_feet[blood_state] = max(0, bloody_feet[blood_state] - BLOOD_LOSS_PER_STEP)
var/obj/effect/decal/cleanable/blood/footprints/FP = new /obj/effect/decal/cleanable/blood/footprints(T)
FP.blood_state = blood_state
FP.entered_dirs |= dir
FP.bloodiness = bloody_feet[blood_state]
FP.basecolor = feet_blood_color
FP.update_icon()
createFootprintsFrom(src, dir, T)
update_inv_shoes()
//End bloody footprints
if(S)
+1 -1
View File
@@ -376,7 +376,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/proc/id_check(mob/user as mob, choice as num)//To check for IDs; 1 for in-pda use, 2 for out of pda use.
if(choice == 1)
if(id)
remove_id()
remove_id(user)
else
var/obj/item/I = user.get_active_hand()
if(istype(I, /obj/item/weapon/card/id))
+1 -1
View File
@@ -103,7 +103,7 @@
"poweravail" = powmonitor.powernet.avail,
"powerload" = num2text(powmonitor.powernet.viewload, 10),
"powerdemand" = powmonitor.powernet.load,
"apcs" = apc_repository.apc_data(powmonitor))
"apcs" = apc_repository.apc_data(powmonitor.powernet))
has_back = 1
else
data["records"] = list(
@@ -472,4 +472,4 @@
if(istype(O, /obj/item/clothing/shoes/galoshes))
var/t_loc = get_turf(O)
qdel(O)
new /obj/item/clothing/shoes/galoshes/dry(t_loc)
new /obj/item/clothing/shoes/galoshes/dry(t_loc)
+1 -1
View File
@@ -4,4 +4,4 @@
// For expansion later
/proc/atoms_share_level(atom/A, atom/B)
return A.z == B.z
return A && B && A.z == B.z
+3
View File
@@ -170,6 +170,9 @@ var/list/organ_cache = list()
if(antibiotics < 5 && parent.germ_level < germ_level && ( parent.germ_level < INFECTION_LEVEL_ONE*2 || prob(30) ))
parent.germ_level++
/obj/item/organ/internal/handle_germ_effects()
..()
if(germ_level >= INFECTION_LEVEL_TWO)
if(prob(3)) //about once every 30 seconds
take_damage(1,silent=prob(30))