[READY]Randomized Station Time + Night Shifts

This commit is contained in:
Jordan Brown
2018-02-21 13:01:33 -05:00
committed by CitadelStationBot
parent c1d66af3a1
commit bc2f2a9728
32 changed files with 241 additions and 42 deletions
+20
View File
@@ -90,6 +90,8 @@
var/failure_timer = 0
var/force_update = 0
var/emergency_lights = FALSE
var/nightshift_lights = FALSE
var/last_nightshift_switch = 0
var/update_state = -1
var/update_overlay = -1
var/icon_update_needed = FALSE
@@ -755,6 +757,7 @@
"siliconUser" = user.has_unlimited_silicon_privilege || user.using_power_flow_console(),
"malfStatus" = get_malf_status(user),
"emergencyLights" = !emergency_lights,
"nightshiftLights" = nightshift_lights,
"powerChannels" = list(
list(
@@ -857,6 +860,13 @@
if("breaker")
toggle_breaker()
. = TRUE
if("toggle_nightshift")
if(last_nightshift_switch > world.time + 100) //don't spam..
to_chat(usr, "<span class='warning'>[src]'s night lighting circuit breaker is still cycling!</span>")
return
last_nightshift_switch = world.time
set_nightshift(!nightshift_lights)
. = TRUE
if("charge")
chargemode = !chargemode
if(!chargemode)
@@ -1304,6 +1314,16 @@
failure_timer = max(failure_timer, round(duration))
/obj/machinery/power/apc/proc/set_nightshift(on)
set waitfor = FALSE
nightshift_lights = on
for(var/area/A in area.related)
for(var/obj/machinery/light/L in A)
if(L.nightshift_allowed)
L.nightshift_enabled = nightshift_lights
L.update(FALSE)
CHECK_TICK
#undef UPSTATE_CELL_IN
#undef UPSTATE_OPENED1
#undef UPSTATE_OPENED2
+21 -2
View File
@@ -210,6 +210,13 @@
var/obj/item/stock_parts/cell/cell
var/start_with_cell = TRUE // if true, this fixture generates a very weak cell at roundstart
var/nightshift_enabled = FALSE //Currently in night shift mode?
var/nightshift_allowed = TRUE //Set to FALSE to never let this light get switched to night mode.
var/nightshift_brightness = 8
var/nightshift_light_power = 0.45
var/nightshift_light_color = "#FFDDCC"
var/emergency_mode = FALSE // if true, the light is in emergency mode
var/no_emergency = FALSE // if true, this light cannot ever have an emergency mode
var/bulb_emergency_brightness_mul = 0.25 // multiplier for this light's base brightness in emergency power mode
@@ -301,24 +308,36 @@
return
// update the icon_state and luminosity of the light depending on its state
/obj/machinery/light/proc/update(trigger = 1)
/obj/machinery/light/proc/update(trigger = TRUE)
switch(status)
if(LIGHT_BROKEN,LIGHT_BURNED,LIGHT_EMPTY)
on = FALSE
emergency_mode = FALSE
if(on)
<<<<<<< HEAD
if(!light || light.light_range != brightness || SSnightshift.nightshift != nightshift) //Cit change - makes lights update when nightshift triggers
=======
var/BR = nightshift_enabled? nightshift_brightness : brightness
var/PO = nightshift_enabled? nightshift_light_power : bulb_power
var/CO = nightshift_enabled? nightshift_light_color : bulb_colour
var/matching = light && BR == light.light_range && PO == light.light_power && CO == light.light_color
if(!matching)
>>>>>>> 3622768... Merge pull request #35775 from kevinz000/night_shift
switchcount++
nightshift = SSnightshift.nightshift // Cit change - makes lights update when nightshift triggers
if(rigged)
if(status == LIGHT_OK && trigger)
explode()
else if( prob( min(60, switchcount*switchcount*0.01) ) )
else if( prob( min(60, (switchcount^2)*0.01) ) )
if(trigger)
burn_out()
else
use_power = ACTIVE_POWER_USE
<<<<<<< HEAD
set_light(brightness, ((SSnightshift.nightshift && obeysnightshift) ? SSnightshift.nightshift_light_power : bulb_power), ((SSnightshift.nightshift && obeysnightshift) ? SSnightshift.nightshift_light_color : bulb_colour)) // Citadel change. Allows nightshift and admins to modify station light power and color
=======
set_light(BR, PO, CO)
>>>>>>> 3622768... Merge pull request #35775 from kevinz000/night_shift
else if(has_emergency_power(LIGHT_EMERGENCY_POWER_USE) && !turned_off())
use_power = IDLE_POWER_USE
emergency_mode = TRUE