mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 06:29:23 +01:00
Merge remote-tracking branch 'tgstation/master' into upstream-6-2-2026
This commit is contained in:
@@ -16,6 +16,8 @@
|
||||
var/datum/lazy_template/virtual_domain/generated_domain
|
||||
/// If the current domain was a random selection
|
||||
var/domain_randomized = FALSE
|
||||
/// Whether the domain is finished, so the bitrunners can leave despite glitches
|
||||
var/domain_complete = FALSE
|
||||
/// Prevents multiple user actions. Handled by loading domains and cooldowns
|
||||
var/is_ready = TRUE
|
||||
/// Chance multipled by threat to spawn a glitch
|
||||
|
||||
@@ -80,6 +80,8 @@
|
||||
generated_domain.disk_reward_spawned = TRUE
|
||||
|
||||
chosen_forge.start_to_spawn(reward_cache)
|
||||
|
||||
domain_complete = TRUE
|
||||
return TRUE
|
||||
|
||||
|
||||
|
||||
@@ -53,12 +53,12 @@
|
||||
scrub_vdom()
|
||||
is_ready = TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
|
||||
|
||||
//We will want to record how the domain was selected. Either entirely randomly, with the name redacted, or with full information.
|
||||
//Without this, it is difficult to determine what domains are selected more often intentionallly, vs unintentionally.
|
||||
var/selection_type
|
||||
|
||||
|
||||
if(was_random_selection)
|
||||
selection_type = "random selection"
|
||||
else
|
||||
@@ -168,8 +168,7 @@
|
||||
continue
|
||||
|
||||
if(istype(thing, /obj/effect/landmark/bitrunning/loot_signal))
|
||||
var/turf/signaler_turf = get_turf(thing)
|
||||
signaler_turf.AddComponent(/datum/component/bitrunning_points, generated_domain)
|
||||
generated_domain.main_crate_loc = thing.loc
|
||||
qdel(thing)
|
||||
continue
|
||||
|
||||
@@ -200,6 +199,7 @@
|
||||
/// Stops the current virtual domain and disconnects all users
|
||||
/obj/machinery/quantum_server/proc/reset(fast = FALSE)
|
||||
is_ready = FALSE
|
||||
domain_complete = FALSE
|
||||
|
||||
sever_connections()
|
||||
|
||||
|
||||
@@ -142,6 +142,22 @@
|
||||
aas.broadcast("QUANTUM SERVER ALERT: Fabrication protocols have crashed unexpectedly. Please evacuate the area.", list(RADIO_CHANNEL_SUPPLY))
|
||||
timeout = 10 SECONDS
|
||||
|
||||
var/bitrunners_alive = 0
|
||||
var/island_brawl_exception = istype(generated_domain, /datum/lazy_template/virtual_domain/island_brawl)
|
||||
for(var/datum/weakref/bitrunner_ref in avatar_connection_refs)
|
||||
var/mob/living/bitrunner = astype(bitrunner_ref.resolve(), /datum/component/avatar_connection)?.parent
|
||||
if(!bitrunner)
|
||||
continue
|
||||
if((bitrunner.stat > CONSCIOUS) || !bitrunner.client)
|
||||
continue
|
||||
if(island_brawl_exception)
|
||||
timeout *= max(5 - generated_domain.main_crate_points, 1)
|
||||
continue
|
||||
bitrunners_alive++
|
||||
timeout *= 5
|
||||
if(bitrunners_alive)
|
||||
to_chat(antag, span_warning("[bitrunners_alive] criminals still remain here, pilfering your domain. It will be more difficult to leave until they are handled."))
|
||||
|
||||
if(!do_after(antag, timeout) || QDELETED(chosen_forge) || QDELETED(antag) || QDELETED(src) || !is_ready || !is_operational)
|
||||
chosen_forge.setup_particles()
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user