mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-31 09:08:30 +01:00
Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
convert_agent()
|
||||
|
||||
var/datum/martial_art/the_sleeping_carp/carp = new()
|
||||
var/datum/martial_art/the_sleeping_carp/carp = new(src)
|
||||
carp.teach(owner.current)
|
||||
|
||||
/datum/outfit/cyber_police
|
||||
@@ -37,4 +37,3 @@
|
||||
officer_uniform.has_sensor = NO_SENSORS
|
||||
officer_uniform.sensor_mode = SENSOR_OFF
|
||||
user.update_suit_sensors()
|
||||
|
||||
|
||||
@@ -222,7 +222,7 @@
|
||||
|
||||
|
||||
//if your bitrunning avatar somehow manages to acquire and consume a red pill, they will be ejected from the Matrix
|
||||
/datum/component/avatar_connection/proc/disconnect_if_red_pill(datum/source, obj/item/reagent_containers/pill/pill, mob/feeder)
|
||||
/datum/component/avatar_connection/proc/disconnect_if_red_pill(datum/source, obj/item/reagent_containers/applicator/pill/pill, mob/feeder)
|
||||
SIGNAL_HANDLER
|
||||
if(pill.icon_state == "pill4")
|
||||
full_avatar_disconnect()
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
|
||||
|
||||
/datum/component/bitrunning_points/Initialize(datum/lazy_template/virtual_domain/domain)
|
||||
. = ..()
|
||||
if(!isturf(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
|
||||
@@ -1,19 +1,35 @@
|
||||
/// Handles all special considerations for "virtual entities" such as bitrunning ghost roles or digital anomaly antagonists.
|
||||
/datum/component/virtual_entity
|
||||
///The cooldown for balloon alerts, so the player isn't spammed while trying to enter a restricted area.
|
||||
/// The cooldown for balloon alerts, so the player isn't spammed while trying to enter a restricted area.
|
||||
COOLDOWN_DECLARE(OOB_cooldown)
|
||||
|
||||
/datum/component/virtual_entity/Initialize(obj/machinery/quantum_server)
|
||||
. = ..()
|
||||
|
||||
/datum/component/virtual_entity/Initialize(obj/machinery/quantum_server)
|
||||
if(quantum_server.obj_flags & EMAGGED)
|
||||
jailbreak_mobs() //This just sends a message and self-deletes, a bit messy but it works.
|
||||
return
|
||||
jailbreak_mobs()
|
||||
return COMPONENT_REDUNDANT
|
||||
|
||||
RegisterSignal(parent, COMSIG_MOVABLE_PRE_MOVE, PROC_REF(on_parent_pre_move))
|
||||
RegisterSignal(quantum_server, COMSIG_ATOM_EMAG_ACT, PROC_REF(jailbreak_mobs))
|
||||
RegisterSignal(quantum_server, COMSIG_ATOM_EMAG_ACT, PROC_REF(on_emagged))
|
||||
|
||||
///Prevents entry to a certain area if it has flags preventing virtual entities from entering.
|
||||
|
||||
/// Self-destructs the component, allowing free-roam by all entities with this restriction.
|
||||
/datum/component/virtual_entity/proc/jailbreak_mobs()
|
||||
to_chat(parent, span_bolddanger("You shiver for a moment with a sense of clarity you haven't felt before."))
|
||||
to_chat(parent, span_notice("You could go <i>anywhere</i>, do <i>anything</i>! You could leave this simulation right now if you wanted!"))
|
||||
to_chat(parent, span_danger("But be warned, quantum entanglement will interfere with any previous lives."))
|
||||
to_chat(parent, span_notice("You'll have just one chance to go nova, and there's no turning back."))
|
||||
|
||||
|
||||
/// Remove any restrictions AFTER the mob has spawned
|
||||
/datum/component/virtual_entity/proc/on_emagged(datum/source)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
jailbreak_mobs()
|
||||
qdel(src)
|
||||
|
||||
|
||||
/// Prevents entry to a certain area if it has flags preventing virtual entities from entering.
|
||||
/datum/component/virtual_entity/proc/on_parent_pre_move(atom/movable/source, atom/new_location)
|
||||
SIGNAL_HANDLER
|
||||
|
||||
@@ -27,12 +43,3 @@
|
||||
COOLDOWN_START(src, OOB_cooldown, 2 SECONDS)
|
||||
return COMPONENT_MOVABLE_BLOCK_PRE_MOVE
|
||||
|
||||
///Self-destructs the component, allowing free-roam by all entities with this restriction.
|
||||
/datum/component/virtual_entity/proc/jailbreak_mobs()
|
||||
SIGNAL_HANDLER
|
||||
|
||||
to_chat(parent, span_bolddanger("You shiver for a moment with a sense of clarity you haven't felt before."))
|
||||
to_chat(parent, span_notice("You could go <i>anywhere</i>, do <i>anything</i>! You could leave this simulation right now if you wanted!"))
|
||||
to_chat(parent, span_danger("But be warned, quantum entanglement will interfere with any previous lives."))
|
||||
to_chat(parent, span_notice("You'll have just one chance to go nova, and there's no turning back."))
|
||||
qdel(src)
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
hidden = TRUE
|
||||
crate_name = "bitrunning delivery crate"
|
||||
access = list(ACCESS_BIT_DEN)
|
||||
test_ignored = TRUE
|
||||
|
||||
/datum/supply_pack/bitrunning/New(purchaser, cost, list/contains)
|
||||
. = ..()
|
||||
|
||||
@@ -49,20 +49,21 @@
|
||||
/// Cooldown between being able to toggle broadcasting
|
||||
COOLDOWN_DECLARE(broadcast_toggle_cd)
|
||||
|
||||
|
||||
/obj/machinery/quantum_server/post_machine_initialize()
|
||||
. = ..()
|
||||
|
||||
RegisterSignals(src, list(COMSIG_MACHINERY_BROKEN, COMSIG_MACHINERY_POWER_LOST), PROC_REF(on_broken))
|
||||
RegisterSignal(src, COMSIG_QDELETING, PROC_REF(on_delete))
|
||||
|
||||
/obj/machinery/quantum_server/Destroy(force)
|
||||
. = ..()
|
||||
|
||||
/obj/machinery/quantum_server/Destroy(force)
|
||||
mutation_candidate_refs.Cut()
|
||||
avatar_connection_refs.Cut()
|
||||
spawned_threat_refs.Cut()
|
||||
QDEL_NULL(exit_turfs)
|
||||
exit_turfs.Cut()
|
||||
QDEL_NULL(generated_domain)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/quantum_server/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -88,6 +89,7 @@
|
||||
if(isobserver(user) && (obj_flags & EMAGGED))
|
||||
. += span_notice("Ominous warning lights are blinking red. This server has been tampered with.")
|
||||
|
||||
|
||||
/obj/machinery/quantum_server/emag_act(mob/user, obj/item/card/emag/emag_card)
|
||||
. = ..()
|
||||
|
||||
@@ -102,6 +104,7 @@
|
||||
balloon_alert(user, "system jailbroken...")
|
||||
playsound(src, 'sound/effects/sparks/sparks1.ogg', 35, vary = TRUE)
|
||||
|
||||
|
||||
/obj/machinery/quantum_server/update_appearance(updates)
|
||||
if(isnull(generated_domain) || !is_operational)
|
||||
set_light(l_on = FALSE)
|
||||
@@ -110,6 +113,7 @@
|
||||
set_light(l_range = 2, l_power = 1.5, l_color = is_ready ? LIGHT_COLOR_BABY_BLUE : LIGHT_COLOR_FIRE, l_on = TRUE)
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/machinery/quantum_server/update_icon_state()
|
||||
if(isnull(generated_domain) || !is_operational)
|
||||
icon_state = base_icon_state
|
||||
@@ -118,6 +122,7 @@
|
||||
icon_state = "[base_icon_state]_[is_ready ? "on" : "off"]"
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/machinery/quantum_server/attackby(obj/item/weapon, mob/user, params)
|
||||
. = ..()
|
||||
|
||||
@@ -129,6 +134,7 @@
|
||||
capacitor_coefficient = 0.1
|
||||
points = 100
|
||||
|
||||
|
||||
/obj/machinery/quantum_server/crowbar_act(mob/living/user, obj/item/crowbar)
|
||||
. = ..()
|
||||
|
||||
@@ -142,6 +148,7 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
/obj/machinery/quantum_server/screwdriver_act(mob/living/user, obj/item/screwdriver)
|
||||
. = ..()
|
||||
|
||||
@@ -152,6 +159,7 @@
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
|
||||
/obj/machinery/quantum_server/RefreshParts()
|
||||
var/capacitor_rating = 1.15
|
||||
var/datum/stock_part/capacitor/cap = locate() in component_parts
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
if(!length(possible_turfs)) // Out of turfs to place a curiosity
|
||||
return FALSE
|
||||
|
||||
if(generated_domain.secondary_loot_generated >= assoc_value_sum(generated_domain.secondary_loot)) // Out of curiosities to place
|
||||
if(generated_domain.secondary_loot_generated >= counterlist_sum(generated_domain.secondary_loot)) // Out of curiosities to place
|
||||
return FALSE
|
||||
|
||||
shuffle_inplace(possible_turfs)
|
||||
|
||||
Reference in New Issue
Block a user