mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-11 10:11:09 +00:00
DisplayTimeText mk2 (#30969)
* Adds new helper, DisplayTimeText * Removed unused define Thought it would've been nice to have for the future, but I guess it's fine to go without it. * CBB * Revamp * Early returns * More cleanup * Proc cleanup * Makes fraction only show if seconds is < 1 * Last cleanup * Revert * Corrected incorrect round time. Dunno how nobody ever caught that it was incorrect on live servers, gg.
This commit is contained in:
@@ -43,7 +43,7 @@
|
|||||||
/client/proc/file_spam_check()
|
/client/proc/file_spam_check()
|
||||||
var/time_to_wait = GLOB.fileaccess_timer - world.time
|
var/time_to_wait = GLOB.fileaccess_timer - world.time
|
||||||
if(time_to_wait > 0)
|
if(time_to_wait > 0)
|
||||||
to_chat(src, "<font color='red'>Error: file_spam_check(): Spam. Please wait [round(time_to_wait/10)] seconds.</font>")
|
to_chat(src, "<font color='red'>Error: file_spam_check(): Spam. Please wait [DisplayTimeText(time_to_wait)].</font>")
|
||||||
return 1
|
return 1
|
||||||
GLOB.fileaccess_timer = world.time + FTPDELAY
|
GLOB.fileaccess_timer = world.time + FTPDELAY
|
||||||
return 0
|
return 0
|
||||||
|
|||||||
@@ -421,7 +421,7 @@
|
|||||||
SEND_SOUND(M, 'sound/misc/notice2.ogg') //Alerting them to their consideration
|
SEND_SOUND(M, 'sound/misc/notice2.ogg') //Alerting them to their consideration
|
||||||
if(flashwindow)
|
if(flashwindow)
|
||||||
window_flash(M.client)
|
window_flash(M.client)
|
||||||
switch(ignore_category ? askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(M,Question,"Please answer in [poll_time/10] seconds!","Yes","No", StealFocus=0, Timeout=poll_time))
|
switch(ignore_category ? askuser(M,Question,"Please answer in [DisplayTimeText(poll_time)]!","Yes","No","Never for this round", StealFocus=0, Timeout=poll_time) : askuser(M,Question,"Please answer in [DisplayTimeText(poll_time)]!","Yes","No", StealFocus=0, Timeout=poll_time))
|
||||||
if(1)
|
if(1)
|
||||||
to_chat(M, "<span class='notice'>Choice registered: Yes.</span>")
|
to_chat(M, "<span class='notice'>Choice registered: Yes.</span>")
|
||||||
if(time_passed + poll_time <= world.time)
|
if(time_passed + poll_time <= world.time)
|
||||||
|
|||||||
@@ -219,3 +219,8 @@ GLOBAL_LIST_INIT(sqrtTable, list(1, 1, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 4,
|
|||||||
new_x = Clamp(new_x, 0, world.maxx)
|
new_x = Clamp(new_x, 0, world.maxx)
|
||||||
new_y = Clamp(new_y, 0, world.maxy)
|
new_y = Clamp(new_y, 0, world.maxy)
|
||||||
return locate(new_x, new_y, starting.z)
|
return locate(new_x, new_y, starting.z)
|
||||||
|
|
||||||
|
/proc/round_down(num)
|
||||||
|
if(round(num) != num)
|
||||||
|
return round(num--)
|
||||||
|
else return num
|
||||||
|
|||||||
@@ -50,3 +50,99 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0)
|
|||||||
return 5
|
return 5
|
||||||
else
|
else
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
//Takes a value of time in deciseconds.
|
||||||
|
//Returns a text value of that number in hours, minutes, or seconds.
|
||||||
|
/proc/DisplayTimeText(time_value)
|
||||||
|
var/second = time_value*0.1
|
||||||
|
var/second_adjusted = null
|
||||||
|
var/second_rounded = FALSE
|
||||||
|
var/minute = null
|
||||||
|
var/hour = null
|
||||||
|
var/day = null
|
||||||
|
|
||||||
|
if(!second)
|
||||||
|
return "0 seconds"
|
||||||
|
if(second >= 60)
|
||||||
|
minute = round_down(second/60)
|
||||||
|
second = round(second - (minute*60), 0.1)
|
||||||
|
second_rounded = TRUE
|
||||||
|
if(second) //check if we still have seconds remaining to format, or if everything went into minute.
|
||||||
|
second_adjusted = round(second) //used to prevent '1 seconds' being shown
|
||||||
|
if(day || hour || minute)
|
||||||
|
if(second_adjusted == 1 && second >= 1)
|
||||||
|
second = " and 1 second"
|
||||||
|
else if(second > 1)
|
||||||
|
second = " and [second_adjusted] seconds"
|
||||||
|
else //shows a fraction if seconds is < 1
|
||||||
|
if(second_rounded) //no sense rounding again if it's already done
|
||||||
|
second = " and [second] seconds"
|
||||||
|
else
|
||||||
|
second = " and [round(second, 0.1)] seconds"
|
||||||
|
else
|
||||||
|
if(second_adjusted == 1 && second >= 1)
|
||||||
|
second = "1 second"
|
||||||
|
else if(second > 1)
|
||||||
|
second = "[second_adjusted] seconds"
|
||||||
|
else
|
||||||
|
if(second_rounded)
|
||||||
|
second = "[second] seconds"
|
||||||
|
else
|
||||||
|
second = "[round(second, 0.1)] seconds"
|
||||||
|
else
|
||||||
|
second = null
|
||||||
|
|
||||||
|
if(!minute)
|
||||||
|
return "[second]"
|
||||||
|
if(minute >= 60)
|
||||||
|
hour = round_down(minute/60,1)
|
||||||
|
minute = (minute - (hour*60))
|
||||||
|
if(minute) //alot simpler from here since you don't have to worry about fractions
|
||||||
|
if(minute != 1)
|
||||||
|
if((day || hour) && second)
|
||||||
|
minute = ", [minute] minutes"
|
||||||
|
else if((day || hour) && !second)
|
||||||
|
minute = " and [minute] minutes"
|
||||||
|
else
|
||||||
|
minute = "[minute] minutes"
|
||||||
|
else
|
||||||
|
if((day || hour) && second)
|
||||||
|
minute = ", 1 minute"
|
||||||
|
else if((day || hour) && !second)
|
||||||
|
minute = " and 1 minute"
|
||||||
|
else
|
||||||
|
minute = "1 minute"
|
||||||
|
else
|
||||||
|
minute = null
|
||||||
|
|
||||||
|
if(!hour)
|
||||||
|
return "[minute][second]"
|
||||||
|
if(hour >= 24)
|
||||||
|
day = round_down(hour/24,1)
|
||||||
|
hour = (hour - (day*24))
|
||||||
|
if(hour)
|
||||||
|
if(hour != 1)
|
||||||
|
if(day && (minute || second))
|
||||||
|
hour = ", [hour] hours"
|
||||||
|
else if(day && (!minute || !second))
|
||||||
|
hour = " and [hour] hours"
|
||||||
|
else
|
||||||
|
hour = "[hour] hours"
|
||||||
|
else
|
||||||
|
if(day && (minute || second))
|
||||||
|
hour = ", 1 hour"
|
||||||
|
else if(day && (!minute || !second))
|
||||||
|
hour = " and 1 hour"
|
||||||
|
else
|
||||||
|
hour = "1 hour"
|
||||||
|
else
|
||||||
|
hour = null
|
||||||
|
|
||||||
|
if(!day)
|
||||||
|
return "[hour][minute][second]"
|
||||||
|
if(day > 1)
|
||||||
|
day = "[day] days"
|
||||||
|
else
|
||||||
|
day = "1 day"
|
||||||
|
|
||||||
|
return "[day][hour][minute][second]"
|
||||||
|
|||||||
@@ -322,7 +322,7 @@ SUBSYSTEM_DEF(air)
|
|||||||
EG.dismantle()
|
EG.dismantle()
|
||||||
CHECK_TICK
|
CHECK_TICK
|
||||||
|
|
||||||
var/msg = "HEY! LISTEN! [(world.timeofday - timer)/10] Seconds were wasted processing [starting_ats] turf(s) (connected to [ending_ats] other turfs) with atmos differences at round start."
|
var/msg = "HEY! LISTEN! [DisplayTimeText(world.timeofday - timer)] were wasted processing [starting_ats] turf(s) (connected to [ending_ats] other turfs) with atmos differences at round start."
|
||||||
to_chat(world, "<span class='boldannounce'>[msg]</span>")
|
to_chat(world, "<span class='boldannounce'>[msg]</span>")
|
||||||
warning(msg)
|
warning(msg)
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ SUBSYSTEM_DEF(server_maint)
|
|||||||
var/cmob = C.mob
|
var/cmob = C.mob
|
||||||
if(!(isobserver(cmob) || (isdead(cmob) && C.holder)))
|
if(!(isobserver(cmob) || (isdead(cmob) && C.holder)))
|
||||||
log_access("AFK: [key_name(C)]")
|
log_access("AFK: [key_name(C)]")
|
||||||
to_chat(C, "<span class='danger'>You have been inactive for more than [config.afk_period / 600] minutes and have been disconnected.</span>")
|
to_chat(C, "<span class='danger'>You have been inactive for more than [DisplayTimeText(config.afk_period)] and have been disconnected.</span>")
|
||||||
qdel(C)
|
qdel(C)
|
||||||
|
|
||||||
if (!(!C || world.time - C.connection_time < PING_BUFFER_TIME || C.inactivity >= (wait-1)))
|
if (!(!C || world.time - C.connection_time < PING_BUFFER_TIME || C.inactivity >= (wait-1)))
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ SUBSYSTEM_DEF(shuttle)
|
|||||||
emergency = backup_shuttle
|
emergency = backup_shuttle
|
||||||
|
|
||||||
if(world.time - SSticker.round_start_time < config.shuttle_refuel_delay)
|
if(world.time - SSticker.round_start_time < config.shuttle_refuel_delay)
|
||||||
to_chat(user, "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - SSticker.round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again.")
|
to_chat(user, "The emergency shuttle is refueling. Please wait [DisplayTimeText((world.time - SSticker.round_start_time) - config.shuttle_refuel_delay)] before trying again.")
|
||||||
return
|
return
|
||||||
|
|
||||||
switch(emergency.mode)
|
switch(emergency.mode)
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ SUBSYSTEM_DEF(ticker)
|
|||||||
end_state.count()
|
end_state.count()
|
||||||
var/station_integrity = min(PERCENT(GLOB.start_state.score(end_state)), 100)
|
var/station_integrity = min(PERCENT(GLOB.start_state.score(end_state)), 100)
|
||||||
|
|
||||||
to_chat(world, "<BR>[GLOB.TAB]Shift Duration: <B>[round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]</B>")
|
to_chat(world, "<BR>[GLOB.TAB]Shift Duration: <B>[DisplayTimeText(world.time - SSticker.round_start_time)]</B>")
|
||||||
to_chat(world, "<BR>[GLOB.TAB]Station Integrity: <B>[mode.station_was_nuked ? "<font color='red'>Destroyed</font>" : "[station_integrity]%"]</B>")
|
to_chat(world, "<BR>[GLOB.TAB]Station Integrity: <B>[mode.station_was_nuked ? "<font color='red'>Destroyed</font>" : "[station_integrity]%"]</B>")
|
||||||
if(mode.station_was_nuked)
|
if(mode.station_was_nuked)
|
||||||
SSticker.news_report = STATION_DESTROYED_NUKE
|
SSticker.news_report = STATION_DESTROYED_NUKE
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ SUBSYSTEM_DEF(vote)
|
|||||||
admin = TRUE
|
admin = TRUE
|
||||||
|
|
||||||
if(next_allowed_time > world.time && !admin)
|
if(next_allowed_time > world.time && !admin)
|
||||||
to_chat(usr, "<span class='warning'>A vote was initiated recently, you must wait roughly [(next_allowed_time-world.time)/10] seconds before a new vote can be started!</span>")
|
to_chat(usr, "<span class='warning'>A vote was initiated recently, you must wait [DisplayTimeText(next_allowed_time-world.time)] before a new vote can be started!</span>")
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
reset()
|
reset()
|
||||||
@@ -189,7 +189,7 @@ SUBSYSTEM_DEF(vote)
|
|||||||
if(mode == "custom")
|
if(mode == "custom")
|
||||||
text += "\n[question]"
|
text += "\n[question]"
|
||||||
log_vote(text)
|
log_vote(text)
|
||||||
to_chat(world, "\n<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[src]'>here</a> to place your votes.\nYou have [config.vote_period/10] seconds to vote.</font>")
|
to_chat(world, "\n<font color='purple'><b>[text]</b>\nType <b>vote</b> or click <a href='?src=\ref[src]'>here</a> to place your votes.\nYou have [DisplayTimeText(config.vote_period)] to vote.</font>")
|
||||||
time_remaining = round(config.vote_period/10)
|
time_remaining = round(config.vote_period/10)
|
||||||
for(var/c in GLOB.clients)
|
for(var/c in GLOB.clients)
|
||||||
var/client/C = c
|
var/client/C = c
|
||||||
|
|||||||
@@ -57,7 +57,7 @@
|
|||||||
if(!placed)
|
if(!placed)
|
||||||
if(manualplace_min_time && world.time >= manualplace_min_time)
|
if(manualplace_min_time && world.time >= manualplace_min_time)
|
||||||
to_chat(src, "<b><span class='big'><font color=\"#EE4000\">You may now place your blob core.</font></span></b>")
|
to_chat(src, "<b><span class='big'><font color=\"#EE4000\">You may now place your blob core.</font></span></b>")
|
||||||
to_chat(src, "<span class='big'><font color=\"#EE4000\">You will automatically place your blob core in [round((autoplace_max_time - world.time)/600, 0.5)] minutes.</font></span>")
|
to_chat(src, "<span class='big'><font color=\"#EE4000\">You will automatically place your blob core in [DisplayTimeText(autoplace_max_time - world.time)].</font></span>")
|
||||||
manualplace_min_time = 0
|
manualplace_min_time = 0
|
||||||
if(autoplace_max_time && world.time >= autoplace_max_time)
|
if(autoplace_max_time && world.time >= autoplace_max_time)
|
||||||
place_blob_core(base_point_rate, 1)
|
place_blob_core(base_point_rate, 1)
|
||||||
|
|||||||
@@ -365,5 +365,5 @@
|
|||||||
to_chat(src, "<b>Shortcuts:</b> Click = Expand Blob <b>|</b> Middle Mouse Click = Rally Spores <b>|</b> Ctrl Click = Create Shield Blob <b>|</b> Alt Click = Remove Blob")
|
to_chat(src, "<b>Shortcuts:</b> Click = Expand Blob <b>|</b> Middle Mouse Click = Rally Spores <b>|</b> Ctrl Click = Create Shield Blob <b>|</b> Alt Click = Remove Blob")
|
||||||
to_chat(src, "Attempting to talk will send a message to all other overminds, allowing you to coordinate with them.")
|
to_chat(src, "Attempting to talk will send a message to all other overminds, allowing you to coordinate with them.")
|
||||||
if(!placed && autoplace_max_time <= world.time)
|
if(!placed && autoplace_max_time <= world.time)
|
||||||
to_chat(src, "<span class='big'><font color=\"#EE4000\">You will automatically place your blob core in [round((autoplace_max_time - world.time)/600, 0.5)] minutes.</font></span>")
|
to_chat(src, "<span class='big'><font color=\"#EE4000\">You will automatically place your blob core in [DisplayTimeText(autoplace_max_time - world.time)].</font></span>")
|
||||||
to_chat(src, "<span class='big'><font color=\"#EE4000\">You [manualplace_min_time ? "will be able to":"can"] manually place your blob core by pressing the Place Blob Core button in the bottom right corner of the screen.</font></span>")
|
to_chat(src, "<span class='big'><font color=\"#EE4000\">You [manualplace_min_time ? "will be able to":"can"] manually place your blob core by pressing the Place Blob Core button in the bottom right corner of the screen.</font></span>")
|
||||||
|
|||||||
@@ -207,7 +207,7 @@
|
|||||||
time_duration = round(time_duration * (2 * efficiency), 1)
|
time_duration = round(time_duration * (2 * efficiency), 1)
|
||||||
CO.active = TRUE //you'd be active in a second but you should update immediately
|
CO.active = TRUE //you'd be active in a second but you should update immediately
|
||||||
invoker.visible_message("<span class='warning'>The air in front of [invoker] ripples before suddenly tearing open!</span>", \
|
invoker.visible_message("<span class='warning'>The air in front of [invoker] ripples before suddenly tearing open!</span>", \
|
||||||
"<span class='brass'>With a word, you rip open a [two_way ? "two-way":"one-way"] rift to [input_target_key]. It will last for [time_duration / 10] seconds and has [gateway_uses] use[gateway_uses > 1 ? "s" : ""].</span>")
|
"<span class='brass'>With a word, you rip open a [two_way ? "two-way":"one-way"] rift to [input_target_key]. It will last for [DisplayTimeText(time_duration)] and has [gateway_uses] use[gateway_uses > 1 ? "s" : ""].</span>")
|
||||||
var/obj/effect/clockwork/spatial_gateway/S1 = new(issrcobelisk ? get_turf(src) : get_step(get_turf(invoker), invoker.dir))
|
var/obj/effect/clockwork/spatial_gateway/S1 = new(issrcobelisk ? get_turf(src) : get_step(get_turf(invoker), invoker.dir))
|
||||||
var/obj/effect/clockwork/spatial_gateway/S2 = new(istargetobelisk ? get_turf(target) : get_step(get_turf(target), target.dir))
|
var/obj/effect/clockwork/spatial_gateway/S2 = new(istargetobelisk ? get_turf(target) : get_step(get_turf(target), target.dir))
|
||||||
|
|
||||||
|
|||||||
@@ -318,23 +318,10 @@
|
|||||||
if(servants > SCRIPT_SERVANT_REQ)
|
if(servants > SCRIPT_SERVANT_REQ)
|
||||||
servants -= SCRIPT_SERVANT_REQ
|
servants -= SCRIPT_SERVANT_REQ
|
||||||
production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM)
|
production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM)
|
||||||
var/production_text_addon = ""
|
|
||||||
if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM)
|
if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM)
|
||||||
production_text_addon = ", which increases for each human or silicon Servant above <b>[SCRIPT_SERVANT_REQ]</b>"
|
production_time = "<b>[DisplayTimeText(production_time)]</b>, which increases for each human or silicon Servant above <b>[SCRIPT_SERVANT_REQ]</b>"
|
||||||
production_time = production_time/600
|
else
|
||||||
var/list/production_text
|
production_time = "<b>[DisplayTimeText(production_time)]</b>"
|
||||||
if(round(production_time))
|
|
||||||
production_text = list("<b>[round(production_time)] minute\s")
|
|
||||||
if(production_time != round(production_time))
|
|
||||||
production_time -= round(production_time)
|
|
||||||
production_time *= 60
|
|
||||||
if(!LAZYLEN(production_text))
|
|
||||||
production_text = list("<b>[round(production_time, 1)] second\s")
|
|
||||||
else
|
|
||||||
production_text += " and [round(production_time, 1)] second\s"
|
|
||||||
production_text += "</b>"
|
|
||||||
production_text += production_text_addon
|
|
||||||
production_text = production_text.Join()
|
|
||||||
|
|
||||||
textlist = list("<font color=#BE8700 size=3><b><center>[text2ratvar("Purge all untruths and honor Engine.")]</center></b></font><br>\
|
textlist = list("<font color=#BE8700 size=3><b><center>[text2ratvar("Purge all untruths and honor Engine.")]</center></b></font><br>\
|
||||||
\
|
\
|
||||||
@@ -439,23 +426,10 @@
|
|||||||
if(servants > SCRIPT_SERVANT_REQ)
|
if(servants > SCRIPT_SERVANT_REQ)
|
||||||
servants -= SCRIPT_SERVANT_REQ
|
servants -= SCRIPT_SERVANT_REQ
|
||||||
production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM)
|
production_time += min(SLAB_SERVANT_SLOWDOWN * servants, SLAB_SLOWDOWN_MAXIMUM)
|
||||||
var/production_text_addon = ""
|
|
||||||
if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM)
|
if(production_time != SLAB_PRODUCTION_TIME+SLAB_SLOWDOWN_MAXIMUM)
|
||||||
production_text_addon = ", which increases for each human or silicon Servant above <b>[SCRIPT_SERVANT_REQ]</b>"
|
production_time = "<b>[DisplayTimeText(production_time)]</b>, which increases for each human or silicon Servant above <b>[SCRIPT_SERVANT_REQ]</b>"
|
||||||
production_time = production_time/600
|
else
|
||||||
var/list/production_text
|
production_time = "<b>[DisplayTimeText(production_time)]</b>"
|
||||||
if(round(production_time))
|
|
||||||
production_text = list("<b>[round(production_time)] minute\s")
|
|
||||||
if(production_time != round(production_time))
|
|
||||||
production_time -= round(production_time)
|
|
||||||
production_time *= 60
|
|
||||||
if(!LAZYLEN(production_text))
|
|
||||||
production_text = list("<b>[round(production_time, 1)] second\s")
|
|
||||||
else
|
|
||||||
production_text += " and [round(production_time, 1)] second\s"
|
|
||||||
production_text += "</b>"
|
|
||||||
production_text += production_text_addon
|
|
||||||
production_text = production_text.Join()
|
|
||||||
dat += "<font color=#BE8700 size=3>Components & Their Uses</font><br><br>"
|
dat += "<font color=#BE8700 size=3>Components & Their Uses</font><br><br>"
|
||||||
dat += "<b>Components</b> are your primary resource as a Servant. There are five types of component, with each one being used in different roles:<br><br>"
|
dat += "<b>Components</b> are your primary resource as a Servant. There are five types of component, with each one being used in different roles:<br><br>"
|
||||||
dat += "<font color=#6E001A>[get_component_icon(BELLIGERENT_EYE)]BE</font> Belligerent Eyes are aggressive and judgemental, and are used in offensive scripture;<br>"
|
dat += "<font color=#6E001A>[get_component_icon(BELLIGERENT_EYE)]BE</font> Belligerent Eyes are aggressive and judgemental, and are used in offensive scripture;<br>"
|
||||||
@@ -466,7 +440,7 @@
|
|||||||
dat += "Although this is a good rule of thumb, their effects become much more nuanced when used together. For instance, a turret might have both belligerent eyes and \
|
dat += "Although this is a good rule of thumb, their effects become much more nuanced when used together. For instance, a turret might have both belligerent eyes and \
|
||||||
vanguard cogwheels as construction requirements, because it defends its allies by harming its enemies.<br><br>"
|
vanguard cogwheels as construction requirements, because it defends its allies by harming its enemies.<br><br>"
|
||||||
dat += "Components' primary use is fueling <b>scripture</b> (covered in its own section), and they can be created through various ways. This clockwork slab, for instance, \
|
dat += "Components' primary use is fueling <b>scripture</b> (covered in its own section), and they can be created through various ways. This clockwork slab, for instance, \
|
||||||
will make a random component of every type - or a specific one, if you choose a target component from the interface - every <b>[production_text]</b>. This number will increase \
|
will make a random component of every type - or a specific one, if you choose a target component from the interface - every [production_time]. This number will increase \
|
||||||
as the amount of Servants in the covenant increase; additionally, slabs can only produce components when held by a Servant, and holding more than one slab will cause both \
|
as the amount of Servants in the covenant increase; additionally, slabs can only produce components when held by a Servant, and holding more than one slab will cause both \
|
||||||
of them to halt progress until one of them is removed from their person.<br><br>"
|
of them to halt progress until one of them is removed from their person.<br><br>"
|
||||||
dat += "Your slab has an internal storage of components, but it isn't meant to be the main one. Instead, there's a <b>global storage</b> of components that can be \
|
dat += "Your slab has an internal storage of components, but it isn't meant to be the main one. Instead, there's a <b>global storage</b> of components that can be \
|
||||||
|
|||||||
@@ -105,7 +105,7 @@
|
|||||||
..()
|
..()
|
||||||
if(is_servant_of_ratvar(user) || isobserver(user))
|
if(is_servant_of_ratvar(user) || isobserver(user))
|
||||||
if(linkedwall)
|
if(linkedwall)
|
||||||
to_chat(user, "<span class='brass'>It is linked to a Clockwork Wall and will generate a component every <b>[round(get_production_time() * 0.1, 0.1)]</b> seconds!</span>")
|
to_chat(user, "<span class='brass'>It is linked to a Clockwork Wall and will generate a component every <b>[DisplayTimeText(get_production_time())]</b>!</span>")
|
||||||
else
|
else
|
||||||
to_chat(user, "<span class='alloy'>It is unlinked! Construct a Clockwork Wall nearby to generate components!</span>")
|
to_chat(user, "<span class='alloy'>It is unlinked! Construct a Clockwork Wall nearby to generate components!</span>")
|
||||||
to_chat(user, "<b>Stored components:</b>")
|
to_chat(user, "<b>Stored components:</b>")
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
|
|
||||||
/proc/pollCultists(var/mob/living/Nominee) //Cult Master Poll
|
/proc/pollCultists(var/mob/living/Nominee) //Cult Master Poll
|
||||||
if(world.time < CULT_POLL_WAIT)
|
if(world.time < CULT_POLL_WAIT)
|
||||||
to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [round((CULT_POLL_WAIT-world.time)/10)] seconds.")
|
to_chat(Nominee, "It would be premature to select a leader while everyone is still settling in, try again in [DisplayTimeText(CULT_POLL_WAIT-world.time)].")
|
||||||
return
|
return
|
||||||
GLOB.cult_vote_called = TRUE //somebody's trying to be a master, make sure we don't let anyone else try
|
GLOB.cult_vote_called = TRUE //somebody's trying to be a master, make sure we don't let anyone else try
|
||||||
for(var/datum/mind/B in SSticker.mode.cult)
|
for(var/datum/mind/B in SSticker.mode.cult)
|
||||||
@@ -232,7 +232,7 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
if(cooldown > world.time)
|
if(cooldown > world.time)
|
||||||
if(!CM.active)
|
if(!CM.active)
|
||||||
to_chat(owner, "<span class='cultlarge'><b>You need to wait [round((cooldown - world.time) * 0.1)] seconds before you can mark another target!</b></span>")
|
to_chat(owner, "<span class='cultlarge'><b>You need to wait [DisplayTimeText(cooldown - world.time)] before you can mark another target!</b></span>")
|
||||||
return FALSE
|
return FALSE
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
@@ -324,7 +324,7 @@
|
|||||||
return FALSE
|
return FALSE
|
||||||
if(cooldown > world.time)
|
if(cooldown > world.time)
|
||||||
if(!PM.active)
|
if(!PM.active)
|
||||||
to_chat(owner, "<span class='cultlarge'><b>You need to wait [round((cooldown - world.time) * 0.1)] seconds before you can pulse again!</b></span>")
|
to_chat(owner, "<span class='cultlarge'><b>You need to wait [DisplayTimeText(cooldown - world.time)] before you can pulse again!</b></span>")
|
||||||
return FALSE
|
return FALSE
|
||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
..()
|
..()
|
||||||
to_chat(user, "<span class='notice'>\The [src] is [anchored ? "":"not "]secured to the floor.</span>")
|
to_chat(user, "<span class='notice'>\The [src] is [anchored ? "":"not "]secured to the floor.</span>")
|
||||||
if((iscultist(user) || isobserver(user)) && cooldowntime > world.time)
|
if((iscultist(user) || isobserver(user)) && cooldowntime > world.time)
|
||||||
to_chat(user, "<span class='cultitalic'>The magic in [src] is too weak, [p_they()] will be ready to use again in [getETA()].</span>")
|
to_chat(user, "<span class='cultitalic'>The magic in [src] is too weak, [p_they()] will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
|
||||||
|
|
||||||
/obj/structure/destructible/cult/examine_status(mob/user)
|
/obj/structure/destructible/cult/examine_status(mob/user)
|
||||||
if(iscultist(user) || isobserver(user))
|
if(iscultist(user) || isobserver(user))
|
||||||
@@ -50,13 +50,6 @@
|
|||||||
animate(src, color = previouscolor, time = 8)
|
animate(src, color = previouscolor, time = 8)
|
||||||
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
|
addtimer(CALLBACK(src, /atom/proc/update_atom_colour), 8)
|
||||||
|
|
||||||
/obj/structure/destructible/cult/proc/getETA()
|
|
||||||
var/time = (cooldowntime - world.time)/600
|
|
||||||
var/eta = "[round(time, 1)] minutes"
|
|
||||||
if(time <= 1)
|
|
||||||
time = (cooldowntime - world.time)*0.1
|
|
||||||
eta = "[round(time, 1)] seconds"
|
|
||||||
return eta
|
|
||||||
|
|
||||||
/obj/structure/destructible/cult/talisman
|
/obj/structure/destructible/cult/talisman
|
||||||
name = "altar"
|
name = "altar"
|
||||||
@@ -72,7 +65,7 @@
|
|||||||
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
|
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
|
||||||
return
|
return
|
||||||
if(cooldowntime > world.time)
|
if(cooldowntime > world.time)
|
||||||
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [getETA()].</span>")
|
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
|
||||||
return
|
return
|
||||||
var/choice = alert(user,"You study the schematics etched into the forge...",,"Eldritch Whetstone","Zealot's Blindfold","Flask of Unholy Water")
|
var/choice = alert(user,"You study the schematics etched into the forge...",,"Eldritch Whetstone","Zealot's Blindfold","Flask of Unholy Water")
|
||||||
var/pickedtype
|
var/pickedtype
|
||||||
@@ -105,7 +98,7 @@
|
|||||||
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
|
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
|
||||||
return
|
return
|
||||||
if(cooldowntime > world.time)
|
if(cooldowntime > world.time)
|
||||||
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [getETA()].</span>")
|
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
|
||||||
return
|
return
|
||||||
var/choice = alert(user,"You study the schematics etched into the forge...",,"Shielded Robe","Flagellant's Robe","Nar-Sien Hardsuit")
|
var/choice = alert(user,"You study the schematics etched into the forge...",,"Shielded Robe","Flagellant's Robe","Nar-Sien Hardsuit")
|
||||||
var/pickedtype
|
var/pickedtype
|
||||||
@@ -212,7 +205,7 @@
|
|||||||
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
|
to_chat(user, "<span class='cultitalic'>You need to anchor [src] to the floor with a tome first.</span>")
|
||||||
return
|
return
|
||||||
if(cooldowntime > world.time)
|
if(cooldowntime > world.time)
|
||||||
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [getETA()].</span>")
|
to_chat(user, "<span class='cultitalic'>The magic in [src] is weak, it will be ready to use again in [DisplayTimeText(cooldowntime - world.time)].</span>")
|
||||||
return
|
return
|
||||||
var/choice = alert(user,"You flip through the black pages of the archives...",,"Supply Talisman","Shuttle Curse","Veil Walker Set")
|
var/choice = alert(user,"You flip through the black pages of the archives...",,"Supply Talisman","Shuttle Curse","Veil Walker Set")
|
||||||
var/list/pickedtype = list()
|
var/list/pickedtype = list()
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
var/flash = " - || - "
|
var/flash = " - || - "
|
||||||
var/obj/machinery/abductor/console/console
|
var/obj/machinery/abductor/console/console
|
||||||
var/message_cooldown = 0
|
var/message_cooldown = 0
|
||||||
var/breakout_time = 0.75
|
var/breakout_time = 450
|
||||||
|
|
||||||
/obj/machinery/abductor/experiment/MouseDrop_T(mob/target, mob/user)
|
/obj/machinery/abductor/experiment/MouseDrop_T(mob/target, mob/user)
|
||||||
if(user.stat || user.lying || !Adjacent(user) || !target.Adjacent(user) || !ishuman(target))
|
if(user.stat || user.lying || !Adjacent(user) || !target.Adjacent(user) || !ishuman(target))
|
||||||
@@ -50,9 +50,9 @@
|
|||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
user.visible_message("<span class='notice'>You see [user] kicking against the door of [src]!</span>", \
|
user.visible_message("<span class='notice'>You see [user] kicking against the door of [src]!</span>", \
|
||||||
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [(breakout_time<1) ? "[breakout_time*60] seconds" : "[breakout_time] minute\s"].)</span>", \
|
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||||
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open)
|
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open)
|
||||||
return
|
return
|
||||||
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
declaring_war = TRUE
|
declaring_war = TRUE
|
||||||
var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [-round((world.time-SSticker.round_start_time - CHALLENGE_TIME_LIMIT)/10)] seconds to decide", "Declare war?", "Yes", "No")
|
var/are_you_sure = alert(user, "Consult your team carefully before you declare war on [station_name()]]. Are you sure you want to alert the enemy crew? You have [DisplayTimeText(world.time-SSticker.round_start_time - CHALLENGE_TIME_LIMIT)] to decide", "Declare war?", "Yes", "No")
|
||||||
declaring_war = FALSE
|
declaring_war = FALSE
|
||||||
|
|
||||||
if(!check_allowed(user))
|
if(!check_allowed(user))
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
to_chat(user, "<span class='danger'>[src] is out of foam and cannot be activated.</span>")
|
to_chat(user, "<span class='danger'>[src] is out of foam and cannot be activated.</span>")
|
||||||
return
|
return
|
||||||
if(cooldown_time > world.time)
|
if(cooldown_time > world.time)
|
||||||
to_chat(user, "<span class='danger'>[src] cannot be activated for another <b>[round((world.time - cooldown_time) * 0.1)]</b> second\s.</span>")
|
to_chat(user, "<span class='danger'>[src] cannot be activated for <b>[DisplayTimeText(world.time - cooldown_time)]</b>.</span>")
|
||||||
return
|
return
|
||||||
new /obj/effect/particle_effect/foam(loc)
|
new /obj/effect/particle_effect/foam(loc)
|
||||||
uses--
|
uses--
|
||||||
|
|||||||
@@ -169,7 +169,7 @@
|
|||||||
if("working")
|
if("working")
|
||||||
temp_html += status
|
temp_html += status
|
||||||
temp_html += "<h1>System Busy</h1>"
|
temp_html += "<h1>System Busy</h1>"
|
||||||
temp_html += "Working ... Please wait ([radduration] Seconds)"
|
temp_html += "Working ... Please wait ([DisplayTimeText(radduration)])"
|
||||||
if("buffer")
|
if("buffer")
|
||||||
temp_html += status
|
temp_html += status
|
||||||
temp_html += buttons
|
temp_html += buttons
|
||||||
|
|||||||
@@ -51,9 +51,7 @@
|
|||||||
d2 = "<A href='?src=\ref[src];time=0'>Stop Time Launch</A>"
|
d2 = "<A href='?src=\ref[src];time=0'>Stop Time Launch</A>"
|
||||||
else
|
else
|
||||||
d2 = "<A href='?src=\ref[src];time=1'>Initiate Time Launch</A>"
|
d2 = "<A href='?src=\ref[src];time=1'>Initiate Time Launch</A>"
|
||||||
var/second = time % 60
|
dat += "<HR>\nTimer System: [d2]\nTime Left: [DisplayTimeText(time)] <A href='?src=\ref[src];tp=-30'>-</A> <A href='?src=\ref[src];tp=-1'>-</A> <A href='?src=\ref[src];tp=1'>+</A> <A href='?src=\ref[src];tp=30'>+</A>"
|
||||||
var/minute = (time - second) / 60
|
|
||||||
dat += "<HR>\nTimer System: [d2]\nTime Left: [minute ? "[minute]:" : null][second] <A href='?src=\ref[src];tp=-30'>-</A> <A href='?src=\ref[src];tp=-1'>-</A> <A href='?src=\ref[src];tp=1'>+</A> <A href='?src=\ref[src];tp=30'>+</A>"
|
|
||||||
var/temp = ""
|
var/temp = ""
|
||||||
var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 )
|
var/list/L = list( 0.25, 0.5, 1, 2, 4, 8, 16 )
|
||||||
for(var/t in L)
|
for(var/t in L)
|
||||||
|
|||||||
@@ -96,7 +96,7 @@
|
|||||||
dat += "</div><br>"
|
dat += "</div><br>"
|
||||||
dat += "<A href='?src=\ref[src];action=select'> Select Track</A><br>"
|
dat += "<A href='?src=\ref[src];action=select'> Select Track</A><br>"
|
||||||
dat += "Track Selected: [selection.song_name]<br>"
|
dat += "Track Selected: [selection.song_name]<br>"
|
||||||
dat += "Track Length: [selection.song_length/10] seconds<br><br>"
|
dat += "Track Length: [DisplayTimeText(selection.song_length)]<br><br>"
|
||||||
dat += "<br>DJ's Soundboard:<b><br>"
|
dat += "<br>DJ's Soundboard:<b><br>"
|
||||||
dat +="<div class='statusDisplay'><div style='text-align:center'>"
|
dat +="<div class='statusDisplay'><div style='text-align:center'>"
|
||||||
dat += "<A href='?src=\ref[src];action=horn'>Air Horn</A> "
|
dat += "<A href='?src=\ref[src];action=horn'>Air Horn</A> "
|
||||||
@@ -122,7 +122,7 @@
|
|||||||
return
|
return
|
||||||
if(!active)
|
if(!active)
|
||||||
if(stop > world.time)
|
if(stop > world.time)
|
||||||
to_chat(usr, "<span class='warning'>Error: The device is still resetting from the last activation, it will be ready again in [round((stop-world.time)/10)] seconds.</span>")
|
to_chat(usr, "<span class='warning'>Error: The device is still resetting from the last activation, it will be ready again in [DisplayTimeText(stop-world.time)].</span>")
|
||||||
playsound(src, 'sound/misc/compiler-failure.ogg', 50, 1)
|
playsound(src, 'sound/misc/compiler-failure.ogg', 50, 1)
|
||||||
return
|
return
|
||||||
active = TRUE
|
active = TRUE
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
var/scan_level
|
var/scan_level
|
||||||
var/precision_coeff
|
var/precision_coeff
|
||||||
var/message_cooldown
|
var/message_cooldown
|
||||||
var/breakout_time = 2
|
var/breakout_time = 1200
|
||||||
|
|
||||||
/obj/machinery/dna_scannernew/RefreshParts()
|
/obj/machinery/dna_scannernew/RefreshParts()
|
||||||
scan_level = 0
|
scan_level = 0
|
||||||
@@ -73,9 +73,9 @@
|
|||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
user.visible_message("<span class='notice'>You see [user] kicking against the door of [src]!</span>", \
|
user.visible_message("<span class='notice'>You see [user] kicking against the door of [src]!</span>", \
|
||||||
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [(breakout_time<1) ? "[breakout_time*60] seconds" : "[breakout_time] minute\s"].)</span>", \
|
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||||
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked)
|
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked)
|
||||||
return
|
return
|
||||||
locked = FALSE
|
locked = FALSE
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ The console is located at computer/gulag_teleporter.dm
|
|||||||
circuit = /obj/item/circuitboard/machine/gulag_teleporter
|
circuit = /obj/item/circuitboard/machine/gulag_teleporter
|
||||||
var/locked = FALSE
|
var/locked = FALSE
|
||||||
var/message_cooldown
|
var/message_cooldown
|
||||||
var/breakout_time = 1
|
var/breakout_time = 600
|
||||||
var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner
|
var/jumpsuit_type = /obj/item/clothing/under/rank/prisoner
|
||||||
var/shoes_type = /obj/item/clothing/shoes/sneakers/orange
|
var/shoes_type = /obj/item/clothing/shoes/sneakers/orange
|
||||||
var/obj/machinery/gulag_item_reclaimer/linked_reclaimer
|
var/obj/machinery/gulag_item_reclaimer/linked_reclaimer
|
||||||
@@ -104,9 +104,9 @@ The console is located at computer/gulag_teleporter.dm
|
|||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
user.visible_message("<span class='notice'>You see [user] kicking against the door of [src]!</span>", \
|
user.visible_message("<span class='notice'>You see [user] kicking against the door of [src]!</span>", \
|
||||||
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [(breakout_time<1) ? "[breakout_time*60] seconds" : "[breakout_time] minute\s"].)</span>", \
|
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||||
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked)
|
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked)
|
||||||
return
|
return
|
||||||
locked = FALSE
|
locked = FALSE
|
||||||
|
|||||||
@@ -79,7 +79,7 @@
|
|||||||
return
|
return
|
||||||
|
|
||||||
if(world.time < last_teleport + teleport_cooldown)
|
if(world.time < last_teleport + teleport_cooldown)
|
||||||
to_chat(user, "<span class='warning'>[src] is recharging power. Please wait [round((last_teleport + teleport_cooldown - world.time) / 10)] seconds.</span>")
|
to_chat(user, "<span class='warning'>[src] is recharging power. Please wait [DisplayTimeText(last_teleport + teleport_cooldown - world.time)].</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
if(teleporting)
|
if(teleporting)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
var/uv_super = FALSE
|
var/uv_super = FALSE
|
||||||
var/uv_cycles = 6
|
var/uv_cycles = 6
|
||||||
var/message_cooldown
|
var/message_cooldown
|
||||||
var/breakout_time = 0.5
|
var/breakout_time = 300
|
||||||
|
|
||||||
/obj/machinery/suit_storage_unit/standard_unit
|
/obj/machinery/suit_storage_unit/standard_unit
|
||||||
suit_type = /obj/item/clothing/suit/space/eva
|
suit_type = /obj/item/clothing/suit/space/eva
|
||||||
@@ -267,9 +267,9 @@
|
|||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
user.visible_message("<span class='notice'>You see [user] kicking against the doors of [src]!</span>", \
|
user.visible_message("<span class='notice'>You see [user] kicking against the doors of [src]!</span>", \
|
||||||
"<span class='notice'>You start kicking against the doors... (this will take about [(breakout_time<1) ? "[breakout_time*60] seconds" : "[breakout_time] minute\s"].)</span>", \
|
"<span class='notice'>You start kicking against the doors... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||||
"<span class='italics'>You hear a thump from [src].</span>")
|
"<span class='italics'>You hear a thump from [src].</span>")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
||||||
return
|
return
|
||||||
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
||||||
|
|||||||
@@ -206,12 +206,12 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
|
|
||||||
/obj/structure/spider/cocoon/container_resist(mob/living/user)
|
/obj/structure/spider/cocoon/container_resist(mob/living/user)
|
||||||
var/breakout_time = 1
|
var/breakout_time = 600
|
||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
to_chat(user, "<span class='notice'>You struggle against the tight bonds... (This will take about [breakout_time] minutes.)</span>")
|
to_chat(user, "<span class='notice'>You struggle against the tight bonds... (This will take about [DisplayTimeText(breakout_time)].)</span>")
|
||||||
visible_message("You see something struggling and writhing in \the [src]!")
|
visible_message("You see something struggling and writhing in \the [src]!")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src))
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src)
|
if(!user || user.stat != CONSCIOUS || user.loc != src)
|
||||||
return
|
return
|
||||||
qdel(src)
|
qdel(src)
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
to_chat(user, "Your name has been sent to your employers for approval.")
|
to_chat(user, "Your name has been sent to your employers for approval.")
|
||||||
// Autoapproves after a certain time
|
// Autoapproves after a certain time
|
||||||
response_timer_id = addtimer(CALLBACK(src, .proc/rename_station, new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE)
|
response_timer_id = addtimer(CALLBACK(src, .proc/rename_station, new_name, user.name, user.real_name, key_name(user)), approval_time, TIMER_STOPPABLE)
|
||||||
to_chat(GLOB.admins, "<span class='adminnotice'><b><font color=orange>CUSTOM STATION RENAME:</font></b>[ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [approval_time / 10] seconds). [ADMIN_SMITE(user)] (<A HREF='?_src_=holder;[HrefToken(TRUE)];reject_custom_name=\ref[src]'>REJECT</A>) [ADMIN_CENTCOM_REPLY(user)]</span>")
|
to_chat(GLOB.admins, "<span class='adminnotice'><b><font color=orange>CUSTOM STATION RENAME:</font></b>[ADMIN_LOOKUPFLW(user)] proposes to rename the [name_type] to [new_name] (will autoapprove in [DisplayTimeText(approval_time)]). [ADMIN_SMITE(user)] (<A HREF='?_src_=holder;[HrefToken(TRUE)];reject_custom_name=\ref[src]'>REJECT</A>) [ADMIN_CENTCOM_REPLY(user)]</span>")
|
||||||
|
|
||||||
/obj/item/station_charter/proc/reject_proposed(user)
|
/obj/item/station_charter/proc/reject_proposed(user)
|
||||||
if(!user)
|
if(!user)
|
||||||
|
|||||||
@@ -176,7 +176,7 @@ MASS SPECTROMETER
|
|||||||
to_chat(user, "<span class='info'>Time of Death:</span> [M.tod]")
|
to_chat(user, "<span class='info'>Time of Death:</span> [M.tod]")
|
||||||
var/tdelta = round(world.time - M.timeofdeath)
|
var/tdelta = round(world.time - M.timeofdeath)
|
||||||
if(tdelta < (DEFIB_TIME_LIMIT * 10))
|
if(tdelta < (DEFIB_TIME_LIMIT * 10))
|
||||||
to_chat(user, "<span class='danger'>Subject died [tdelta / 10] seconds ago, defibrillation may be possible!</span>")
|
to_chat(user, "<span class='danger'>Subject died [DisplayTimeText(tdelta)] ago, defibrillation may be possible!</span>")
|
||||||
|
|
||||||
for(var/thing in M.viruses)
|
for(var/thing in M.viruses)
|
||||||
var/datum/disease/D = thing
|
var/datum/disease/D = thing
|
||||||
|
|||||||
@@ -111,7 +111,6 @@ effective or pretty fucking useless.
|
|||||||
/obj/item/device/healthanalyzer/rad_laser/interact(mob/user)
|
/obj/item/device/healthanalyzer/rad_laser/interact(mob/user)
|
||||||
user.set_machine(src)
|
user.set_machine(src)
|
||||||
|
|
||||||
var/cooldown = GetCooldown()
|
|
||||||
var/dat = "Irradiation: <A href='?src=\ref[src];rad=1'>[irradiate ? "On" : "Off"]</A><br>"
|
var/dat = "Irradiation: <A href='?src=\ref[src];rad=1'>[irradiate ? "On" : "Off"]</A><br>"
|
||||||
dat += "Stealth Mode (NOTE: Deactivates automatically while Irradiation is off): <A href='?src=\ref[src];stealthy=[TRUE]'>[stealth ? "On" : "Off"]</A><br>"
|
dat += "Stealth Mode (NOTE: Deactivates automatically while Irradiation is off): <A href='?src=\ref[src];stealthy=[TRUE]'>[stealth ? "On" : "Off"]</A><br>"
|
||||||
dat += "Scan Mode: <a href='?src=\ref[src];mode=1'>"
|
dat += "Scan Mode: <a href='?src=\ref[src];mode=1'>"
|
||||||
@@ -133,7 +132,7 @@ effective or pretty fucking useless.
|
|||||||
<A href='?src=\ref[src];radwav=-5'>-</A><A href='?src=\ref[src];radwav=-1'>-</A>
|
<A href='?src=\ref[src];radwav=-5'>-</A><A href='?src=\ref[src];radwav=-1'>-</A>
|
||||||
[(wavelength+(intensity*4))]
|
[(wavelength+(intensity*4))]
|
||||||
<A href='?src=\ref[src];radwav=1'>+</A><A href='?src=\ref[src];radwav=5'>+</A><BR>
|
<A href='?src=\ref[src];radwav=1'>+</A><A href='?src=\ref[src];radwav=5'>+</A><BR>
|
||||||
Laser Cooldown: [cooldown] Seconds<BR>
|
Laser Cooldown: [DisplayTimeText(GetCooldown())]<BR>
|
||||||
"}
|
"}
|
||||||
|
|
||||||
var/datum/browser/popup = new(user, "radlaser", "Radioactive Microlaser Interface", 400, 240)
|
var/datum/browser/popup = new(user, "radlaser", "Radioactive Microlaser Interface", 400, 240)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
var/special = FALSE
|
var/special = FALSE
|
||||||
var/special_name = "special function"
|
var/special_name = "special function"
|
||||||
var/message_cooldown
|
var/message_cooldown
|
||||||
var/breakout_time = 1
|
var/breakout_time = 600
|
||||||
|
|
||||||
/obj/machinery/implantchair/Initialize()
|
/obj/machinery/implantchair/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -124,9 +124,9 @@
|
|||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
user.visible_message("<span class='notice'>You see [user] kicking against the door of [src]!</span>", \
|
user.visible_message("<span class='notice'>You see [user] kicking against the door of [src]!</span>", \
|
||||||
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [(breakout_time<1) ? "[breakout_time*60] seconds" : "[breakout_time] minute\s"].)</span>", \
|
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||||
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open)
|
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open)
|
||||||
return
|
return
|
||||||
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
max_integrity = 200
|
max_integrity = 200
|
||||||
integrity_failure = 50
|
integrity_failure = 50
|
||||||
armor = list(melee = 20, bullet = 10, laser = 10, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 70, acid = 60)
|
armor = list(melee = 20, bullet = 10, laser = 10, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 70, acid = 60)
|
||||||
var/breakout_time = 2
|
var/breakout_time = 1200
|
||||||
var/message_cooldown
|
var/message_cooldown
|
||||||
var/can_weld_shut = TRUE
|
var/can_weld_shut = TRUE
|
||||||
var/horizontal = FALSE
|
var/horizontal = FALSE
|
||||||
@@ -366,9 +366,9 @@
|
|||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
user.visible_message("<span class='warning'>[src] begins to shake violently!</span>", \
|
user.visible_message("<span class='warning'>[src] begins to shake violently!</span>", \
|
||||||
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [(breakout_time<1) ? "[breakout_time*60] seconds" : "[breakout_time] minute\s"].)</span>", \
|
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||||
"<span class='italics'>You hear banging from [src].</span>")
|
"<span class='italics'>You hear banging from [src].</span>")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded) )
|
if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded) )
|
||||||
return
|
return
|
||||||
//we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting
|
//we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
icon_state = "crittercrate"
|
icon_state = "crittercrate"
|
||||||
horizontal = FALSE
|
horizontal = FALSE
|
||||||
allow_objects = FALSE
|
allow_objects = FALSE
|
||||||
breakout_time = 1
|
breakout_time = 600
|
||||||
material_drop = /obj/item/stack/sheet/mineral/wood
|
material_drop = /obj/item/stack/sheet/mineral/wood
|
||||||
material_drop_amount = 4
|
material_drop_amount = 4
|
||||||
delivery_icon = "deliverybox"
|
delivery_icon = "deliverybox"
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
var/locked = FALSE
|
var/locked = FALSE
|
||||||
var/opendir = SOUTH
|
var/opendir = SOUTH
|
||||||
var/message_cooldown
|
var/message_cooldown
|
||||||
var/breakout_time = 1
|
var/breakout_time = 600
|
||||||
|
|
||||||
/obj/structure/bodycontainer/Destroy()
|
/obj/structure/bodycontainer/Destroy()
|
||||||
open()
|
open()
|
||||||
@@ -97,9 +97,9 @@
|
|||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
user.visible_message(null, \
|
user.visible_message(null, \
|
||||||
"<span class='notice'>You lean on the back of [src] and start pushing the tray open... (this will take about [(breakout_time<1) ? "[breakout_time*60] seconds" : "[breakout_time] minute\s"].)</span>", \
|
"<span class='notice'>You lean on the back of [src] and start pushing the tray open... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||||
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
"<span class='italics'>You hear a metallic creaking from [src].</span>")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
||||||
return
|
return
|
||||||
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
||||||
|
|||||||
@@ -317,7 +317,7 @@
|
|||||||
dat += "Replacement Game Mode: <B>[SSticker.mode.replacementmode.name]</B><BR>"
|
dat += "Replacement Game Mode: <B>[SSticker.mode.replacementmode.name]</B><BR>"
|
||||||
else
|
else
|
||||||
dat += "Current Game Mode: <B>[SSticker.mode.name]</B><BR>"
|
dat += "Current Game Mode: <B>[SSticker.mode.name]</B><BR>"
|
||||||
dat += "Round Duration: <B>[round(world.time / 36000)]:[add_zero("[world.time / 600 % 60]", 2)]:[world.time / 100 % 6][world.time / 100 % 10]</B><BR>"
|
dat += "Round Duration: <B>[DisplayTimeText(world.time - SSticker.round_start_time)]</B><BR>"
|
||||||
dat += "<B>Emergency shuttle</B><BR>"
|
dat += "<B>Emergency shuttle</B><BR>"
|
||||||
if(EMERGENCY_IDLE_OR_RECALLED)
|
if(EMERGENCY_IDLE_OR_RECALLED)
|
||||||
dat += "<a href='?_src_=holder;[HrefToken()];call_shuttle=1'>Call Shuttle</a><br>"
|
dat += "<a href='?_src_=holder;[HrefToken()];call_shuttle=1'>Call Shuttle</a><br>"
|
||||||
|
|||||||
@@ -114,7 +114,7 @@
|
|||||||
end_time -= start_time
|
end_time -= start_time
|
||||||
to_chat(usr, "<span class='admin'>SDQL query results: [query_text]</span>")
|
to_chat(usr, "<span class='admin'>SDQL query results: [query_text]</span>")
|
||||||
to_chat(usr, "<span class='admin'>SDQL query completed: [objs_all] objects selected by path, and [objs_eligible] objects executed on after WHERE filtering if applicable.</span>")
|
to_chat(usr, "<span class='admin'>SDQL query completed: [objs_all] objects selected by path, and [objs_eligible] objects executed on after WHERE filtering if applicable.</span>")
|
||||||
to_chat(usr, "<span class='admin'>SDQL query took [end_time/10] seconds to complete.</span>")
|
to_chat(usr, "<span class='admin'>SDQL query took [DisplayTimeText(end_time)] to complete.</span>")
|
||||||
|
|
||||||
/proc/SDQL_qdel_datum(datum/d)
|
/proc/SDQL_qdel_datum(datum/d)
|
||||||
qdel(d)
|
qdel(d)
|
||||||
|
|||||||
@@ -399,9 +399,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new)
|
|||||||
dat += "</b>[GLOB.TAB][TicketHref("Refresh", ref_src)][GLOB.TAB][TicketHref("Re-Title", ref_src, "retitle")]"
|
dat += "</b>[GLOB.TAB][TicketHref("Refresh", ref_src)][GLOB.TAB][TicketHref("Re-Title", ref_src, "retitle")]"
|
||||||
if(state != AHELP_ACTIVE)
|
if(state != AHELP_ACTIVE)
|
||||||
dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]"
|
dat += "[GLOB.TAB][TicketHref("Reopen", ref_src, "reopen")]"
|
||||||
dat += "<br><br>Opened at: [gameTimestamp(wtime = opened_at)] (Approx [(world.time - opened_at) / 600] minutes ago)"
|
dat += "<br><br>Opened at: [gameTimestamp(wtime = opened_at)] (Approx [DisplayTimeText(world.time - opened_at)] ago)"
|
||||||
if(closed_at)
|
if(closed_at)
|
||||||
dat += "<br>Closed at: [gameTimestamp(wtime = closed_at)] (Approx [(world.time - closed_at) / 600] minutes ago)"
|
dat += "<br>Closed at: [gameTimestamp(wtime = closed_at)] (Approx [DisplayTimeText(world.time - closed_at)] ago)"
|
||||||
dat += "<br><br>"
|
dat += "<br><br>"
|
||||||
if(initiator)
|
if(initiator)
|
||||||
dat += "<b>Actions:</b> [FullMonty(ref_src)]<br>"
|
dat += "<b>Actions:</b> [FullMonty(ref_src)]<br>"
|
||||||
|
|||||||
@@ -43,8 +43,8 @@
|
|||||||
log_admin("DEBUG: [key_name(M)] next_move = [M.next_move] lastDblClick = [M.next_click] world.time = [world.time]")
|
log_admin("DEBUG: [key_name(M)] next_move = [M.next_move] lastDblClick = [M.next_click] world.time = [world.time]")
|
||||||
M.next_move = 1
|
M.next_move = 1
|
||||||
M.next_click = 0
|
M.next_click = 0
|
||||||
message_admins("[key_name_admin(largest_move_mob)] had the largest move delay with [largest_move_time] frames / [largest_move_time/10] seconds!")
|
message_admins("[key_name_admin(largest_move_mob)] had the largest move delay with [largest_move_time] frames / [DisplayTimeText(largest_move_time)]!")
|
||||||
message_admins("[key_name_admin(largest_click_mob)] had the largest click delay with [largest_click_time] frames / [largest_click_time/10] seconds!")
|
message_admins("[key_name_admin(largest_click_mob)] had the largest click delay with [largest_click_time] frames / [DisplayTimeText(largest_click_time)]!")
|
||||||
message_admins("world.time = [world.time]")
|
message_admins("world.time = [world.time]")
|
||||||
SSblackbox.add_details("admin_verb","Unfreeze Everyone") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
SSblackbox.add_details("admin_verb","Unfreeze Everyone") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
var/escape_in_progress = FALSE
|
var/escape_in_progress = FALSE
|
||||||
var/message_cooldown
|
var/message_cooldown
|
||||||
var/breakout_time = 0.5
|
var/breakout_time = 300
|
||||||
|
|
||||||
/obj/machinery/atmospherics/components/unary/cryo_cell/Initialize()
|
/obj/machinery/atmospherics/components/unary/cryo_cell/Initialize()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -246,9 +246,9 @@
|
|||||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||||
user.visible_message("<span class='notice'>You see [user] kicking against the glass of [src]!</span>", \
|
user.visible_message("<span class='notice'>You see [user] kicking against the glass of [src]!</span>", \
|
||||||
"<span class='notice'>You struggle inside [src], kicking the release with your foot... (this will take about [(breakout_time<1) ? "[breakout_time*60] seconds" : "[breakout_time] minute\s"].)</span>", \
|
"<span class='notice'>You struggle inside [src], kicking the release with your foot... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||||
"<span class='italics'>You hear a thump from [src].</span>")
|
"<span class='italics'>You hear a thump from [src].</span>")
|
||||||
if(do_after(user,(breakout_time*60*10), target = src)) //minutes * 60seconds * 10deciseconds
|
if(do_after(user,(breakout_time), target = src))
|
||||||
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
||||||
return
|
return
|
||||||
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
||||||
|
|||||||
@@ -210,7 +210,7 @@
|
|||||||
return
|
return
|
||||||
if(user.ckey in team_members)
|
if(user.ckey in team_members)
|
||||||
if(user.ckey in recently_dead_ckeys)
|
if(user.ckey in recently_dead_ckeys)
|
||||||
to_chat(user, "It must be more than [respawn_cooldown/10] seconds from your last death to respawn!")
|
to_chat(user, "It must be more than [DisplayTimeText(respawn_cooldown)] from your last death to respawn!")
|
||||||
return
|
return
|
||||||
var/client/new_team_member = user.client
|
var/client/new_team_member = user.client
|
||||||
if(user.mind && user.mind.current)
|
if(user.mind && user.mind.current)
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ GLOBAL_DATUM(the_gateway, /obj/machinery/gateway/centerstation)
|
|||||||
to_chat(user, "<span class='notice'>Error: No destination found.</span>")
|
to_chat(user, "<span class='notice'>Error: No destination found.</span>")
|
||||||
return
|
return
|
||||||
if(world.time < wait)
|
if(world.time < wait)
|
||||||
to_chat(user, "<span class='notice'>Error: Warpspace triangulation in progress. Estimated time to completion: [round(((wait - world.time) / 10) / 60)] minutes.</span>")
|
to_chat(user, "<span class='notice'>Error: Warpspace triangulation in progress. Estimated time to completion: [DisplayTimeText(wait - world.time)].</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
for(var/obj/machinery/gateway/G in linked)
|
for(var/obj/machinery/gateway/G in linked)
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0)
|
|||||||
if(usrinfo) //If this info isn't null, it hasn't been added yet
|
if(usrinfo) //If this info isn't null, it hasn't been added yet
|
||||||
desclines.Add(usrinfo)
|
desclines.Add(usrinfo)
|
||||||
if(silencing)
|
if(silencing)
|
||||||
desclines += " (This error will now be silenced for [configured_error_silence_time / 600] minutes)"
|
desclines += " (This error will now be silenced for [DisplayTimeText(configured_error_silence_time)])"
|
||||||
if(GLOB.error_cache)
|
if(GLOB.error_cache)
|
||||||
GLOB.error_cache.log_error(E, desclines)
|
GLOB.error_cache.log_error(E, desclines)
|
||||||
|
|
||||||
|
|||||||
@@ -391,12 +391,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/mob/dead/new_player/proc/LateChoices()
|
/mob/dead/new_player/proc/LateChoices()
|
||||||
var/mills = world.time - SSticker.round_start_time // 1/10 of a second, not real milliseconds but whatever
|
var/dat = "<div class='notice'>Round Duration: [DisplayTimeText(world.time - SSticker.round_start_time)]</div>"
|
||||||
//var/secs = ((mills % 36000) % 600) / 10 //Not really needed, but I'll leave it here for refrence.. or something
|
|
||||||
var/mins = (mills % 36000) / 600
|
|
||||||
var/hours = mills / 36000
|
|
||||||
|
|
||||||
var/dat = "<div class='notice'>Round Duration: [round(hours)]h [round(mins)]m</div>"
|
|
||||||
|
|
||||||
if(SSshuttle.emergency)
|
if(SSshuttle.emergency)
|
||||||
switch(SSshuttle.emergency.mode)
|
switch(SSshuttle.emergency.mode)
|
||||||
|
|||||||
@@ -296,10 +296,9 @@
|
|||||||
return
|
return
|
||||||
I.being_removed = TRUE
|
I.being_removed = TRUE
|
||||||
breakouttime = I.breakouttime
|
breakouttime = I.breakouttime
|
||||||
var/displaytime = breakouttime / 600
|
|
||||||
if(!cuff_break)
|
if(!cuff_break)
|
||||||
visible_message("<span class='warning'>[src] attempts to remove [I]!</span>")
|
visible_message("<span class='warning'>[src] attempts to remove [I]!</span>")
|
||||||
to_chat(src, "<span class='notice'>You attempt to remove [I]... (This will take around [displaytime] minutes and you need to stand still.)</span>")
|
to_chat(src, "<span class='notice'>You attempt to remove [I]... (This will take around [DisplayTimeText(breakouttime)] and you need to stand still.)</span>")
|
||||||
if(do_after(src, breakouttime, 0, target = src))
|
if(do_after(src, breakouttime, 0, target = src))
|
||||||
clear_cuffs(I, cuff_break)
|
clear_cuffs(I, cuff_break)
|
||||||
else
|
else
|
||||||
|
|||||||
@@ -231,7 +231,7 @@
|
|||||||
if(!I || I.loc != src) //no item, no limb, or item is not in limb or in the person anymore
|
if(!I || I.loc != src) //no item, no limb, or item is not in limb or in the person anymore
|
||||||
return
|
return
|
||||||
var/time_taken = I.embedded_unsafe_removal_time*I.w_class
|
var/time_taken = I.embedded_unsafe_removal_time*I.w_class
|
||||||
usr.visible_message("<span class='warning'>[usr] attempts to remove [I] from their [L.name].</span>","<span class='notice'>You attempt to remove [I] from your [L.name]... (It will take [time_taken/10] seconds.)</span>")
|
usr.visible_message("<span class='warning'>[usr] attempts to remove [I] from their [L.name].</span>","<span class='notice'>You attempt to remove [I] from your [L.name]... (It will take [DisplayTimeText(time_taken)].)</span>")
|
||||||
if(do_after(usr, time_taken, needhand = 1, target = src))
|
if(do_after(usr, time_taken, needhand = 1, target = src))
|
||||||
if(!I || !L || I.loc != src || !(I in L.embedded_objects))
|
if(!I || !L || I.loc != src || !(I in L.embedded_objects))
|
||||||
return
|
return
|
||||||
|
|||||||
@@ -97,7 +97,7 @@
|
|||||||
/mob/living/silicon/ai/proc/announcement()
|
/mob/living/silicon/ai/proc/announcement()
|
||||||
var/static/announcing_vox = 0 // Stores the time of the last announcement
|
var/static/announcing_vox = 0 // Stores the time of the last announcement
|
||||||
if(announcing_vox > world.time)
|
if(announcing_vox > world.time)
|
||||||
to_chat(src, "<span class='notice'>Please wait [round((announcing_vox - world.time) / 10)] seconds.</span>")
|
to_chat(src, "<span class='notice'>Please wait [DisplayTimeText(announcing_vox - world.time)].</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", src.last_announcement) as text
|
var/message = input(src, "WARNING: Misuse of this verb can result in you being job banned. More help is available in 'Announcement Help'", "Announcement", src.last_announcement) as text
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
|
|||||||
resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5)
|
resulthealth = round((summoner.health / summoner.maxHealth) * 100, 0.5)
|
||||||
stat(null, "Summoner Health: [resulthealth]%")
|
stat(null, "Summoner Health: [resulthealth]%")
|
||||||
if(cooldown >= world.time)
|
if(cooldown >= world.time)
|
||||||
stat(null, "Manifest/Recall Cooldown Remaining: [max(round((cooldown - world.time)*0.1, 0.1), 0)] seconds")
|
stat(null, "Manifest/Recall Cooldown Remaining: [DisplayTimeText(cooldown - world.time)]")
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/guardian/Move() //Returns to summoner if they move out of range
|
/mob/living/simple_animal/hostile/guardian/Move() //Returns to summoner if they move out of range
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
..()
|
..()
|
||||||
if(statpanel("Status"))
|
if(statpanel("Status"))
|
||||||
if(stealthcooldown >= world.time)
|
if(stealthcooldown >= world.time)
|
||||||
stat(null, "Stealth Cooldown Remaining: [max(round((stealthcooldown - world.time)*0.1, 0.1), 0)] seconds")
|
stat(null, "Stealth Cooldown Remaining: [DisplayTimeText(stealthcooldown - world.time)]")
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/guardian/assassin/AttackingTarget()
|
/mob/living/simple_animal/hostile/guardian/assassin/AttackingTarget()
|
||||||
. = ..()
|
. = ..()
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
updatestealthalert()
|
updatestealthalert()
|
||||||
toggle = TRUE
|
toggle = TRUE
|
||||||
else if(!forced)
|
else if(!forced)
|
||||||
to_chat(src, "<span class='danger'><B>You cannot yet enter stealth, wait another [max(round((stealthcooldown - world.time)*0.1, 0.1), 0)] seconds!</span></B>")
|
to_chat(src, "<span class='danger'><B>You cannot yet enter stealth, wait another [DisplayTimeText(stealthcooldown - world.time)]!</span></B>")
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/guardian/assassin/proc/updatestealthalert()
|
/mob/living/simple_animal/hostile/guardian/assassin/proc/updatestealthalert()
|
||||||
if(stealthcooldown <= world.time)
|
if(stealthcooldown <= world.time)
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
..()
|
..()
|
||||||
if(statpanel("Status"))
|
if(statpanel("Status"))
|
||||||
if(bomb_cooldown >= world.time)
|
if(bomb_cooldown >= world.time)
|
||||||
stat(null, "Bomb Cooldown Remaining: [max(round((bomb_cooldown - world.time)*0.1, 0.1), 0)] seconds")
|
stat(null, "Bomb Cooldown Remaining: [DisplayTimeText(bomb_cooldown - world.time)]")
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/guardian/bomb/AttackingTarget()
|
/mob/living/simple_animal/hostile/guardian/bomb/AttackingTarget()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
..()
|
..()
|
||||||
if(statpanel("Status"))
|
if(statpanel("Status"))
|
||||||
if(beacon_cooldown >= world.time)
|
if(beacon_cooldown >= world.time)
|
||||||
stat(null, "Beacon Cooldown Remaining: [max(round((beacon_cooldown - world.time)*0.1, 0.1), 0)] seconds")
|
stat(null, "Beacon Cooldown Remaining: [DisplayTimeText(beacon_cooldown - world.time)]")
|
||||||
|
|
||||||
/mob/living/simple_animal/hostile/guardian/healer/AttackingTarget()
|
/mob/living/simple_animal/hostile/guardian/healer/AttackingTarget()
|
||||||
. = ..()
|
. = ..()
|
||||||
|
|||||||
@@ -20,7 +20,7 @@
|
|||||||
if(href_list["move"])
|
if(href_list["move"])
|
||||||
var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit
|
var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit
|
||||||
if(board.challenge && world.time < SYNDICATE_CHALLENGE_TIMER)
|
if(board.challenge && world.time < SYNDICATE_CHALLENGE_TIMER)
|
||||||
to_chat(usr, "<span class='warning'>You've issued a combat challenge to the station! You've got to give them at least [round(((SYNDICATE_CHALLENGE_TIMER - world.time) / 10) / 60)] more minutes to allow them to prepare.</span>")
|
to_chat(usr, "<span class='warning'>You've issued a combat challenge to the station! You've got to give them at least [DisplayTimeText(SYNDICATE_CHALLENGE_TIMER - world.time)] more to allow them to prepare.</span>")
|
||||||
return 0
|
return 0
|
||||||
board.moved = TRUE
|
board.moved = TRUE
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ a.updated {
|
|||||||
mystocks = S.shareholders[logged_in]
|
mystocks = S.shareholders[logged_in]
|
||||||
dat += "<hr /><div class='stock'><span class='company'>[S.name]</span> <span class='s_company'>([S.short_name])</span>[S.bankrupt ? " <b style='color:red'>BANKRUPT</b>" : null]<br>"
|
dat += "<hr /><div class='stock'><span class='company'>[S.name]</span> <span class='s_company'>([S.short_name])</span>[S.bankrupt ? " <b style='color:red'>BANKRUPT</b>" : null]<br>"
|
||||||
if (S.last_unification)
|
if (S.last_unification)
|
||||||
dat += "<b>Unified shares</b> [(world.time - S.last_unification) / 600] minutes ago.<br>"
|
dat += "<b>Unified shares</b> [DisplayTimeText(world.time - S.last_unification)] ago.<br>"
|
||||||
dat += "<b>Current value per share:</b> [S.current_value] | <a href='?src=\ref[src];viewhistory=\ref[S]'>View history</a><br><br>"
|
dat += "<b>Current value per share:</b> [S.current_value] | <a href='?src=\ref[src];viewhistory=\ref[S]'>View history</a><br><br>"
|
||||||
dat += "You currently own <b>[mystocks]</b> shares in this company. There are [S.available_shares] purchasable shares on the market currently.<br>"
|
dat += "You currently own <b>[mystocks]</b> shares in this company. There are [S.available_shares] purchasable shares on the market currently.<br>"
|
||||||
if (S.bankrupt)
|
if (S.bankrupt)
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
else
|
else
|
||||||
cooldown = revive_cost + world.time
|
cooldown = revive_cost + world.time
|
||||||
reviving = FALSE
|
reviving = FALSE
|
||||||
to_chat(owner, "<span class='notice'>Your reviver implant shuts down and starts recharging. It will be ready again in [revive_cost/10] seconds.</span>")
|
to_chat(owner, "<span class='notice'>Your reviver implant shuts down and starts recharging. It will be ready again in [DisplayTimeText(revive_cost)].</span>")
|
||||||
return
|
return
|
||||||
|
|
||||||
if(cooldown > world.time)
|
if(cooldown > world.time)
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
if(!IsAvailable())
|
if(!IsAvailable())
|
||||||
if(world.time < cords.next_command)
|
if(world.time < cords.next_command)
|
||||||
to_chat(owner, "<span class='notice'>You must wait [(cords.next_command - world.time)/10] seconds before Speaking again.</span>")
|
to_chat(owner, "<span class='notice'>You must wait [DisplayTimeText(cords.next_command - world.time)] before Speaking again.</span>")
|
||||||
return
|
return
|
||||||
var/command = input(owner, "Speak with the Voice of God", "Command")
|
var/command = input(owner, "Speak with the Voice of God", "Command")
|
||||||
if(QDELETED(src) || QDELETED(owner))
|
if(QDELETED(src) || QDELETED(owner))
|
||||||
@@ -102,7 +102,7 @@
|
|||||||
|
|
||||||
/obj/item/organ/vocal_cords/colossus/can_speak_with()
|
/obj/item/organ/vocal_cords/colossus/can_speak_with()
|
||||||
if(world.time < next_command)
|
if(world.time < next_command)
|
||||||
to_chat(owner, "<span class='notice'>You must wait [(next_command - world.time)/10] seconds before Speaking again.</span>")
|
to_chat(owner, "<span class='notice'>You must wait [DisplayTimeText(next_command - world.time)] before Speaking again.</span>")
|
||||||
return FALSE
|
return FALSE
|
||||||
if(!owner)
|
if(!owner)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|||||||
Reference in New Issue
Block a user