[Ready]Bluespace research updates (#40245)

* Quantum Keycards

* Bluespace research updates

* .

* ..

* codersprites

* costier

* moved portal gun

* removes hand tele
This commit is contained in:
XDTM
2018-09-24 11:30:07 +02:00
committed by yogstation13-bot
parent 9f75c1cb59
commit 72cf8fda62
6 changed files with 87 additions and 25 deletions

View File

@@ -73,16 +73,27 @@
else
to_chat(user, "<span class='warning'>There is no quantum pad data saved in [I]'s buffer!</span>")
return TRUE
else if(istype(I, /obj/item/quantum_keycard))
var/obj/item/quantum_keycard/K = I
if(K.qpad)
to_chat(user, "<span class='notice'>You insert [K] into [src]'s card slot, activating it.</span>")
interact(user, K.qpad)
else
to_chat(user, "<span class='notice'>You insert [K] into [src]'s card slot, initiating the link procedure.</span>")
if(do_after(user, 40, target = src))
to_chat(user, "<span class='notice'>You complete the link between [K] and [src].</span>")
K.qpad = src
if(default_deconstruction_crowbar(I))
return
return ..()
/obj/machinery/quantumpad/interact(mob/user)
if(!linked_pad || QDELETED(linked_pad))
/obj/machinery/quantumpad/interact(mob/user, obj/machinery/quantumpad/target_pad = linked_pad)
if(!target_pad || QDELETED(target_pad))
if(!map_pad_link_id || !initMappedLink())
to_chat(user, "<span class='warning'>There is no linked pad!</span>")
to_chat(user, "<span class='warning'>Target pad not found!</span>")
return
if(world.time < last_teleport + teleport_cooldown)
@@ -93,15 +104,15 @@
to_chat(user, "<span class='warning'>[src] is charging up. Please wait.</span>")
return
if(linked_pad.teleporting)
to_chat(user, "<span class='warning'>Linked pad is busy. Please wait.</span>")
if(target_pad.teleporting)
to_chat(user, "<span class='warning'>Target pad is busy. Please wait.</span>")
return
if(linked_pad.stat & NOPOWER)
to_chat(user, "<span class='warning'>Linked pad is not responding to ping.</span>")
if(target_pad.stat & NOPOWER)
to_chat(user, "<span class='warning'>Target pad is not responding to ping.</span>")
return
add_fingerprint(user)
doteleport(user)
doteleport(user, target_pad)
/obj/machinery/quantumpad/proc/sparks()
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
@@ -117,8 +128,8 @@
if(linked_pad)
ghost.forceMove(get_turf(linked_pad))
/obj/machinery/quantumpad/proc/doteleport(mob/user)
if(linked_pad)
/obj/machinery/quantumpad/proc/doteleport(mob/user, obj/machinery/quantumpad/target_pad = linked_pad)
if(target_pad)
playsound(get_turf(src), 'sound/weapons/flash.ogg', 25, 1)
teleporting = TRUE
@@ -130,7 +141,7 @@
to_chat(user, "<span class='warning'>[src] is unpowered!</span>")
teleporting = FALSE
return
if(!linked_pad || QDELETED(linked_pad) || linked_pad.stat & NOPOWER)
if(!target_pad || QDELETED(target_pad) || target_pad.stat & NOPOWER)
to_chat(user, "<span class='warning'>Linked pad is not responding to ping. Teleport aborted.</span>")
teleporting = FALSE
return
@@ -141,12 +152,12 @@
// use a lot of power
use_power(10000 / power_efficiency)
sparks()
linked_pad.sparks()
target_pad.sparks()
flick("qpad-beam", src)
playsound(get_turf(src), 'sound/weapons/emitter2.ogg', 25, 1, extrarange = 3, falloff = 5)
flick("qpad-beam", linked_pad)
playsound(get_turf(linked_pad), 'sound/weapons/emitter2.ogg', 25, 1, extrarange = 3, falloff = 5)
flick("qpad-beam", target_pad)
playsound(get_turf(target_pad), 'sound/weapons/emitter2.ogg', 25, 1, extrarange = 3, falloff = 5)
for(var/atom/movable/ROI in get_turf(src))
// if is anchored, don't let through
if(ROI.anchored)
@@ -160,7 +171,7 @@
continue
else if(!isobserver(ROI))
continue
do_teleport(ROI, get_turf(linked_pad))
do_teleport(ROI, get_turf(target_pad))
/obj/machinery/quantumpad/proc/initMappedLink()
. = FALSE

View File

@@ -0,0 +1,32 @@
/obj/item/quantum_keycard
name = "quantum keycard"
desc = "A keycard able to link to a quantum pad's particle signature, allowing other quantum pads to travel there instead of their linked pad."
icon = 'icons/obj/device.dmi'
icon_state = "quantum_keycard"
item_state = "card-id"
lefthand_file = 'icons/mob/inhands/equipment/idcards_lefthand.dmi'
righthand_file = 'icons/mob/inhands/equipment/idcards_righthand.dmi'
w_class = WEIGHT_CLASS_TINY
var/obj/machinery/quantumpad/qpad
/obj/item/quantum_keycard/examine(mob/user)
..()
if(qpad)
to_chat(user, "It's currently linked to a quantum pad.")
to_chat(user, "<span class='notice'>Alt-click to unlink the keycard.</span>")
else
to_chat(user, "<span class='notice'>Insert [src] into an active quantum pad to link it.</span>")
/obj/item/quantum_keycard/AltClick(mob/living/user)
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
to_chat(user, "<span class='notice'>You start pressing [src]'s unlink button...</span>")
if(do_after(user, 40, target = src))
to_chat(user, "<span class='notice'>The keycard beeps twice and disconnects the quantum link.</span>")
qpad = null
/obj/item/quantum_keycard/update_icon()
if(qpad)
icon_state = "quantum_keycard_on"
else
icon_state = initial(icon_state)

View File

@@ -206,6 +206,16 @@
build_path = /obj/item/locator
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
/datum/design/quantum_keycard
name = "Quantum Keycard"
desc = "Allows for the construction of a quantum keycard."
id = "quantum_keycard"
build_type = PROTOLATHE
materials = list(MAT_GLASS = 500, MAT_METAL = 500, MAT_SILVER = 500, MAT_BLUESPACE = 1000)
build_path = /obj/item/quantum_keycard
category = list("Equipment")
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
/datum/design/anomaly_neutralizer
name = "Anomaly Neutralizer"

View File

@@ -171,18 +171,26 @@
display_name = "Basic Bluespace Theory"
description = "Basic studies into the mysterious alternate dimension known as bluespace."
prereq_ids = list("base")
design_ids = list("beacon", "xenobioconsole", "telesci_gps")
design_ids = list("beacon", "xenobioconsole", "telesci_gps", "bluespace_crystal")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000
/datum/techweb_node/adv_bluespace
id = "adv_bluespace"
display_name = "Advanced Bluespace Research"
description = "Deeper understanding of how the Bluespace dimension works"
prereq_ids = list("practical_bluespace", "high_efficiency")
design_ids = list("bluespace_matter_bin", "femto_mani", "triphasic_scanning", "tele_station", "tele_hub", "quantumpad", "launchpad", "launchpad_console",
"teleconsole", "bag_holding", "bluespace_crystal", "wormholeprojector", "bluespace_pod")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 15000)
/datum/techweb_node/bluespace_travel
id = "bluespace_travel"
display_name = "Bluespace Travel"
description = "Application of Bluespace for static teleportation technology."
prereq_ids = list("practical_bluespace")
design_ids = list("tele_station", "tele_hub", "quantumpad", "launchpad", "launchpad_console", "bluespace_pod")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
export_price = 5000
/datum/techweb_node/micro_bluespace
id = "micro_bluespace"
display_name = "Miniaturized Bluespace Research"
description = "Extreme reduction in space required for bluespace engines, leading to portable bluespace technology."
prereq_ids = list("bluespace_travel", "practical_bluespace", "high_efficiency")
design_ids = list("bluespace_matter_bin", "femto_mani", "triphasic_scanning", "bag_holding", "quantum_keycard", "wormholeprojector")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
export_price = 5000
/datum/techweb_node/practical_bluespace
@@ -198,7 +206,7 @@
id = "bluespace_power"
display_name = "Bluespace Power Technology"
description = "Even more powerful.. power!"
prereq_ids = list("adv_power", "adv_bluespace")
prereq_ids = list("adv_power", "practical_bluespace")
design_ids = list("bluespace_cell", "quadratic_capacitor")
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
export_price = 5000

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -838,6 +838,7 @@
#include "code\game\objects\items\devices\pipe_painter.dm"
#include "code\game\objects\items\devices\powersink.dm"
#include "code\game\objects\items\devices\pressureplates.dm"
#include "code\game\objects\items\devices\quantum_keycard.dm"
#include "code\game\objects\items\devices\reverse_bear_trap.dm"
#include "code\game\objects\items\devices\scanners.dm"
#include "code\game\objects\items\devices\sensor_device.dm"