[READY]Randomized Station Time + Night Shifts
This commit is contained in:
committed by
CitadelStationBot
parent
c1d66af3a1
commit
bc2f2a9728
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user