From 536a6cb6e7257f0482bc3f66040bf824d6ebeaf6 Mon Sep 17 00:00:00 2001 From: Chompstation Bot Date: Wed, 27 Oct 2021 18:39:20 +0000 Subject: [PATCH] [WIP] Atmospheric Retention Fields --- code/game/area/areas.dm | 25 +- code/game/machinery/atm_ret_field.dm | 233 ++++++++++++++++++ code/game/machinery/frame.dm | 5 + .../items/weapons/circuitboards/frame.dm | 10 + .../research/designs/circuits/circuits.dm | 7 + icons/obj/atm_fieldgen.dmi | Bin 0 -> 2546 bytes icons/obj/stock_parts.dmi | Bin 85403 -> 86091 bytes vorestation.dme | 5 + 8 files changed, 284 insertions(+), 1 deletion(-) create mode 100644 code/game/machinery/atm_ret_field.dm create mode 100644 icons/obj/atm_fieldgen.dmi diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 9a72196f8d..a3430383ef 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -43,7 +43,9 @@ var/no_air = null // var/list/lights // list of all lights on this area var/list/all_doors = null //Added by Strumpetplaya - Alarm Change - Contains a list of doors adjacent to this area + var/list/all_arfgs = null //Similar, but a list of all arfgs adjacent to this area var/firedoors_closed = 0 + var/arfgs_active = 0 var/list/ambience = list() var/list/forced_ambience = null var/sound_env = STANDARD_STATION @@ -128,10 +130,11 @@ return 1 return 0 -// Either close or open firedoors depending on current alert statuses +// Either close or open firedoors and arfgs depending on current alert statuses /area/proc/firedoors_update() if(fire || party || atmosalm) firedoors_close() + arfgs_activate() // VOREStation Edit - Make the lights colored! if(fire) for(var/obj/machinery/light/L in src) @@ -142,6 +145,7 @@ // VOREStation Edit End else firedoors_open() + arfgs_deactivate() // VOREStation Edit - Put the lights back! for(var/obj/machinery/light/L in src) L.reset_alert() @@ -175,6 +179,25 @@ spawn(0) E.open() +// Activate all retention fields! +/area/proc/arfgs_activate() + if(!arfgs_active) + arfgs_active = TRUE + if(!all_arfgs) + return + for(var/obj/machinery/atmospheric_field_generator/E in all_arfgs) + E.generate_field() //don't need to check powered state like doors, the arfgs handles it on its end + E.wasactive = TRUE + +// Deactivate retention fields! +/area/proc/arfgs_deactivate() + if(arfgs_active) + arfgs_active = FALSE + if(!all_arfgs) + return + for(var/obj/machinery/atmospheric_field_generator/E in all_arfgs) + E.disable_field() + E.wasactive = FALSE /area/proc/fire_alert() if(!fire) diff --git a/code/game/machinery/atm_ret_field.dm b/code/game/machinery/atm_ret_field.dm new file mode 100644 index 0000000000..9e9a2af168 --- /dev/null +++ b/code/game/machinery/atm_ret_field.dm @@ -0,0 +1,233 @@ +/obj/machinery/atmospheric_field_generator + name = "atmospheric retention field generator" + desc = "A floor-mounted piece of equipment that generates an atmosphere-retaining energy field when powered and activated. Linked to environmental alarm systems and will automatically activate when hazardous conditions are detected.

Note: prolonged immersion in active atmospheric retention fields may have negative long-term health consequences." + icon = 'icons/obj/atm_fieldgen.dmi' + icon_state = "arfg_off" + anchored = TRUE + opacity = FALSE + density = FALSE + power_channel = ENVIRON //so they shut off last + use_power = USE_POWER_IDLE + idle_power_usage = 10 + active_power_usage = 2500 + var/ispowered = TRUE + var/isactive = FALSE + var/wasactive = FALSE //controls automatic reboot after power-loss + var/alwaysactive = FALSE //for a special subtype + + //how long it takes us to reboot if we're shut down by an EMP + var/reboot_delay_min = 50 + var/reboot_delay_max = 75 + + var/hatch_open = FALSE + var/wires_intact = TRUE + var/list/areas_added + var/field_type = /obj/structure/atmospheric_retention_field + circuit = /obj/item/weapon/circuitboard/arf_generator + +/obj/machinery/atmospheric_field_generator/impassable + desc = "An older model of ARF-G that generates an impassable retention field. Works just as well as the modern variety, but is slightly more energy-efficient.

Note: prolonged immersion in active atmospheric retention fields may have negative long-term health consequences." + active_power_usage = 2000 + field_type = /obj/structure/atmospheric_retention_field/impassable + +/obj/machinery/atmospheric_field_generator/perma + name = "static atmospheric retention field generator" + desc = "A floor-mounted piece of equipment that generates an atmosphere-retaining energy field when powered and activated. This model is designed to always be active, though the field will still drop from loss of power or electromagnetic interference.

Note: prolonged immersion in active atmospheric retention fields may have negative long-term health consequences." + alwaysactive = TRUE + active_power_usage = 2000 + +/obj/machinery/atmospheric_field_generator/perma/impassable + active_power_usage = 1500 + field_type = /obj/structure/atmospheric_retention_field/impassable + +/obj/machinery/atmospheric_field_generator/attackby(obj/item/weapon/W as obj, mob/user as mob) + if(W.is_crowbar() && isactive) + if(!src) return + to_chat(user, "You can't open the ARF-G whilst it's running!") + return + if(W.is_crowbar() && !isactive) + if(!src) return + to_chat(user, "You [hatch_open? "close" : "open"] \the [src]'s access hatch.") + hatch_open = !hatch_open + update_icon() + if(alwaysactive && wires_intact) + generate_field() + return + if(hatch_open && W.is_multitool()) + if(!src) return + to_chat(user, "You toggle \the [src]'s activation behavior to [alwaysactive? "emergency" : "always-on"].") + alwaysactive = !alwaysactive + update_icon() + return + if(hatch_open && W.is_wirecutter()) + if(!src) return + to_chat(user, "You [wires_intact? "cut" : "mend"] \the [src]'s wires!") + wires_intact = !wires_intact + update_icon() + return + if(hatch_open && istype(W,/obj/item/weapon/weldingtool)) + if(!src) return + var/obj/item/weapon/weldingtool/WT = W + if(!WT.isOn()) return + if(WT.get_fuel() < 5) // uses up 5 fuel. + to_chat(user, "You need more fuel to complete this task.") + return + user.visible_message("[user] starts to disassemble \the [src].", "You start to disassemble \the [src].") + playsound(src, WT.usesound, 50, 1) + if(do_after(user,15 * W.toolspeed)) + if(!src || !user || !WT.remove_fuel(5, user)) return + to_chat(user, "You fully disassemble \the [src]. There were no salvageable parts.") + qdel(src) + return + +/obj/machinery/atmospheric_field_generator/perma/Initialize() + generate_field() + +/obj/machinery/atmospheric_field_generator/update_icon() + if(stat & BROKEN) + icon_state = "arfg_broken" + else if(hatch_open && wires_intact) + icon_state = "arfg_open_wires" + else if(hatch_open && !wires_intact) + icon_state = "arfg_open_wirescut" + else if(isactive) + icon_state = "arfg_on" + else + icon_state = "arfg_off" + +/obj/machinery/atmospheric_field_generator/power_change() + var/oldstat + ..() + if(!(stat & NOPOWER)) + ispowered = 1 + update_icon() + if(alwaysactive || wasactive) //reboot our field if we were on or are supposed to be always-on + generate_field() + if(stat != oldstat && isactive && (stat & NOPOWER)) + ispowered = 0 + disable_field() + update_icon() + +/obj/machinery/atmospheric_field_generator/emp_act() + . = ..() + disable_field() //shutting dowwwwwwn + if(alwaysactive || wasactive) //reboot after a short delay if we were online before + spawn(rand(reboot_delay_min,reboot_delay_max)) + generate_field() + +/obj/machinery/atmospheric_field_generator/ex_act(severity) + switch(severity) + if(1) + disable_field() + qdel(src) + return + if(2) + stat |= BROKEN + update_icon() + src.visible_message("The ARF-G cracks and shatters!","You hear an uncomfortable metallic crunch.") + disable_field() + if(3) + emp_act() + return + +/obj/machinery/atmospheric_field_generator/proc/generate_field() + if(!ispowered || hatch_open || !wires_intact || isactive) //if it's not powered, the hatch is open, the wires are busted, or it's already on, don't do anything + return + else + isactive = 1 + icon_state = "arfg_on" + new field_type (src.loc) + src.visible_message("The ARF-G crackles to life!","You hear an ARF-G coming online!") + update_use_power(USE_POWER_ACTIVE) + return + +/obj/machinery/atmospheric_field_generator/proc/disable_field() + if(isactive) + icon_state = "arfg_off" + for(var/obj/structure/atmospheric_retention_field/F in loc) + qdel(F) + src.visible_message("The ARF-G shuts down with a low hum.","You hear an ARF-G powering down.") + update_use_power(USE_POWER_IDLE) + isactive = 0 + return + +/obj/machinery/atmospheric_field_generator/Initialize() + . = ..() + //Delete ourselves if we find extra mapped in arfgs + for(var/obj/machinery/atmospheric_field_generator/F in loc) + if(F != src) + log_debug("Duplicate ARFGS at [x],[y],[z]") + return INITIALIZE_HINT_QDEL + + var/area/A = get_area(src) + ASSERT(istype(A)) + + LAZYADD(A.all_arfgs, src) + areas_added = list(A) + + for(var/direction in cardinal) + A = get_area(get_step(src,direction)) + if(istype(A) && !(A in areas_added)) + LAZYADD(A.all_arfgs, src) + areas_added += A + +/obj/structure/atmospheric_retention_field + name = "atmospheric retention field" + desc = "A shimmering forcefield that keeps the good air inside and the bad air outside. This field has been modulated so that it doesn't impede movement or projectiles.

Note: prolonged immersion in active atmospheric retention fields may have negative long-term health consequences." + icon = 'icons/obj/atm_fieldgen.dmi' + icon_state = "arfg_field" + anchored = TRUE + density = FALSE + opacity = 0 + plane = MOB_PLANE + layer = ABOVE_MOB_LAYER + //mouse_opacity = 0 + can_atmos_pass = ATMOS_PASS_NO + var/basestate = "arfg_field" + + light_range = 3 + light_power = 1 + light_color = "#FFFFFF" + light_on = TRUE + +/obj/structure/atmospheric_retention_field/update_icon() + cut_overlays() //overlays.Cut() + var/list/dirs = list() + for(var/obj/structure/atmospheric_retention_field/F in orange(src,1)) + dirs += get_dir(src, F) + + var/list/connections = dirs_to_corner_states(dirs) + + icon_state = "" + for(var/i = 1 to 4) + var/image/I = image(icon, "[basestate][connections[i]]", dir = 1<<(i-1)) + add_overlay(I) + + return + +/obj/structure/atmospheric_retention_field/Initialize() + . = ..() + update_nearby_tiles() //Force ZAS update + update_connections(1) + update_icon() + +/obj/structure/atmospheric_retention_field/Destroy() + for(var/obj/structure/atmospheric_retention_field/W in orange(1, src.loc)) + W.update_connections(1) + update_nearby_tiles() //Force ZAS update + . = ..() + +/obj/structure/atmospheric_retention_field/attack_hand(mob/user as mob) + if(density) + visible_message("You touch the retention field, and it crackles faintly. Tingly!") + else + visible_message("You try to touch the retention field, but pass through it like it isn't even there.") + +/obj/structure/atmospheric_retention_field/ex_act() + return + +/obj/structure/atmospheric_retention_field/impassable + desc = "A shimmering forcefield that keeps the good air inside and the bad air outside. It seems fairly solid, almost like it's made out of some kind of hardened light.

Note: prolonged immersion in active atmospheric retention fields may have negative long-term health consequences." + icon = 'icons/obj/atm_fieldgen.dmi' + icon_state = "arfg_field" + density = TRUE \ No newline at end of file diff --git a/code/game/machinery/frame.dm b/code/game/machinery/frame.dm index ed4b086e73..d651ad2025 100644 --- a/code/game/machinery/frame.dm +++ b/code/game/machinery/frame.dm @@ -221,6 +221,11 @@ frame_style = FRAME_STYLE_WALL x_offset = 28 y_offset = 28 + +/datum/frame/frame_types/arfgs + name = "ARF Generator" + frame_class = FRAME_CLASS_MACHINE + frame_size = 3 ////////////////////////////// // Frame Object (Structure) diff --git a/code/game/objects/items/weapons/circuitboards/frame.dm b/code/game/objects/items/weapons/circuitboards/frame.dm index a3c755a3ac..db3106e635 100644 --- a/code/game/objects/items/weapons/circuitboards/frame.dm +++ b/code/game/objects/items/weapons/circuitboards/frame.dm @@ -261,3 +261,13 @@ /obj/item/weapon/stock_parts/spring = 1, /obj/item/stack/cable_coil = 5) +/obj/item/weapon/circuitboard/arf_generator + name = T_BOARD("atmospheric field generator") + build_path = /obj/machinery/atmospheric_field_generator + board_type = new /datum/frame/frame_types/arfgs + origin_tech = list(TECH_MAGNET = 4, TECH_POWER = 4, TECH_BIO = 3) + req_components = list( + /obj/item/weapon/stock_parts/micro_laser/high = 2, //field emitters + /obj/item/weapon/stock_parts/scanning_module = 1, //atmosphere sensor + /obj/item/weapon/stock_parts/capacitor/adv = 1, //for the JUICE + /obj/item/stack/cable_coil = 10) \ No newline at end of file diff --git a/code/modules/research/designs/circuits/circuits.dm b/code/modules/research/designs/circuits/circuits.dm index 5c77c19e60..9e21b9bc16 100644 --- a/code/modules/research/designs/circuits/circuits.dm +++ b/code/modules/research/designs/circuits/circuits.dm @@ -427,6 +427,13 @@ CIRCUITS BELOW build_path = /obj/item/weapon/circuitboard/skills sort_string = "LAAAC" +/datum/design/circuit/arf_generator + name = "atmospheric field generator" + id = "arf_generator" + req_tech = list(TECH_MAGNET = 4, TECH_POWER = 4, TECH_BIO = 3) + build_path = /obj/item/weapon/circuitboard/arf_generator + sort_string = "LAAAD" + /datum/design/circuit/mecha req_tech = list(TECH_DATA = 3) diff --git a/icons/obj/atm_fieldgen.dmi b/icons/obj/atm_fieldgen.dmi new file mode 100644 index 0000000000000000000000000000000000000000..0c30371196aa4dc1402a18415d9fad3a29712d58 GIT binary patch literal 2546 zcma);dpy(oAIHCAvZ$swrvo@i_kYeBO`G=8>^Ll*lI$~^g%Bjf# z0I<`}*7Cw;{Pc4`wr$R8#{xfZhQT;zw+Kr=qHlP>^@spMC;-GfsUBj=b)VQF`;{nE z@@Yw1#5%OSxxM(Jt(#&pl}3C>Ka~&Hq$%Ow0o zZL+;a@B$vbE2`y6;+y9?>gt|C(*~xy+0hkT=O5dLRMlx+uNLiJ%&C%GbXv^7@q>RI~1L@yxdVu^YRT4Pe>Uai2wJ zHb}~+d;d&UKua4e3&F8P>OlJA$GEIRDJ3x)uR**DYR#pi<2~bXufjA2c2%EeXU3Y@8>mtz~m_$^|clJW1qGHGOGp3*7$a+bgBRQW9iIS8DhwOfb7fqKm8hfBglEVIn z(h}K~AH*;%&qVA5rs@21)T~cr0KaQAR29@aQ>a%|W7>kU%9utR(NY{jtBkt)gB2$1 zvP#*jYDPH8cO?ebRSFW!`=y<_@8WjYaDCv50-r-kow;8!G^8Mq-DddyIqst$s#1G_ z&1+#hA&_;=?ao%fjcR&9nULZnIt$#`R$N{JR-mwXE)BVOMYE?}bH@8YU}S*22?$IV zw5|oA;N&~9^n?U;(n~&8pwf{9nZ@&bP-n40?v20CPeyIObPy`grMGEbjdA{ONg7}6M$Ix$>|8eMa|WUQ*-^)GkGCoxgX4p5)-ckD$k?a zwIEkK%g{{=v}v(`2WsUnmvL>I+>p0lAot`ymT5RF9q}95IB{J#r}E|E`VGOmYV>1q z(j<>&1?MeU^aXi$R)vFg^~~;_RmxYne>h$uo)?A`H^k{s`eeSkI7PUz1{MX)E`Q*( z94Uo2t(~rnw&xUb{}?^!pu|n7c9+mH<-Z&amr5a^zVnMLvvAbjx=OE`JEfeZZm7W?s0-`2iwSg!oKZ9~(D%x8X@ha4NxJ`V`v~tac(?ZI!q`RkB z(GKoBp+tLJTdx~bX#H{YB_^7+I5bwK+uvNgq5EA(ymOD z6D;+$8r@mvjfEzToE+1plG~Pi?c1lcImi(%^;7duOS>fA^b480Q5_5a%CLOhE{1=} zyq@93dPX3#Jo(Y%{9>%*7Lj>p-Mw2#8ShZ;)E|6= zWJGFKV(EUXj8K**i_8-c<>Vl5i*_i4YeFYp#USyO)@T@Cf*&vyGg_A{I*nnl-rd*D z*bWF&@OAuVIQHb`R!D$to556|_f7BT+s}&#Um!n?>Axx;kYBhHd%VS%CcXt8-d&H3 zzM3Z5eo{u}7DDROW!v9d^a&Q@ky^bmW-9kz6XCNfF}`r({IWj-v!l9pxx-Uh%Df&c zXt`K{-o|K1Pm~nyiyvf_E;*zIs0+pY+DHBs*?-cUPD0{U7)Z^Gl?S1oLSa+8L<6*y z7ci^)$Y@+ls!A=&7Zd<`o}q$kTu@|L2m<-t51u)P>wOsC(sTT1d(aA&qMEN5AH!l{%qw>z(6A< z_5eiAhQFm@}Yfs-k(IkPK=j5bPuA`Td)pIKa*dV_9R4zxjVRKzd{V literal 0 HcmV?d00001 diff --git a/icons/obj/stock_parts.dmi b/icons/obj/stock_parts.dmi index 64184432c7a913156bd4d10a4fcce3f60d5af0f8..1f203a1e8f1173b19dfa2b998af0d09d1a4df606 100644 GIT binary patch delta 20829 zcmX_HbzBr-w;npBOF}@TTLh#L5D)~E?v#@5WcUJai6{iIuqVUlr6UHZL6f;yygbhts>d)Ey6%nZXEY>=qFV&e#JYXH|SjrS$ zoIb`F;e?nuX<39HsR{0yZg%IF)ug`nAF7p-_P-0MeDwWpe{pAX^0T21;iO|rGgvbF zX!rI);n$}o-(tysD|0+W;EF~HkTDFV0~5Dk<4@%ZIQO`U(M4# zR^@nFgyFuUZ~W9ZAZO#Ul&0qam|Yt2-p#LrC$I<;cf`PDX+MLHTHZ;E#AZfnG!yU z_T`vAZx&o{fkorSH@%}iF~daSoC-@kc*i7t2G}%8otTyT)!NGFM#)SiU|)@7#Yc0m zdYKBeR?{CV*Kvjv+b>BJMBFq-wI#=YW)0X0y$@#baEc+Oz%RYDc;VuH+q6_Byt{~; z;ul|=e?Q`5o1SK?ewn5JyKI0Jj-NGg-n4P0#Hx)o|IV~NR-h49jfF?sGJhV}W^~xk z@A~dne1P_kZ-bVOZx5Ma99%bd@r9YGmwNTq(aUw>8{HxwmBGLv+ve!a8z&0zns zdAZGy#s2->>gx<Rlx+QkNsP>!;RxeASA#7S4<>EW(~7XwxtyXhFv( zTGqmllxerk@bP*l`}Z`WXu`q4pB5h~&K3oKszgT&jyOF>}YqM?3V{^ z;2EL}dNs;E>ED^P@^pRCU-?R-x!HNJDysoCRYRxK^#WH{m0=cp%jw<5SzK9GTT)80 z!YoQg-d+&d8&Byyb}@$SPjp247X9p{sp{&YS7g+fSs6q>+f^dp>9ESxY>_?|A)2y| z7d2czDGhRTc8@6#BQ6JJN%fyff5RlX!ajd;q_X=;gcyxop`%=uK(vlRbV^D8qU@{X zA@p)2tw^~qtw;(TgwTOEtVh?wnVq;OUQ-jt#AzT}6V!(CZ>>;BAN+JFl`KAmmn-

Su9B{O|bU$=K#T_$qH=KDj14$wTEBdmo;JfqUjf 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 diff --git a/vorestation.dme b/vorestation.dme index bea44f2300..71d9cd9ede 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -831,7 +831,12 @@ #include "code\game\machinery\ai_slipper.dm" #include "code\game\machinery\air_alarm.dm" #include "code\game\machinery\airconditioner_vr.dm" +<<<<<<< HEAD #include "code\game\machinery\airconditioner_yw.dm" +||||||| parent of 3b5fb11bd1... Merge pull request #11663 from KillianKirilenko/kk-arfg +======= +#include "code\game\machinery\atm_ret_field.dm" +>>>>>>> 3b5fb11bd1... Merge pull request #11663 from KillianKirilenko/kk-arfg #include "code\game\machinery\atmo_control.dm" #include "code\game\machinery\autolathe.dm" #include "code\game\machinery\Beacon.dm"