Merge pull request #1671 from VOREStation/polaris-sync-20170609

Polaris sync 20170609
This commit is contained in:
Arokha Sieyes
2017-06-10 15:28:43 -04:00
committed by GitHub
42 changed files with 1914 additions and 82 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ var/list/forbidden_varedit_object_types = list(
/datum/feedback_variable //Prevents people messing with feedback gathering,
)
var/list/VVlocked = list("vars", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "bound_x", "bound_y", "step_x", "step_y", "force_ending")
var/list/VVlocked = list("vars", "client", "virus", "viruses", "cuffed", "last_eaten", "unlock_content", "bound_x", "bound_y", "step_x", "step_y", "force_ending", "queued_priority")
var/list/VVicon_edit_lock = list("icon", "icon_state", "overlays", "underlays")
var/list/VVckey_edit = list("key", "ckey")
+12
View File
@@ -284,6 +284,18 @@
if(inactivity > duration) return inactivity
return 0
// Byond seemingly calls stat, each tick.
// Calling things each tick can get expensive real quick.
// So we slow this down a little.
// See: http://www.byond.com/docs/ref/info.html#/client/proc/Stat
/client/Stat()
. = ..()
if (holder)
sleep(1)
else
sleep(5)
stoplag()
/client/proc/last_activity_seconds()
return inactivity / 10
+3 -2
View File
@@ -49,9 +49,10 @@
description_holders["icon"] = "\icon[A]"
description_holders["desc"] = A.desc
/client/Stat()
/mob/Stat()
. = ..()
if(usr && statpanel("Examine"))
if(client && statpanel("Examine"))
var/description_holders = client.description_holders
stat(null,"[description_holders["icon"]] <font size='5'>[description_holders["name"]]</font>") //The name, written in big letters.
stat(null,"[description_holders["desc"]]") //the default examine text.
if(description_holders["info"])
@@ -1,4 +1,5 @@
/mob/living/carbon/human/examine(mob/user)
var/skipgloves = 0
var/skipsuitstorage = 0
var/skipjumpsuit = 0
@@ -17,6 +18,18 @@
var/skiparms = 0
var/skipfeet = 0
var/cloaked = 0 // 0 for normal, 1 for cloaked close
if(mind && mind.changeling && mind.changeling.cloaked && !istype(user, /mob/observer))
var/distance = get_dist(user, src)
if(distance > 2)
src.loc.examine(user)
return
else
cloaked = 1
var/looks_synth = looksSynthetic()
//exosuits and helmets obscure our view and stuff.
@@ -79,9 +92,13 @@
var/list/msg = list("<span class='info'>*---------*\nThis is ")
var/datum/gender/T = gender_datums[get_gender()]
if(skipjumpsuit && skipface) //big suits/masks/helmets make it hard to tell their gender
T = gender_datums[PLURAL]
if(cloaked)
T = gender_datums[NEUTER]
else if(species && species.ambiguous_genders)
var/can_detect_gender = FALSE
@@ -454,7 +471,8 @@
msg += "<span class = 'deptradio'>Medical records:</span> <a href='?src=\ref[src];medrecord=`'>\[View\]</a> <a href='?src=\ref[src];medrecordadd=`'>\[Add comment\]</a>\n"
if(print_flavor_text()) msg += "[print_flavor_text()]\n"
if(print_flavor_text() && !cloaked)
msg += "[print_flavor_text()]\n"
// VOREStation Start
if(ooc_notes)
@@ -462,13 +480,20 @@
// VOREStation End
msg += "*---------*</span><br>"
msg += applying_pressure
if (pose)
if (pose && !cloaked)
if( findtext(pose,".",lentext(pose)) == 0 && findtext(pose,"!",lentext(pose)) == 0 && findtext(pose,"?",lentext(pose)) == 0 )
pose = addtext(pose,".") //Makes sure all emotes end with a period.
msg += "[T.He] [pose]"
user << jointext(msg, null)
/mob/living/carbon/human/get_description_fluff()
if(mind && mind.changeling && mind.changeling.cloaked)
return ""
else
return ..()
//Helper procedure. Called by /mob/living/carbon/human/examine() and /mob/living/carbon/human/Topic() to determine HUD access to security and medical records.
/proc/hasHUD(mob/M as mob, hudtype)
if(istype(M, /mob/living/carbon/human))
@@ -267,7 +267,7 @@
var/obj/item/device/pda/pda = wear_id
if (istype(pda))
if (pda.id)
return pda.id.rank
return pda.id.rank ? pda.id.rank : if_no_job
else
return pda.ownrank
else
@@ -311,6 +311,8 @@
//repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere
/mob/living/carbon/human/proc/get_visible_name()
if( mind && mind.changeling && mind.changeling.cloaked)
return "Unknown"
if( wear_mask && (wear_mask.flags_inv&HIDEFACE) ) //Wearing a mask which hides our face, use id-name if possible
return get_id_name("Unknown")
if( head && (head.flags_inv&HIDEFACE) )
@@ -334,7 +334,8 @@ var/global/list/robot_modules = list(
"Antique" = "engineerrobot",
"Landmate" = "landmate",
"Landmate - Treaded" = "engiborg+tread",
"Drone" = "drone-engineer"
"Drone" = "drone-engineer",
"Treadwell" = "treadwell"
)
/obj/item/weapon/robot_module/robot/engineering/construction
+17
View File
@@ -673,6 +673,23 @@
if(processScheduler)
processScheduler.statProcesses()
if(statpanel("MC"))
stat("CPU:","[world.cpu]")
stat("Instances:","[world.contents.len]")
stat(null)
if(Master)
Master.stat_entry()
else
stat("Master Controller:", "ERROR")
if(Failsafe)
Failsafe.stat_entry()
else
stat("Failsafe Controller:", "ERROR")
if(Master)
stat(null)
for(var/datum/controller/subsystem/SS in Master.subsystems)
SS.stat_entry()
if(listed_turf && client)
if(!TurfAdjacent(listed_turf))
listed_turf = null
+3 -3
View File
@@ -162,7 +162,7 @@
active_power_usage = 20
power_channel = LIGHT //Lights are calc'd via area so they dont need to be in the machine list
var/on = 0 // 1 if on, 0 if off
var/brightness_range = 10 // luminosity when on, also used in power calculation
var/brightness_range = 10 // luminosity when on, also used in power calculation // VOREStation Edit - Put light range back how it was for now.
var/brightness_power = 3
var/brightness_color = null
var/status = LIGHT_OK // LIGHT_OK, _EMPTY, _BURNED or _BROKEN
@@ -183,7 +183,7 @@
icon_state = "bulb1"
base_state = "bulb"
fitting = "bulb"
brightness_range = 6
brightness_range = 6 // VOREStation Edit - Put light range back how it was for now.
brightness_power = 2
brightness_color = "#FFF4E5"
desc = "A small lighting fixture."
@@ -210,7 +210,7 @@
layer = OBJ_LAYER
/obj/machinery/light/small/emergency
brightness_range = 6
brightness_range = 4
brightness_power = 2
brightness_color = "#da0205"
+5 -5
View File
@@ -227,7 +227,7 @@
src.add_fingerprint(user)
if(bottle)
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 20))
if(do_after(user, 20) && bottle)
user << "<span class='notice'>You unfasten the jug.</span>"
var/obj/item/weapon/reagent_containers/glass/cooler_bottle/G = new /obj/item/weapon/reagent_containers/glass/cooler_bottle( src.loc )
for(var/datum/reagent/R in reagents.reagent_list)
@@ -262,7 +262,7 @@
if(!bottle && !cupholder)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
user << "<span class='notice'>You start taking the water-cooler apart.</span>"
if(do_after(user, 20))
if(do_after(user, 20) && !bottle && !cupholder)
user << "<span class='notice'>You take the water-cooler apart.</span>"
new /obj/item/stack/material/plastic( src.loc, 4 )
qdel(src)
@@ -274,7 +274,7 @@
if(anchored)
var/obj/item/weapon/reagent_containers/glass/cooler_bottle/G = I
user << "<span class='notice'>You start to screw the bottle onto the water-cooler.</span>"
if(do_after(user, 20))
if(do_after(user, 20) && !bottle && anchored)
bottle = 1
update_icon()
user << "<span class='notice'>You screw the bottle onto the water-cooler!</span>"
@@ -286,7 +286,7 @@
user << "<span class='warning'>You need to wrench down the cooler first.</span>"
else
user << "<span class='warning'>There is already a bottle there!</span>"
return
return 1
if(istype(I, /obj/item/stack/material/plastic))
if(!cupholder)
@@ -295,7 +295,7 @@
src.add_fingerprint(user)
user << "<span class='notice'>You start to attach a cup dispenser onto the water-cooler.</span>"
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 20))
if(do_after(user, 20) && !cupholder && anchored)
if (P.use(1))
user << "<span class='notice'>You attach a cup dispenser onto the water-cooler.</span>"
cupholder = 1
@@ -0,0 +1,43 @@
/obj/structure/anomaly_container
name = "anomaly container"
desc = "Used to safely contain and move anomalies."
icon = 'icons/obj/xenoarchaeology.dmi'
icon_state = "anomaly_container"
density = 1
var/obj/machinery/artifact/contained
/obj/structure/anomaly_container/initialize()
..()
var/obj/machinery/artifact/A = locate() in loc
if(A)
contain(A)
/obj/structure/anomaly_container/attack_hand(var/mob/user)
release()
/obj/structure/anomaly_container/attack_robot(var/mob/user)
if(Adjacent(user))
release()
/obj/structure/anomaly_container/proc/contain(var/obj/machinery/artifact/artifact)
if(contained)
return
contained = artifact
artifact.forceMove(src)
underlays += image(artifact)
desc = "Used to safely contain and move anomalies. \The [contained] is kept inside."
/obj/structure/anomaly_container/proc/release()
if(!contained)
return
contained.dropInto(src)
contained = null
underlays.Cut()
desc = initial(desc)
/obj/machinery/artifact/MouseDrop(var/obj/structure/anomaly_container/over_object)
if(istype(over_object) && Adjacent(over_object) && CanMouseDrop(over_object, usr))
Bumped(usr)
over_object.contain(src)