Merge branch 'master' into development

This commit is contained in:
skull132
2017-04-13 00:26:49 +03:00
19 changed files with 245 additions and 142 deletions
+1 -3
View File
@@ -13,9 +13,7 @@ proc/worldtime2text(time = world.time, timeshift = 1)
/proc/worldtime2hours()
if (!roundstart_hour)
worldtime2text()
. = (world.timeofday / (60 MINUTES)) + roundstart_hour
if (. > 24)
. -= 24
. = text2num(time2text(world.time + (36000 * roundstart_hour), "hh"))
proc/worlddate2text()
return num2text(game_year) + "-" + time2text(world.timeofday, "MM-DD")
+10 -9
View File
@@ -3,7 +3,10 @@ var/datum/controller/process/night_lighting/nl_ctrl
/datum/controller/process/night_lighting/
var/isactive = 0
var/firstrun = 1
var/manual_override = 0
var/manual_override = 0
// 0 -> No manual override
// 1 -> Override via. player-set nightmode setting (like CE console)
// 2 -> Red-alert override.
/datum/controller/process/night_lighting/proc/is_active()
return isactive
@@ -19,25 +22,23 @@ var/datum/controller/process/night_lighting/nl_ctrl
disabled = 1
/datum/controller/process/night_lighting/preStart()
var/time = worldtime2hours()
if (time <= config.nl_finish || time >= config.nl_start)
activate()
else
deactivate()
doWork(FALSE)
/datum/controller/process/night_lighting/doWork()
/datum/controller/process/night_lighting/doWork(announce = TRUE)
if (manual_override) // don't automatically change lighting if it was manually changed in-game
return
var/time = worldtime2hours()
if (time <= config.nl_finish || time >= config.nl_start)
if (!isactive)
command_announcement.Announce("Good evening. The time is [worldtime2text()]. \n\nThe automated systems aboard the [station_name()] will now dim lighting in the public hallways in order to accommodate the circadian rhythm of some species.", "Automated Lighting System", new_sound = 'sound/misc/bosuns_whistle.ogg')
activate()
if (announce)
command_announcement.Announce("Good evening. The time is [worldtime2text()]. \n\nThe automated systems aboard the [station_name()] will now dim lighting in the public hallways in order to accommodate the circadian rhythm of some species.", "Automated Lighting System", new_sound = 'sound/misc/bosuns_whistle.ogg')
else
if (isactive)
command_announcement.Announce("Good morning. The time is [worldtime2text()]. \n\nThe automated systems aboard the [station_name()] will now return the public hallway lighting levels to normal.", "Automated Lighting System", new_sound = 'sound/misc/bosuns_whistle.ogg')
deactivate()
if (announce)
command_announcement.Announce("Good morning. The time is [worldtime2text()]. \n\nThe automated systems aboard the [station_name()] will now return the public hallway lighting levels to normal.", "Automated Lighting System", new_sound = 'sound/misc/bosuns_whistle.ogg')
// 'whitelisted' areas are areas that have nightmode explicitly enabled
+1 -1
View File
@@ -95,7 +95,7 @@
/datum/ai_laws/drone/New()
add_inherent_law("Preserve, repair and improve the station to the best of your abilities.")
add_inherent_law("Cause no harm to the station or crew.")
add_inherent_law("Interact with no humanoid or synthetic being. that is not a fellow maintenance drone.")
add_inherent_law("Interact with no humanoid or synthetic being that is not a fellow maintenance drone.")
..()
/datum/ai_laws/construction_drone
+3
View File
@@ -472,6 +472,9 @@ var/global/datum/controller/occupations/job_master
var/obj/item/clothing/glasses/G = H.glasses
G.prescription = 1
// So shoes aren't silent if people never change 'em.
H.update_noise_level()
BITSET(H.hud_updateflag, ID_HUD)
BITSET(H.hud_updateflag, IMPLOYAL_HUD)
BITSET(H.hud_updateflag, SPECIALROLE_HUD)
@@ -1,4 +1,5 @@
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31
// Please do not use relative paths.
/obj/item/weapon/airlock_electronics
name = "airlock electronics"
@@ -15,100 +16,100 @@
var/one_access = 0 //if set to 1, door would receive req_one_access instead of req_access
var/last_configurator = null
var/locked = 1
var/inuse = 0 // no double-spending
attack_self(mob/user as mob)
if (!ishuman(user) && !istype(user,/mob/living/silicon/robot))
return ..(user)
/obj/item/weapon/airlock_electronics/attack_self(mob/user as mob)
if (!ishuman(user) && !istype(user,/mob/living/silicon/robot))
return ..(user)
var/mob/living/carbon/human/H = user
if(H.getBrainLoss() >= 60)
return
var/mob/living/carbon/human/H = user
if(H.getBrainLoss() >= 60)
return
var/t1 = text("<B>Access control</B><br>\n")
var/t1 = text("<B>Access control</B><br>\n")
if (last_configurator)
t1 += "Operator: [last_configurator]<br>"
if (last_configurator)
t1 += "Operator: [last_configurator]<br>"
if (locked)
t1 += "<a href='?src=\ref[src];login=1'>Swipe ID</a><hr>"
if (locked)
t1 += "<a href='?src=\ref[src];login=1'>Swipe ID</a><hr>"
else
t1 += "<a href='?src=\ref[src];logout=1'>Block</a><hr>"
t1 += "Access requirement is set to "
t1 += one_access ? "<a style='color: green' href='?src=\ref[src];one_access=1'>ONE</a><hr>" : "<a style='color: red' href='?src=\ref[src];one_access=1'>ALL</a><hr>"
t1 += conf_access == null ? "<font color=red>All</font><br>" : "<a href='?src=\ref[src];access=all'>All</a><br>"
t1 += "<br>"
var/list/accesses = get_all_station_access()
for (var/acc in accesses)
var/aname = get_access_desc(acc)
if (!conf_access || !conf_access.len || !(acc in conf_access))
t1 += "<a href='?src=\ref[src];access=[acc]'>[aname]</a><br>"
else if(one_access)
t1 += "<a style='color: green' href='?src=\ref[src];access=[acc]'>[aname]</a><br>"
else
t1 += "<a style='color: red' href='?src=\ref[src];access=[acc]'>[aname]</a><br>"
t1 += text("<p><a href='?src=\ref[];close=1'>Close</a></p>\n", src)
user << browse(t1, "window=airlock_electronics")
onclose(user, "airlock")
/obj/item/weapon/airlock_electronics/Topic(href, href_list)
..()
if (usr.stat || usr.restrained() || (!ishuman(usr) && !istype(usr,/mob/living/silicon)))
return
if (href_list["close"])
usr << browse(null, "window=airlock")
return
if (href_list["login"])
if(istype(usr,/mob/living/silicon))
src.locked = 0
src.last_configurator = usr.name
else
t1 += "<a href='?src=\ref[src];logout=1'>Block</a><hr>"
t1 += "Access requirement is set to "
t1 += one_access ? "<a style='color: green' href='?src=\ref[src];one_access=1'>ONE</a><hr>" : "<a style='color: red' href='?src=\ref[src];one_access=1'>ALL</a><hr>"
t1 += conf_access == null ? "<font color=red>All</font><br>" : "<a href='?src=\ref[src];access=all'>All</a><br>"
t1 += "<br>"
var/list/accesses = get_all_station_access()
for (var/acc in accesses)
var/aname = get_access_desc(acc)
if (!conf_access || !conf_access.len || !(acc in conf_access))
t1 += "<a href='?src=\ref[src];access=[acc]'>[aname]</a><br>"
else if(one_access)
t1 += "<a style='color: green' href='?src=\ref[src];access=[acc]'>[aname]</a><br>"
else
t1 += "<a style='color: red' href='?src=\ref[src];access=[acc]'>[aname]</a><br>"
t1 += text("<p><a href='?src=\ref[];close=1'>Close</a></p>\n", src)
user << browse(t1, "window=airlock_electronics")
onclose(user, "airlock")
Topic(href, href_list)
..()
if (usr.stat || usr.restrained() || (!ishuman(usr) && !istype(usr,/mob/living/silicon)))
return
if (href_list["close"])
usr << browse(null, "window=airlock")
return
if (href_list["login"])
if(istype(usr,/mob/living/silicon))
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/device/pda))
var/obj/item/device/pda/pda = I
I = pda.id
if (I && src.check_access(I))
src.locked = 0
src.last_configurator = usr.name
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/device/pda))
var/obj/item/device/pda/pda = I
I = pda.id
if (I && src.check_access(I))
src.locked = 0
src.last_configurator = I:registered_name
src.last_configurator = I:registered_name
if (locked)
return
if (locked)
return
if (href_list["logout"])
locked = 1
if (href_list["logout"])
locked = 1
if (href_list["one_access"])
one_access = !one_access
if (href_list["one_access"])
one_access = !one_access
if (href_list["access"])
toggle_access(href_list["access"])
if (href_list["access"])
toggle_access(href_list["access"])
attack_self(usr)
attack_self(usr)
proc
toggle_access(var/acc)
if (acc == "all")
/obj/item/weapon/airlock_electronics/proc/toggle_access(var/acc)
if (acc == "all")
conf_access = null
else
var/req = text2num(acc)
if (conf_access == null)
conf_access = list()
if (!(req in conf_access))
conf_access += req
else
conf_access -= req
if (!conf_access.len)
conf_access = null
else
var/req = text2num(acc)
if (conf_access == null)
conf_access = list()
if (!(req in conf_access))
conf_access += req
else
conf_access -= req
if (!conf_access.len)
conf_access = null
/obj/item/weapon/airlock_electronics/secure
+16 -11
View File
@@ -212,17 +212,22 @@
src.state = 0
else if(istype(W, /obj/item/weapon/airlock_electronics) && state == 1)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
if(do_after(user, 40))
if(!src) return
user.drop_item()
W.loc = src
user << "<span class='notice'>You installed the airlock electronics!</span>"
src.state = 2
src.name = "Near finished Airlock Assembly"
src.electronics = W
var/obj/item/weapon/airlock_electronics/EL = W
if(!EL.inuse)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
EL.inuse = 1
if(do_after(user, 40))
EL.inuse = 0
if(!src) return
user.drop_item()
EL.forceMove(src)
user << "<span class='notice'>You installed the airlock electronics!</span>"
src.state = 2
src.name = "Near finished Airlock Assembly"
src.electronics = EL
else
EL.inuse = 0
else if(istype(W, /obj/item/weapon/crowbar) && state == 2 )
//This should never happen, but just in case I guess
@@ -167,19 +167,21 @@ obj/structure/windoor_assembly/Destroy()
//Adding airlock electronics for access. Step 6 complete.
else if(istype(W, /obj/item/weapon/airlock_electronics) && W:icon_state != "door_electronics_smoked")
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
if(do_after(user, 40))
if(!src) return
user.drop_item()
W.loc = src
user << "<span class='notice'>You've installed the airlock electronics!</span>"
src.name = "Near finished Windoor Assembly"
src.electronics = W
else
W.loc = src.loc
var/obj/item/weapon/airlock_electronics/EL = W
if(!EL.inuse)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.")
EL.inuse = 1
if(do_after(user, 40))
EL.inuse = 0
if(!src) return
user.drop_item()
EL.forceMove(src)
user << "<span class='notice'>You've installed the airlock electronics!</span>"
src.name = "Near finished Windoor Assembly"
src.electronics = EL
else
EL.inuse = 0
//Screwdriver to remove airlock electronics. Step 6 undone.
else if(istype(W, /obj/item/weapon/screwdriver) && src.electronics)
+3 -2
View File
@@ -78,13 +78,14 @@
. = W
recalc_atom_opacity()
lighting_overlay = old_lighting_overlay
affecting_lights = old_affecting_lights
corners = old_corners
if((old_opacity != opacity) || (dynamic_lighting != old_dynamic_lighting) || force_lighting_update)
reconsider_lights()
if(dynamic_lighting != old_dynamic_lighting)
if(dynamic_lighting)
lighting_build_overlay()
else
lighting_clear_overlay()
if((old_opacity != opacity) || (dynamic_lighting != old_dynamic_lighting) || force_lighting_update)
force_update_lights()
+3 -1
View File
@@ -76,13 +76,14 @@
//This set of uniforms looks fairly fancy and is generally used for high-ranking NT personnel from what I've seen, so lets give them appropriate ranks.
/obj/item/clothing/under/rank/centcom
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Captain.\""
name = "\improper officer's dress uniform"
name = "officer's dress uniform"
icon_state = "officer"
item_state = "lawyer_black"
worn_state = "officer"
displays_id = 0
/obj/item/clothing/under/rank/centcom_officer
name = "officer's dress uniform"
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Admiral.\""
icon_state = "officer"
item_state = "lawyer_black"
@@ -90,6 +91,7 @@
displays_id = 0
/obj/item/clothing/under/rank/centcom_captain
name = "officer's dress uniform"
desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Admiral-Executive.\""
icon_state = "centcom"
item_state = "lawyer_black"
+2 -2
View File
@@ -17,12 +17,12 @@
dynamic_lighting = new_dynamic_lighting
if (new_dynamic_lighting)
for (var/turf/T in turfs)
for (var/turf/T in src)
if (T.dynamic_lighting)
T.lighting_build_overlay()
else
for (var/turf/T in turfs)
for (var/turf/T in src)
if (T.lighting_overlay)
T.lighting_clear_overlay()
@@ -127,7 +127,7 @@
. = ..()
if (is_noisy)
var/turf/T = get_turf(src)
if (T.x == last_x && T.y == last_y)
if ((T.x == last_x && T.y == last_y) || !T.footstep_sound)
return
last_x = T.x
last_y = T.y
@@ -437,8 +437,4 @@ This saves us from having to call add_fingerprint() any time something is put in
if (shoes:silent)
return
var/turf/T = get_turf(src)
if (!istype(T) || !T.footstep_sound)
return
is_noisy = TRUE
@@ -35,7 +35,7 @@
"Your synthetic flesh crawls in the heat, swelling into a disgusting morass of plastic."
)
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_EYE_COLOR | HAS_FBP
appearance_flags = HAS_HAIR_COLOR | HAS_SKIN_TONE | HAS_EYE_COLOR | HAS_FBP | HAS_UNDERWEAR | HAS_SOCKS
has_limbs = list(
"chest" = list("path" = /obj/item/organ/external/chest/shell),
@@ -337,6 +337,8 @@
var/turf/T = get_turf(src)
if(istype(T)) T.visible_message("<b>[src]</b> folds outwards, expanding into a mobile form.")
canmove = 1
resting = 0
/mob/living/silicon/pai/verb/fold_up()
set category = "pAI Commands"
+53 -8
View File
@@ -7,7 +7,7 @@
vital = 1 //because it is now hosting the posibrain
max_damage = 50 //made same as arm, since it is not vital
min_broken_damage = 30
encased = null
encased = "support frame"
/obj/item/organ/external/head/ipc/New()
robotize("Hephaestus Integrated Limb")
@@ -15,31 +15,35 @@
/obj/item/organ/external/chest/ipc
dislocated = -1
encased = null
encased = "support frame"
/obj/item/organ/external/chest/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/groin/ipc
dislocated = -1
encased = "support frame"
/obj/item/organ/external/groin/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/arm/ipc
dislocated = -1
encased = "support frame"
/obj/item/organ/external/arm/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/arm/right/ipc
dislocated = -1
encased = "support frame"
/obj/item/organ/external/arm/right/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/leg/ipc
dislocated = -1
encased = "support frame"
/obj/item/organ/external/leg/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
@@ -52,24 +56,28 @@
/obj/item/organ/external/foot/ipc
dislocated = -1
encased = "support frame"
/obj/item/organ/external/foot/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/foot/right/ipc
dislocated = -1
encased = "support frame"
/obj/item/organ/external/foot/right/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/hand/ipc
dislocated = -1
encased = "support frame"
/obj/item/organ/external/hand/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
/obj/item/organ/external/hand/right/ipc
dislocated = -1
encased = "support frame"
/obj/item/organ/external/hand/right/ipc/New()
robotize("Hephaestus Integrated Limb")
..()
@@ -214,7 +222,7 @@
vital = 0
max_damage = 50 //made same as arm, since it is not vital
min_broken_damage = 30
encased = null
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/eyes/optical_sensor/terminator
@@ -226,7 +234,7 @@
/obj/item/organ/external/chest/terminator
dislocated = -1
encased = null
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/chest/terminator/New()
@@ -235,6 +243,7 @@
/obj/item/organ/external/groin/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/groin/terminator/New()
@@ -243,6 +252,7 @@
/obj/item/organ/external/arm/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/arm/terminator/New()
@@ -251,6 +261,7 @@
/obj/item/organ/external/arm/right/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/arm/right/terminator/New()
@@ -259,6 +270,7 @@
/obj/item/organ/external/leg/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/leg/terminator/New()
@@ -267,6 +279,7 @@
/obj/item/organ/external/leg/right/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/leg/right/terminator/New()
@@ -275,6 +288,7 @@
/obj/item/organ/external/foot/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/foot/terminator/New()
@@ -283,6 +297,7 @@
/obj/item/organ/external/foot/right/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/foot/right/terminator/New()
@@ -291,6 +306,7 @@
/obj/item/organ/external/hand/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/hand/terminator/New()
@@ -299,6 +315,7 @@
/obj/item/organ/external/hand/right/terminator
dislocated = -1
encased = "reinforced support frame"
emp_coeff = 0.5
/obj/item/organ/external/hand/right/terminator/New()
@@ -315,7 +332,7 @@
vital = 0
max_damage = 50 //made same as arm, since it is not vital
min_broken_damage = 30
encased = null
encased = "support frame"
/obj/item/organ/external/head/industrial/New()
robotize("Hephaestus Industrial Limb")
@@ -323,61 +340,80 @@
/obj/item/organ/external/chest/industrial
dislocated = -1
encased = null
encased = "support frame"
/obj/item/organ/external/chest/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/groin/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/groin/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/arm/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/arm/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/arm/right/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/arm/right/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/leg/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/leg/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/leg/right/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/leg/right/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/foot/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/foot/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/foot/right/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/foot/right/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/hand/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/hand/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
/obj/item/organ/external/hand/right/industrial
dislocated = -1
encased = "support frame"
/obj/item/organ/external/hand/right/industrial/New()
robotize("Hephaestus Industrial Limb")
..()
@@ -392,7 +428,7 @@
vital = 0
max_damage = 50 //made same as arm, since it is not vital
min_broken_damage = 30
encased = null
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/head/shell/New()
@@ -401,7 +437,7 @@
/obj/item/organ/external/chest/shell
dislocated = -1
encased = null
encased = "support frame"
force_skintone = TRUE
@@ -411,6 +447,7 @@
/obj/item/organ/external/groin/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/groin/shell/New()
@@ -419,6 +456,7 @@
/obj/item/organ/external/arm/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/arm/shell/New()
@@ -427,6 +465,7 @@
/obj/item/organ/external/arm/right/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/arm/right/shell/New()
@@ -435,6 +474,7 @@
/obj/item/organ/external/leg/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/leg/shell/New()
@@ -443,6 +483,7 @@
/obj/item/organ/external/leg/right/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/leg/right/shell/New()
@@ -451,6 +492,7 @@
/obj/item/organ/external/foot/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/foot/shell/New()
@@ -459,6 +501,7 @@
/obj/item/organ/external/foot/right/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/foot/right/shell/New()
@@ -467,6 +510,7 @@
/obj/item/organ/external/hand/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/hand/shell/New()
@@ -475,6 +519,7 @@
/obj/item/organ/external/hand/right/shell
dislocated = -1
encased = "support frame"
force_skintone = TRUE
/obj/item/organ/external/hand/right/shell/New()
@@ -25,16 +25,24 @@
if(SEC_LEVEL_GREEN)
security_announcement_down.Announce("[config.alert_desc_green]", "Attention! Security level lowered to green.")
security_level = SEC_LEVEL_GREEN
if (nl_ctrl.manual_override == 2) // Disable override if it was set by code-red.
nl_ctrl.manual_override = 0
nl_ctrl.doWork(FALSE) // Update night lighting if it was turned off by red alert.
if(SEC_LEVEL_BLUE)
if(security_level < SEC_LEVEL_BLUE)
security_announcement_up.Announce("[config.alert_desc_blue_upto]", "Attention! Security level elevated to blue.")
else
security_announcement_down.Announce("[config.alert_desc_blue_downto]", "Attention! Security level lowered to blue.")
security_level = SEC_LEVEL_BLUE
if (nl_ctrl.manual_override == 2)
nl_ctrl.manual_override = 0
nl_ctrl.doWork(FALSE) // Update night lighting if it was turned off by red alert.
if(SEC_LEVEL_RED)
if(security_level < SEC_LEVEL_RED)
security_announcement_up.Announce("[config.alert_desc_red_upto]", "Attention! Security level elevated to red!")
nl_ctrl.deactivate(0) // Disable nightmode globally
if (!nl_ctrl.manual_override)
nl_ctrl.manual_override = 2
else
security_announcement_down.Announce("[config.alert_desc_red_downto]", "Attention! Code red!")
security_level = SEC_LEVEL_RED
@@ -95,4 +103,4 @@
set_security_level(2)
/mob/verb/set_thing3()
set_security_level(3)
*/
*/
+6 -6
View File
@@ -29,7 +29,7 @@
return 0
var/target = targets[1]
if(istext(target))
mark = new /obj/effect/cleanable/wizard_mark(get_turf(user),src)
mark = new /obj/effect/decal/wizard_mark(get_turf(user),src)
return 1
if(!istype(target,/obj)) //something went wrong
return 0
@@ -47,7 +47,7 @@
return "You no longer have to be conscious to activate this spell."
/obj/effect/cleanable/wizard_mark
/obj/effect/decal/wizard_mark
name = "mark of the wizard"
desc = "A strange rune, probably someone playing with crayons again."
icon = 'icons/obj/rune.dmi'
@@ -59,22 +59,22 @@
var/spell/mark_recall/spell
/obj/effect/cleanable/wizard_mark/New(var/newloc,var/mrspell)
/obj/effect/decal/wizard_mark/New(var/newloc,var/mrspell)
..()
spell = mrspell
/obj/effect/cleanable/wizard_mark/Destroy()
/obj/effect/decal/wizard_mark/Destroy()
spell.mark = null //dereference pls.
spell = null
..()
/obj/effect/cleanable/wizard_mark/attack_hand(var/mob/user)
/obj/effect/decal/wizard_mark/attack_hand(var/mob/user)
if(user == spell.holder)
user.visible_message("\The [user] mutters an incantation and \the [src] disappears!")
qdel(src)
..()
/obj/effect/cleanable/wizard_mark/attackby(var/obj/item/I, var/mob/user)
/obj/effect/decal/wizard_mark/attackby(var/obj/item/I, var/mob/user)
if(istype(I, /obj/item/weapon/nullrod) || istype(I, /obj/item/weapon/spellbook))
user.setClickCooldown(DEFAULT_ATTACK_COOLDOWN)
src.visible_message("\The [src] fades away!")
+21
View File
@@ -56,6 +56,27 @@
-->
<div class="commit sansserif">
<h2 class="date">12 April 2017</h2>
<h3 class="author">MoondancerPony updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Taught roboticists how to properly remove IPC organs.</li>
<li class="tweak">IPC organs are now encased.</li>
</ul>
<h2 class="date">10 April 2017</h2>
<h3 class="author">Lohikar updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Shells have figured out how to put on socks & undershirts. Synth uprising soon.</li>
<li class="bugfix">Repairing holes to space no longer sucks the light out of a room forever.</li>
<li class="bugfix">Footstep sounds now actually work without having to take off your boots.</li>
<li class="bugfix">NanoTrasen has fired several designers in charge of stations' night-mode control systems after it was revealed that they did not actually know how time works.</li>
<li class="tweak">Red-alert is now kind enough to restore the previous nightmode settings instead of forcing its standards of illumination on the crew.</li>
</ul>
<h3 class="author">MoondancerPony updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Eliminated the possibility for 'double-spending' airlock electronics, duplicating boards and allowing you to complete multiple airlocks with one board.</li>
</ul>
<h2 class="date">08 April 2017</h2>
<h3 class="author">MoondancerPony updated:</h3>
<ul class="changes bgimages16">
+18
View File
@@ -4094,3 +4094,21 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
reagents transferred.
- bugfix: Relocating your/someone's limb will now properly show a message to all
bystanders.
2017-04-10:
Lohikar:
- rscadd: Shells have figured out how to put on socks & undershirts. Synth uprising
soon.
- bugfix: Repairing holes to space no longer sucks the light out of a room forever.
- bugfix: Footstep sounds now actually work without having to take off your boots.
- bugfix: NanoTrasen has fired several designers in charge of stations' night-mode
control systems after it was revealed that they did not actually know how time
works.
- tweak: Red-alert is now kind enough to restore the previous nightmode settings
instead of forcing its standards of illumination on the crew.
MoondancerPony:
- bugfix: Eliminated the possibility for 'double-spending' airlock electronics,
duplicating boards and allowing you to complete multiple airlocks with one board.
2017-04-12:
MoondancerPony:
- bugfix: Taught roboticists how to properly remove IPC organs.
- tweak: IPC organs are now encased.