mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-29 16:10:02 +01:00
Merge branch 'master' into development
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
*/
|
||||
*/
|
||||
|
||||
@@ -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!")
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user