mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-03-30 16:43:05 +01:00
* Automatic changelog compile [ci skip]
* Anomalisci
* TGUI stuffs
* Fimx
* Colours
* Little polish
* Remove mult
* .
* Anomaly harvester
* Particle gun
* Dangerous anomalies
* Emitter update
* Suspension generator
* Flux & Weather update
* Techweb + Mapping
* Fixup maps in TGM format
5cff3b2d1d: maps/tether/tether-01-surface1.dmm
Automatically commited by: tools\mapmerge2\fixup.py
* fimx
* Oops that wasn't updated
* I swear I got it this time
* Adjustments
* Dust anomaly
* Couple of fixes
* Borg stuff
* Scanner module
* Fix attempt
* Boxless
* Fix (Hopefully)
* Changes
* .
* fix ranges
* fix the harvester UI
* wrong typing
* dm icon handles icon sizes internally
* stack gap handles that
* .
* .
* .
* fixes
* refs are unique keys
* release all
* .
* .
* Change
* Grip those samples!
---------
Co-authored-by: vorestation-ci[bot] <199609141+vorestation-ci[bot]@users.noreply.github.com>
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
110 lines
3.4 KiB
Plaintext
110 lines
3.4 KiB
Plaintext
/**
|
|
* Multitool -- A multitool is used for hacking electronic devices.
|
|
* TO-DO -- Using it as a power measurement tool for cables etc. Nannek.
|
|
*
|
|
*/
|
|
|
|
/obj/item/multitool
|
|
name = "multitool"
|
|
desc = "Used for pulsing wires to test which to cut. Not recommended by doctors."
|
|
description_info = "You can use this on airlocks or APCs to try to hack them without cutting wires."
|
|
icon = 'icons/obj/device.dmi'
|
|
icon_state = "multitool"
|
|
force = 5.0
|
|
w_class = ITEMSIZE_SMALL
|
|
throwforce = 5.0
|
|
throw_range = 15
|
|
throw_speed = 3
|
|
drop_sound = 'sound/items/drop/multitool.ogg'
|
|
pickup_sound = 'sound/items/pickup/multitool.ogg'
|
|
|
|
matter = list(MAT_STEEL = 50,MAT_GLASS = 20)
|
|
|
|
var/mode_index = 1
|
|
var/toolmode = MULTITOOL_MODE_STANDARD
|
|
var/list/modes = list(MULTITOOL_MODE_STANDARD, MULTITOOL_MODE_INTCIRCUITS)
|
|
|
|
origin_tech = list(TECH_MAGNET = 1, TECH_ENGINEERING = 1)
|
|
var/obj/machinery/telecomms/buffer // simple machine buffer for device linkage
|
|
var/obj/machinery/clonepod/connecting //same for cryopod linkage
|
|
var/obj/machinery/connectable //Used to connect machinery.
|
|
var/weakref_wiring //Used to store weak references for integrated circuitry. This is now the Omnitool.
|
|
toolspeed = 1
|
|
tool_qualities = list(TOOL_MULTITOOL)
|
|
|
|
var/uplink = FALSE
|
|
|
|
/obj/item/multitool/attack_self(mob/living/user)
|
|
. = ..(user)
|
|
if(.)
|
|
return TRUE
|
|
if(uplink)
|
|
return
|
|
|
|
if(selected_io)
|
|
selected_io = null
|
|
to_chat(user, span_notice("You clear the wired connection from the multitool."))
|
|
update_icon()
|
|
return
|
|
|
|
update_icon()
|
|
var/choice = tgui_alert(user, "What do you want to do with \the [src]?", "Multitool Menu", list("Switch Mode", "Clear Buffers", "Cancel"))
|
|
switch(choice)
|
|
if("Clear Buffers")
|
|
to_chat(user,span_notice("You clear \the [src]'s memory."))
|
|
buffer = null
|
|
connecting = null
|
|
connectable = null
|
|
weakref_wiring = null
|
|
accepting_refs = 0
|
|
if(toolmode == MULTITOOL_MODE_INTCIRCUITS)
|
|
accepting_refs = 1
|
|
if("Switch Mode")
|
|
mode_switch(user)
|
|
else
|
|
to_chat(user,span_notice("You lower \the [src]."))
|
|
return
|
|
|
|
update_icon()
|
|
|
|
/obj/item/multitool/proc/mode_switch(mob/living/user)
|
|
if(mode_index + 1 > modes.len) mode_index = 1
|
|
|
|
else
|
|
mode_index += 1
|
|
|
|
toolmode = modes[mode_index]
|
|
to_chat(user,span_notice("\The [src] is now set to [toolmode]."))
|
|
|
|
accepting_refs = (toolmode == MULTITOOL_MODE_INTCIRCUITS)
|
|
|
|
return
|
|
|
|
/datum/category_item/catalogue/anomalous/precursor_a/alien_multitool
|
|
name = "Precursor Alpha Object - Pulse Tool"
|
|
desc = "This ancient object appears to be an electrical tool. \
|
|
It has a simple mechanism at the handle, which will cause a pulse of \
|
|
energy to be emitted from the head of the tool. This can be used on a \
|
|
conductive object such as a wire, in order to send a pulse signal through it.\
|
|
<br><br>\
|
|
These qualities make this object somewhat similar in purpose to the common \
|
|
multitool, and can probably be used for tasks such as direct interfacing with \
|
|
an airlock, if one knows how."
|
|
value = CATALOGUER_REWARD_EASY
|
|
|
|
/obj/item/multitool/alien
|
|
name = "alien multitool"
|
|
desc = "An omni-technological interface."
|
|
catalogue_data = list(/datum/category_item/catalogue/anomalous/precursor_a/alien_multitool)
|
|
icon = 'icons/obj/abductor.dmi'
|
|
icon_state = "multitool"
|
|
toolspeed = 0.1
|
|
origin_tech = list(TECH_MAGNET = 5, TECH_ENGINEERING = 5)
|
|
|
|
// Alien multitool only has those icon states
|
|
/obj/item/multitool/alien/update_icon()
|
|
if(accepting_refs)
|
|
icon_state = "multitool_ref_scan"
|
|
return
|
|
icon_state = "multitool"
|