From a286d0c313dd02f21799e9b80a133a3bfc95361e Mon Sep 17 00:00:00 2001 From: CitadelStationBot Date: Fri, 22 Sep 2017 23:35:54 -0500 Subject: [PATCH] [MIRROR] Gives engineering cyborgs an item they can use in place of circuits for basic construction (#2875) * Gives engineering cyborgs an item they can use in place of circuits for basic construction * fixes --- code/game/machinery/doors/firedoor.dm | 9 +++ code/game/machinery/firealarm.dm | 10 +++ .../devices/electroadaptive_pseudocircuit.dm | 65 ++++++++++++++++++ .../atmospherics/machinery/airalarm.dm | 10 +++ .../mob/living/silicon/robot/robot_modules.dm | 3 +- code/modules/power/apc.dm | 29 ++++++++ icons/obj/module.dmi | Bin 15574 -> 15674 bytes tgstation.dme | 1 + 8 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 code/game/objects/items/devices/electroadaptive_pseudocircuit.dm diff --git a/code/game/machinery/doors/firedoor.dm b/code/game/machinery/doors/firedoor.dm index 02f3f03b91..95adf12875 100644 --- a/code/game/machinery/doors/firedoor.dm +++ b/code/game/machinery/doors/firedoor.dm @@ -434,6 +434,15 @@ constructionStep = CONSTRUCTION_GUTTED update_icon() return + if(istype(C, /obj/item/device/electroadaptive_pseudocircuit)) + var/obj/item/device/electroadaptive_pseudocircuit/P = C + if(!P.adapt_circuit(user, 30)) + return + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt a firelock circuit and slot it into the assembly.") + constructionStep = CONSTRUCTION_GUTTED + update_icon() + return return ..() /obj/structure/firelock_frame/heavy diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 518cd8ab09..ebbeb1bee2 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -220,6 +220,16 @@ update_icon() return + else if(istype(W, /obj/item/device/electroadaptive_pseudocircuit)) + var/obj/item/device/electroadaptive_pseudocircuit/P = W + if(!P.adapt_circuit(user, 15)) + return + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt a fire alarm circuit and slot it into the assembly.") + buildstage = 1 + update_icon() + return + else if(istype(W, /obj/item/wrench)) user.visible_message("[user] removes the fire alarm assembly from the wall.", \ "You remove the fire alarm assembly from the wall.") diff --git a/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm new file mode 100644 index 0000000000..204a1f81d9 --- /dev/null +++ b/code/game/objects/items/devices/electroadaptive_pseudocircuit.dm @@ -0,0 +1,65 @@ +//Used by engineering cyborgs in place of generic circuits. +/obj/item/device/electroadaptive_pseudocircuit + name = "electroadaptive pseudocircuit" + desc = "An all-in-one circuit imprinter, designer, synthesizer, outfitter, creator, and chef. It can be used in place of any generic circuit board during construction." + icon = 'icons/obj/module.dmi' + icon_state = "boris" + w_class = WEIGHT_CLASS_TINY + materials = list(MAT_METAL = 50, MAT_GLASS = 300) + origin_tech = "engineering=4" + var/recharging = FALSE + var/circuits = 5 //How many circuits the pseudocircuit has left + var/static/recycleable_circuits = typecacheof(list(/obj/item/electronics/firelock, /obj/item/electronics/airalarm, /obj/item/electronics/firealarm, \ + /obj/item/electronics/apc))//A typecache of circuits consumable for material + +/obj/item/device/electroadaptive_pseudocircuit/Initialize() + . = ..() + maptext = "[circuits]" + +/obj/item/device/electroadaptive_pseudocircuit/examine(mob/user) + ..() + if(iscyborg(user)) + to_chat(user, "It has material for [circuits] circuit[circuits == 1 ? "" : "s"]. Use the pseudocircuit on existing circuits to gain material.") + to_chat(user, "Serves as a substitute for fire/air alarm, firelock, and APC electronics.") + to_chat(user, "It can also be used on an APC with no power cell to fabricate a low-capacity cell at a high power cost.") + +/obj/item/device/electroadaptive_pseudocircuit/proc/adapt_circuit(mob/living/silicon/robot/R, circuit_cost = 0) + if(QDELETED(R) || !istype(R)) + return + if(!R.cell) + to_chat(R, "You need a power cell installed for that.") + return + if(!R.cell.use(circuit_cost)) + to_chat(R, "You don't have the power for that (you need [DisplayPower(circuit_cost)].)") + return + if(recharging) + to_chat(R, "[src] needs some time to recharge first.") + return + if(!circuits) + to_chat(R, "You need more material. Use [src] on existing simple circuits to break them down.") + return + playsound(R, 'sound/items/rped.ogg', 50, TRUE) + recharging = TRUE + circuits-- + maptext = "[circuits]" + icon_state = "[initial(icon_state)]_recharging" + var/recharge_time = min(600, circuit_cost * 5) //40W of cost for one fabrication = 20 seconds of recharge time; this is to prevent spamming + addtimer(CALLBACK(src, .proc/recharge), recharge_time) + return TRUE //The actual circuit magic itself is done on a per-object basis + +/obj/item/device/electroadaptive_pseudocircuit/afterattack(atom/target, mob/living/user, proximity) + if(!proximity) + return + if(!is_type_in_typecache(target, recycleable_circuits)) + return + circuits++ + maptext = "[circuits]" + user.visible_message("User breaks down [target] with [src].", \ + "You recycle [target] into [src]. It now has material for [circuits] circuits.") + playsound(user, 'sound/items/deconstruct.ogg', 50, TRUE) + qdel(target) + +/obj/item/device/electroadaptive_pseudocircuit/proc/recharge() + playsound(src, 'sound/machines/chime.ogg', 25, TRUE) + recharging = FALSE + icon_state = initial(icon_state) diff --git a/code/modules/atmospherics/machinery/airalarm.dm b/code/modules/atmospherics/machinery/airalarm.dm index 9807fed513..6de564da6d 100644 --- a/code/modules/atmospherics/machinery/airalarm.dm +++ b/code/modules/atmospherics/machinery/airalarm.dm @@ -708,6 +708,16 @@ qdel(W) return + if(istype(W, /obj/item/device/electroadaptive_pseudocircuit)) + var/obj/item/device/electroadaptive_pseudocircuit/P = W + if(!P.adapt_circuit(user, 25)) + return + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt an air alarm circuit and slot it into the assembly.") + buildstage = 1 + update_icon() + return + if(istype(W, /obj/item/wrench)) to_chat(user, "You detach \the [src] from the wall.") playsound(src.loc, W.usesound, 50, 1) diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index af6f3daf92..0024772274 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -307,6 +307,7 @@ /obj/item/device/analyzer, /obj/item/device/assembly/signaler/cyborg, /obj/item/areaeditor/blueprints/cyborg, + /obj/item/device/electroadaptive_pseudocircuit, /obj/item/stack/sheet/metal/cyborg, /obj/item/stack/sheet/glass/cyborg, /obj/item/stack/sheet/rglass/cyborg, @@ -679,4 +680,4 @@ /datum/robot_energy_storage/beacon max_energy = 30 recharge_rate = 1 - name = "Marker Beacon Storage" + name = "Marker Beacon Storage" \ No newline at end of file diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 1545bfd452..4d9fc45b1a 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -546,6 +546,35 @@ to_chat(user, "You place the power control board inside the frame.") qdel(W) + else if(istype(W, /obj/item/device/electroadaptive_pseudocircuit) && opened) + var/obj/item/device/electroadaptive_pseudocircuit/P = W + if(!has_electronics) + if(stat & BROKEN) + to_chat(user, "[src]'s frame is too damaged to support a circuit.") + return + if(!P.adapt_circuit(user, 50)) + return + user.visible_message("[user] fabricates a circuit and places it into [src].", \ + "You adapt a power control board and click it into place in [src]'s guts.") + has_electronics = TRUE + locked = TRUE + else if(!cell) + if(stat & MAINT) + to_chat(user, "There's no connector for a power cell.") + return + if(!P.adapt_circuit(user, 500)) + return + var/obj/item/stock_parts/cell/crap/empty/C = new(src) + C.forceMove(src) + cell = C + chargecount = 0 + user.visible_message("[user] fabricates a weak power cell and places it into [src].", \ + "Your [P.name] whirrs with strain as you create a weak power cell and place it into [src]!") + update_icon() + else + to_chat(user, "[src] has both electronics and a cell.") + return + else if (istype(W, /obj/item/weldingtool) && opened && has_electronics==0 && !terminal) var/obj/item/weldingtool/WT = W if (WT.get_fuel() < 3) diff --git a/icons/obj/module.dmi b/icons/obj/module.dmi index d2d93afac0961ac412d1ae2ce06b74b7e222c852..c24f7c4c16c4fefddbb43a5faaa71c469fb45556 100644 GIT binary patch literal 15674 zcmcJ$1ymeu*Dcscu;7H?kc0$?-~`uT!685(xFom+*T%h(kOcPtfuO;)8z;ECyK6Vn z(DYQ^?_2+TYwo?X=FZH|TD^*{?yh?3sq^f!&)%mZ)m7z*2xtjFAP|wlTbXwt5QZf1 zdW44q?CJVgd;$Vta(ip(y2^ZVG5>7s} zw^QQY7%_8vG(v7pk?<_|OX4RrXz>2)*}X_c-^xHH3BL!=Q!e-V$Lmnhb7IHQ6rX>r zXcyHoeeYUR=6_wRmF8Ay6~D(q#KbN2M!UEvxx^v3<>kZgg2nGjqq+ifx>ivFIzlJ% zWYz(nz8DHJN5B1o|K^iVVvzE9y~$m|NTHeOXq)V}y;D;+RI@_0WGeyex=WA3cWs6K z^U_Q{fx&+3FPc|FojSbN2xWiX#AS=?hyo)1R2==cAJ1f2aBvrFT&>7))mSWo?eIij zuJA|41-)7bti&>7AP)af56)U@eZ67~5uoQj`#PMr|11W_hupdHxIoX-&-{u-+5N4Y zx{XBux`RwQZSpc1od&NxV8dmHhG z2rihPWSt?-TAcAj{h-Q*6%WaEqk2Axcj)j))Wv-CH>3G;Tf+0@`uV4)=ZUbl;!z5Q zd0AG7K_+R~B=rNjMWMGFw%2b4yHpv*cfS?G__(=LCZPn%8oa4E^_i}o3@yI8?9o05 z_;1aoZNJm|ieK6zYK?-_K%hq;1sN$V&-B95Dr_+_9&i1+dKd1INu_U=&gF)#1sjqlO0-_Qc1 zwl*2IloNAdeiLTUBfQ-=gzBW&(@${N@Pcf~upVHy)kI(r1g+?Gg6>HbS~iAtCHn{tNmw`h*WUY>TDBHgkbAsQ~rqo-Fu00BVLl7A>L>5VYyin~^9rj*(Zn2qh|>;Mg*eVFWd}@XS=?{PE7%%#|=h zg!4(NseH}YN)nx*E)FEGa(+5Bv_8%hrL~i`4X&m=Q~HUs^yd}tMF!o6>IAv1dEL_A z@v2=ulv+2BK-ie1$vB_3zqd80k7}4E&cV)yeO^1xpskxrM*01?1|0V$ij=d&GpdXv zhUAkzI+Ib2E-Vb(3x~p#D2Njh655pL*ZSftP8UBI2TMcO^UI_+wzqlR_9jAV^cyQ^ zmuri~Kz6_8q)&@6vm?LJHTM2V!GZ-o6dW0Oh#Xc}a8cvcdTS%XG zo%iTNtM0H5EDFf|p3p_4h_nbQXFAg&y+MNM$P?G01@V5W+<17d#`Xi$-|uXVQ1rO3 zPf>O0GdUNBus;*_83d{I{{83A3C;t5E}<( zllE%o%PS7(?PsG^Nd_=;!MU|ZQKbI?XvNSdP?>UEb1`ua(D`QDv}%KC-#dT)P!UZ%Iw@&V@d<|YkGeHHEPvr%I%d_ViZu)04Y zAE{>W=jP`dZqNF?Rzs--kDJfyf&Ya(Pac7KVj0$z%*EH#(!1!5S(r?yw@T}lY?QEd zYYk*IcyvE}ry~oj=HsihRJ*Ue_Y?qv;y#{wu(X3Q_Ls!w+MPlkdA+OgK9?D^yB! zDNu$B_D?H3pqn#Deuk@?oAb$vRAXafvX~D)6FL`zAjmgh)Ub8s zgv!&lz%=%c*;aP;vx!3OGBA4*2vsgdB{&_j688k{qvO(8#es+e36Kr+=Ao32mk7a;xG}0}gVcFiV zgP4W|98&$-+Opti+<78SOcW3>O35!52=O)6(V_Ya#;qdzwzoSY$DY>h+-K+KURx=a z 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 literal 15574 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 R!0(ko^3qCD6>p7#{u`