Wall-mounted Geiger Counters

This commit is contained in:
Atermonera
2021-05-23 12:39:09 -07:00
committed by VirgoBot
parent bf6e945ad5
commit 7cfd8f3435
6 changed files with 100 additions and 0 deletions
+81
View File
@@ -85,3 +85,84 @@
icon_state = "geiger_on_4"
if(RAD_LEVEL_VERY_HIGH to INFINITY)
icon_state = "geiger_on_5"
///////////////////////
/obj/item/device/geiger/wall
name = "mounted geiger counter"
desc = "A wall mounted device used for detecting and measuring radiation in an area."
icon = 'icons/obj/device.dmi'
icon_state = "geiger_wall"
item_state = "geiger_wall"
anchored = 1
scanning = 1
radiation_count = 0
plane = TURF_PLANE
layer = ABOVE_TURF_LAYER
w_class = ITEMSIZE_LARGE
flags = NOBLOODY
var/circuit = /obj/item/weapon/circuitboard/geiger
var/number = 0
var/last_tick //used to delay the powercheck
var/wiresexposed = 0
/obj/item/device/geiger/wall/Initialize()
START_PROCESSING(SSobj, src)
soundloop = new(list(src), FALSE)
return ..()
/obj/item/device/geiger/wall/Destroy()
STOP_PROCESSING(SSobj, src)
QDEL_NULL(soundloop)
return ..()
/obj/item/device/geiger/wall/attack_self(var/mob/user)
scanning = !scanning
update_icon()
update_sound()
to_chat(user, "<span class='notice'>\icon[src] You switch [scanning ? "on" : "off"] \the [src].</span>")
/obj/item/device/geiger/wall/update_icon()
if(!scanning)
icon_state = "geiger_wall-p"
return 1
switch(radiation_count)
if(null)
icon_state = "geiger_level_1"
if(-INFINITY to RAD_LEVEL_LOW)
icon_state = "geiger_level_1"
if(RAD_LEVEL_LOW to RAD_LEVEL_MODERATE)
icon_state = "geiger_level_2"
if(RAD_LEVEL_MODERATE to RAD_LEVEL_HIGH)
icon_state = "geiger_level_3"
if(RAD_LEVEL_HIGH to RAD_LEVEL_VERY_HIGH)
icon_state = "geiger_level_4"
if(RAD_LEVEL_VERY_HIGH to INFINITY)
icon_state = "geiger_level_5"
/obj/item/device/geiger/wall/attack_ai(mob/user as mob)
src.add_fingerprint(user)
spawn (0)
attack_self(user)
/obj/item/device/geiger/wall/attack_hand(mob/user as mob)
src.add_fingerprint(user)
spawn (0)
attack_self(user)
/obj/item/device/geiger/wall/north
pixel_y = 28
dir = SOUTH
/obj/item/device/geiger/wall/south
pixel_y = -28
dir = NORTH
/obj/item/device/geiger/wall/east
pixel_x = 28
dir = EAST
/obj/item/device/geiger/wall/west
pixel_x = -28
dir = WEST
@@ -68,6 +68,12 @@
board_type = new /datum/frame/frame_types/keycard_authenticator
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50, MAT_COPPER = 100)
/obj/item/weapon/circuitboard/geiger
name = T_BOARD("geiger counter")
build_path = /obj/item/device/geiger/wall
board_type = new /datum/frame/frame_types/geiger
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 50)
//Computer
/obj/item/weapon/circuitboard/holopad