Merge branch 'master' into development

# Conflicts:
#	maps/aurora/aurora-1_centcomm.dmm
This commit is contained in:
skull132
2017-10-29 16:15:53 +02:00
47 changed files with 3560 additions and 90287 deletions

View File

@@ -235,7 +235,14 @@
update_connection_data(C)
return
var/list/data_object = json_decode(data)
var/list/data_object
try
data_object = json_decode(data)
catch(var/exception/E)
data_object = list()
log_debug("CONN DATA: [E] encountered when loading data for [C.ckey].")
if (!data_object || !data_object.len)
log_debug("CONN DATA: [C.ckey] has no connection data to showcase.")

View File

@@ -1046,7 +1046,7 @@ var/list/admin_verbs_cciaa = list(
var/mob/living/silicon/ai/target = input("Choose the AI to force-wipe:", "AI Termination") as null|anything in ai_list
if (alert("Are you sure you want to wipe [target.name]? They will be ghosted and their job slot freed.", "Confirm AI Termination", "No", "No", "Yes") != "Yes")
if (!target || alert("Are you sure you want to wipe [target.name]? They will be ghosted and their job slot freed.", "Confirm AI Termination", "No", "No", "Yes") != "Yes")
return
log_and_message_admins("admin-wiped [key_name_admin(target)]'s core.")

View File

@@ -110,7 +110,8 @@ Content adjustment
continue
else
path = contents[metadata[i]]
new path(I)
if(path)
new path(I)
/*
Reagents adjustment

View File

@@ -85,21 +85,21 @@
display_name = "vaurca blindfold (Vaurca)"
path = /obj/item/clothing/glasses/sunglasses/blinders
cost = 2
whitelisted = list("Vaurca Worker")
whitelisted = list("Vaurca Worker", "Vaurca Warrior")
sort_category = "Xenowear"
/datum/gear/mask/vaurca
display_name = "mandible garment (Vaurca)"
path = /obj/item/clothing/mask/breath/vaurca
cost = 1
whitelisted = list("Vaurca Worker")
whitelisted = list("Vaurca Worker", "Vaurca Warrior",)
sort_category = "Xenowear"
/datum/gear/cape
display_name = "tunnel cloak (Vaurca)"
path = /obj/item/weapon/storage/backpack/cloak
cost = 1
whitelisted = list("Vaurca Worker")
whitelisted = list("Vaurca Worker", "Vaurca Warrior",)
sort_category = "Xenowear"
//tajara items
@@ -107,7 +107,7 @@
/datum/gear/gloves/tajara
display_name = "gloves selection (Tajara)"
path = /obj/item/clothing/gloves/black/tajara
whitelisted = list("Tajara")
whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara")
sort_category = "Xenowear"
/datum/gear/gloves/tajara/New()
@@ -126,13 +126,13 @@
/datum/gear/suit/tajara_coat
display_name = "tajaran naval coat (Tajara)"
path = /obj/item/clothing/suit/storage/tajaran
whitelisted = list("Tajara")
whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara")
sort_category = "Xenowear"
/datum/gear/suit/tajaran_labcoat
display_name = "PRA medical coat (Tajara)"
path = /obj/item/clothing/suit/storage/toggle/labcoat/tajaran
whitelisted = list("Tajara")
whitelisted = list("Tajara", "Zhan-Khazan Tajara", "M'sai Tajara")
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Medical Resident")
sort_category = "Xenowear"
@@ -142,22 +142,22 @@
display_name = "gear harness"
path = /obj/item/clothing/under/gearharness
sort_category = "Xenowear"
whitelisted = list("Vaurca Worker", "Diona", "Baseline Frame")
whitelisted = list("Vaurca Worker", "Vaurca Warrior", "Diona", "Baseline Frame", "Industrial Frame")
/datum/gear/shoes/footwraps
display_name = "cloth footwraps"
path = /obj/item/clothing/shoes/footwraps
sort_category = "Xenowear"
whitelisted = list("Vaurca Worker", "Unathi", "Tajara")
whitelisted = list("Vaurca Worker", "Vaurca Warrior", "Unathi", "Tajara", "Zhan-Khazan Tajara", "M'sai Tajara")
/datum/gear/shoes/toeless
display_name = "toe-less jackboots"
path = /obj/item/clothing/shoes/jackboots/unathi
sort_category = "Xenowear"
whitelisted = list("Vaurca Worker", "Unathi", "Tajara")
whitelisted = list("Vaurca Worker", "Unathi", "Tajara", "Zhan-Khazan Tajara", "M'sai Tajara")
/datum/gear/shoes/workboots_toeless
display_name = "toeless workboots"
path = /obj/item/clothing/shoes/workboots/toeless
sort_category = "Xenowear"
whitelisted = list("Vaurca Worker", "Unathi", "Tajara")
whitelisted = list("Vaurca Worker", "Vaurca Warrior", "Unathi", "Tajara", "Zhan-Khazan Tajara", "M'sai Tajara")

View File

@@ -45,6 +45,9 @@
if (!(src.loc == usr))
return
if(!over_object)
return
if (( usr.restrained() ) || ( usr.stat ))
return

View File

@@ -591,7 +591,7 @@
/obj/item/weapon/rig/proc/toggle_piece(var/piece, var/mob/initiator, var/deploy_mode)
if(sealing || !cell || !cell.charge)
if(!usr || sealing || !cell || !cell.charge)
return
if(!istype(wearer) || !wearer.back == src)

View File

@@ -169,6 +169,8 @@
last_biolum = null
/obj/effect/plant/proc/refresh_icon()
if(!growth_threshold)
growth_threshold = max_health/seed.growth_stages
var/growth = min(max_growth,round(health/growth_threshold))
var/at_fringe = get_dist(src,parent)
if(spread_distance > 5)

View File

@@ -17,7 +17,7 @@
if((locate(/obj/effect/plant) in floor.contents) || (locate(/obj/effect/dead_plant) in floor.contents) )
continue
if(floor.density)
if(seed.chems["pacid"])
if(seed && seed.chems["pacid"])
addtimer(CALLBACK(floor, /atom/.proc/ex_act, 3), rand(5, 25))
continue
if(!Adjacent(floor) || !floor.Enter(src))

View File

@@ -205,11 +205,13 @@
var/list/old_affecting_lights = affecting_lights
var/old_lighting_overlay = lighting_overlay
var/list/old_corners = corners
var/old_ao_neighbors = ao_neighbors
. = ..()
ao_neighbors = old_ao_neighbors
#ifndef AO_USE_LIGHTING_OPACITY
if (permit_ao)
regenerate_ao()
#endif
recalc_atom_opacity()
lighting_overlay = old_lighting_overlay

View File

@@ -54,8 +54,6 @@
luminosity = 1
has_opaque_atom = TRUE
if (!mapload)
regenerate_ao()
if (smooth)
pixel_x = -4

View File

@@ -127,7 +127,7 @@
if(user.stat || user.stunned)
return
var/obj/item/weapon/rig/rig = src.get_rig()
if(rig)
if(istype(rig))
rig.forced_move(direction, user)
/obj/item/device/mmi/Destroy()

View File

@@ -94,7 +94,7 @@
flesh_color = "#551A8B"
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE
flags = NO_BLOOD | NO_SCAN | NO_SLIP | NO_POISON | NO_PAIN | NO_BREATHE | NO_EMBED
spawn_flags = IS_RESTRICTED
stamina = 500 //Tireless automatons

View File

@@ -34,6 +34,8 @@
/obj/item/organ/external/leg/right/ipc
dislocated = -1
encased = "support frame"
robotize_type = PROSTHETIC_IPC
/obj/item/organ/external/foot/ipc
dislocated = -1

View File

@@ -135,6 +135,7 @@
idle_power_usage = 2
active_power_usage = 20
power_channel = LIGHT //Lights are calc'd via area so they dont need to be in the machine list
gfi_layer_rotation = GFI_ROTATION_DEFDIR
var/on = 0 // 1 if on, 0 if off
var/on_gs = 0
var/brightness_range = 8 // luminosity when on, also used in power calculation

View File

@@ -58,6 +58,8 @@
tesla_zap(ball, range, TESLA_MINI_POWER/7*range, TRUE)
else
energy = 0 // ensure we dont have miniballs of miniballs
if(energy == 0)
qdel(src)
/obj/singularity/energy_ball/examine(mob/user)
..()

View File

@@ -91,7 +91,7 @@
return
/obj/item/weapon/gun/energy/update_icon()
if(charge_meter)
if(charge_meter && power_supply)
var/ratio = power_supply.charge / power_supply.maxcharge
//make sure that rounding down will not give us the empty state even if we have charge for a shot left.

View File

@@ -24,6 +24,7 @@
name = "alien vines"
desc = "Thick, heavy vines of some sort."
icon_state = "vines3"
density = 0
var/growth = 0
/obj/structure/diona/vines/proc/spread()

View File

@@ -93,7 +93,7 @@
if(standard_pour_into(user, target))
return
if(reagents.total_volume)
if(reagents && reagents.total_volume)
user << "<span class='notice'>You splash the solution onto [target].</span>"
reagents.splash(target, reagents.total_volume)
return

View File

@@ -238,8 +238,27 @@
//grab the border tiles in a circle around this machine
/obj/machinery/shield_gen/proc/get_shielded_turfs()
var/turf/gen_turf = get_turf(src)
. = list()
if (!gen_turf)
return
. = RANGE_TURFS(field_radius, gen_turf)
var/turf/T
for (var/x_offset = -field_radius; x_offset <= field_radius; x_offset++)
T = locate(gen_turf.x + x_offset, gen_turf.y - field_radius, gen_turf.z)
if (T)
. += T
T = locate(gen_turf.x + x_offset, gen_turf.y + field_radius, gen_turf.z)
if (T)
. += T
for (var/y_offset = -field_radius+1; y_offset < field_radius; y_offset++)
T = locate(gen_turf.x - field_radius, gen_turf.y + y_offset, gen_turf.z)
if (T)
. += T
T = locate(gen_turf.x + field_radius, gen_turf.y + y_offset, gen_turf.z)
if (T)
. += T

View File

@@ -28,7 +28,7 @@
continue
if (the_station_areas[U.loc])
out += U
out += T
break
return out