From 2ea192ab87fa393d51eb41775f7ea42fde077b96 Mon Sep 17 00:00:00 2001 From: Aronai Sieyes Date: Thu, 23 Apr 2020 15:34:46 -0400 Subject: [PATCH] Port/improve /tg/ Inducer --- code/game/objects/items/weapons/inducer_vr.dm | 270 ++++++++++++++++++ icons/mob/items/lefthand_vr.dmi | Bin 2147 -> 2222 bytes icons/mob/items/righthand_vr.dmi | Bin 2042 -> 2112 bytes icons/obj/tools_vr.dmi | Bin 13812 -> 14475 bytes vorestation.dme | 1 + 5 files changed, 271 insertions(+) create mode 100644 code/game/objects/items/weapons/inducer_vr.dm diff --git a/code/game/objects/items/weapons/inducer_vr.dm b/code/game/objects/items/weapons/inducer_vr.dm new file mode 100644 index 0000000000..8ca20c049b --- /dev/null +++ b/code/game/objects/items/weapons/inducer_vr.dm @@ -0,0 +1,270 @@ +/obj/item/weapon/inducer + name = "industrial inducer" + desc = "A tool for inductively charging internal power cells." + icon = 'icons/obj/tools_vr.dmi' + icon_state = "inducer-engi" + item_state = "inducer-engi" + item_icons = list( + slot_l_hand_str = 'icons/mob/items/lefthand_vr.dmi', + slot_r_hand_str = 'icons/mob/items/righthand_vr.dmi', + ) + force = 7 + + var/powertransfer = 1000 //Transfer per time when charging something + var/cell_type = /obj/item/weapon/cell/high //Type of cell to spawn in it + var/charge_guns = FALSE //Can it charge guns? + + var/datum/effect/effect/system/spark_spread/spark_system + var/obj/item/weapon/cell/cell + var/recharging = FALSE + var/opened = FALSE + +/obj/item/weapon/inducer/unloaded + cell_type = null + opened = TRUE + +/obj/item/weapon/inducer/Initialize() + . = ..() + if(!cell && cell_type) + cell = new cell_type + +/obj/item/weapon/inducer/proc/induce(var/obj/item/weapon/cell/target, coefficient) + var/totransfer = min(cell.charge,(powertransfer * coefficient)) + var/transferred = target.give(totransfer) + cell.use(transferred) + cell.update_icon() + target.update_icon() + +/obj/item/weapon/inducer/get_cell() + return cell + +/obj/item/weapon/inducer/emp_act(severity) + . = ..() + if(cell) + cell.emp_act(severity) + +/obj/item/weapon/inducer/afterattack(atom/A, mob/living/carbon/user, proximity) + if(user.a_intent == I_HURT) + return ..() + + if(cantbeused(user)) + return + + if(recharge(A, user)) + return + + return ..() + +/obj/item/weapon/inducer/proc/cantbeused(mob/user) + if(!user.IsAdvancedToolUser()) + to_chat(user, "You don't have the dexterity to use [src]!") + return TRUE + + if(!cell) + to_chat(user, "[src] doesn't have a power cell installed!") + return TRUE + + if(!cell.charge) + to_chat(user, "[src]'s battery is dead!") + return TRUE + return FALSE + + +/obj/item/weapon/inducer/attackby(obj/item/W, mob/user) + if(W.is_screwdriver()) + playsound(src, W.usesound, 50, 1) + if(!opened) + to_chat(user, "You open the battery compartment.") + opened = TRUE + update_icon() + return + else + to_chat(user, "You close the battery compartment.") + opened = FALSE + update_icon() + return + if(istype(W, /obj/item/weapon/cell)) + if(opened) + if(!cell) + user.drop_from_inventory(W) + W.forceMove(src) + to_chat(user, "You insert [W] into [src].") + cell = W + update_icon() + return + else + to_chat(user, "[src] already has \a [cell] installed!") + return + + if(cantbeused(user)) + return + + if(recharge(W, user)) + return + + return ..() + +/obj/item/weapon/inducer/proc/recharge(atom/movable/A, mob/user) + if(!isturf(A) && user.loc == A) + return FALSE + if(recharging) + return TRUE + else + recharging = TRUE + + if(istype(A, /obj/item/weapon/gun/energy) && !charge_guns) + to_chat(user, "Error unable to interface with device.") + return FALSE + + //The cell we hopefully eventually find + var/obj/item/weapon/cell/C + + //Synthetic humanoids + if(ishuman(A)) + var/mob/living/carbon/human/H = A + if(H.isSynthetic()) + C = new /obj/item/weapon/cell/standin(null, H) // o o f + + //Borg frienbs + else if(isrobot(A)) + var/mob/living/silicon/robot/R = A + C = R.cell + + //Can set different coefficients per item if you want + var/coefficient = 1 + + //Last ditch effort + var/obj/O //For updating icons, just in case they have a battery meter icon + if(!C && isobj(A)) + O = A + C = O.get_cell() + + if(C) + var/done_any = FALSE + + if(C.charge >= C.maxcharge) + to_chat(user, "[A] is fully charged ([round(C.charge)] / [C.maxcharge])!") + recharging = FALSE + return TRUE + user.visible_message("[user] starts recharging [A] with [src].", "You start recharging [A] with [src].") + + var/datum/beam/charge_beam = user.Beam(A, icon_state = "rped_upgrade", time = 20 SECONDS) + var/filter = filter(type = "outline", size = 1, color = "#22AAFF") + A.filters += filter + + spark_system = new /datum/effect/effect/system/spark_spread + spark_system.set_up(5, 0, get_turf(A)) + spark_system.attach(A) + + while(C.charge < C.maxcharge) + if(do_after(user, 2 SECONDS, target = user) && cell.charge) + done_any = TRUE + induce(C, coefficient) + spark_system.start() + if(O) + O.update_icon() + else + break + + QDEL_NULL(charge_beam) + QDEL_NULL(spark_system) + if(A) + A.filters -= filter + + if(done_any) // Only show a message if we succeeded at least once + user.visible_message("[user] recharged [A]!", "You recharged [A]!") + + recharging = FALSE + return TRUE + else //Couldn't find a cell + to_chat(user, "Error unable to interface with device.") + + recharging = FALSE + +/obj/item/weapon/inducer/attack_self(mob/user) + if(opened && cell) + user.visible_message("[user] removes [cell] from [src]!", "You remove [cell].") + cell.update_icon() + user.put_in_hands(cell) + cell = null + update_icon() + +/obj/item/weapon/inducer/examine(mob/living/M) + . = ..() + var/dat = "" + if(cell) + dat += "
Its display shows: [round(cell.charge)] / [cell.maxcharge]." + else + dat += "
Its display is dark." + if(opened) + dat += "
Its battery compartment is open." + to_chat(M, dat) + +/obj/item/weapon/inducer/update_icon() + ..() + cut_overlays() + if(opened) + if(!cell) + add_overlay("inducer-nobat") + else + add_overlay("inducer-bat") + +//////// Variants +/obj/item/weapon/inducer/sci + name = "inducer" + desc = "A tool for inductively charging internal power cells. This one has a science color scheme, and is less potent than its engineering counterpart." + icon_state = "inducer-sci" + item_state = "inducer-sci" + cell_type = null + powertransfer = 500 + opened = TRUE + +/obj/item/weapon/inducer/sci/Initialize() + . = ..() + update_icon() //To get the 'open' state applied + +/obj/item/weapon/inducer/syndicate + name = "suspicious inducer" + desc = "A tool for inductively charging internal power cells. This one has a suspicious colour scheme, and seems to be rigged to transfer charge at a much faster rate." + icon_state = "inducer-syndi" + item_state = "inducer-syndi" + powertransfer = 2000 + cell_type = /obj/item/weapon/cell/super + charge_guns = TRUE + +/obj/item/weapon/inducer/hybrid + name = "hybrid-tech inducer" + desc = "A tool for inductively charging internal power cells. This one has some flashy bits and recharges devices slower, but seems to recharge itself between uses." + icon_state = "inducer-hybrid" + item_state = "inducer-hybrid" + powertransfer = 250 + cell_type = /obj/item/weapon/cell/void + charge_guns = TRUE + +// A 'human stand-in' cell for recharging 'nutrition' on synthetic humans (wow this is terrible! \o/) +/obj/item/weapon/cell/standin + name = "don't spawn this" + desc = "this is for weird code use, don't spawn it!!!" + + charge = 100 + maxcharge = 100 + + var/mob/living/carbon/human/hume + +/obj/item/weapon/cell/standin/New(newloc, var/mob/living/carbon/human/H) + ..() + hume = H + charge = H.nutrition + maxcharge = initial(H.nutrition) + + QDEL_IN(src, 10 SECONDS) + +/obj/item/weapon/cell/standin/give(var/amount) + amount *= 0.05 // So 1000 becomes 50 + ..(amount) + hume.nutrition += amount + +// Various sideways-defined get_cells +/obj/mecha/get_cell() + return cell + diff --git a/icons/mob/items/lefthand_vr.dmi b/icons/mob/items/lefthand_vr.dmi index c419b6f07508cbfbddb37cd0435259c85bf378a5..c033b491179cbfbd161854e63557a18215fe9dcc 100644 GIT binary patch delta 1926 zcmV;12YLA85UvrBBmo_V=-0C=30(#;COFboIqbNdu!J1c%&y~u{_;9fy$8`pqMr0tZwy_;T@&RhQQ z3rQfQI@HIeRn@7H4+s&N)L!kDD=D66lN-Z!BZUL(T>6BVbb_%g0z@W%oj4RySPXG$ zl;Rq+hpAqFk>@^ZNfUdvS$AhLjl_IG!kuEvzj&v>_HW-E{Y4_*SiU3;O8GIFkY&)mJE3Cp9FP-= zd?UrSe{rP1^}o71-3*3C^QDsfSSsa5nE|iwPN>#82h@b3#o~>Bks0v%?sU1v8N1SN zI*f510w;8Lu4`9+=fL@cDB%>t{zayLp&0RxUn6vHel0QIY@xezEzvp$d1{a8{7w1N z6PItEgWj5U^&eDI00000000000000$8g65b+fVp&)NH|@qh<^K95rLK=BRy2c=ujk zY{InXsMLg!7Vq8Vn3c=-b^pW@V$hzWlIC~gu@>)_%c4quW&FW}?w@!<9Ioc5r1{;$ zSc?-6#zmFN#JDyfL1?mtu@8JM~Xtlt5!w88rzyU#Ywe)-D&OMj^PHnBB2Pl%a$ij zab&=^|3r#Adu%%$dnPG2w=V;}V=EJKY%#e8PmoL6;S_dRwXcp*nnA0@vaEh+e*`l^#jlW-4FVN|@ zZ?@e^h2fwXPDvfo`buYu{z2X6`F}j{>+!PGQC(gWja922!$CcqYU)sy%lTcX#kzlg z@R8{+R>%FDI;zWeWn*52aZ1(0saPp8F3nLDUMFKMe)gJ`+rdc)akf2&O7MJKrx)+>D;vFf3f4Q*ZIIVNUsxW z@mBl+000000000006+(a5t7Q~)^K~b~R zf#ka);CDOHB%RHLW1QK&vtAOrquGWZt6 zoJAmOkFNAVpb4-hH;ogvXtg7S6j z#hGqSrfkVZ4K>=64qS(;1wf zpBoK=qxcS5`U60ce>w-kus_xO&g9?Q6H1%I^>TiPIUoQ4007$j4<+7DTmIT*%K!iX M07*qoM6N<$f(XK~RR910 delta 1851 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 Ye^mT4kybD1bN~PV07*qoM6N<$f(#{eivR!s delta 1763 zcmV<91|0do5c&_0BmoGqB@6+73AM*~00001bW%=J06^y0W&i*Ht9n#ebVOxyV{&P5 zbZKvH004NLmC?@%!Y~X5@N@eVWjibWyLyog*}=Vnls2vbn@HO!zP+7ZmCoDu!7n6` zS{>SB*Q@5#$vcFIOlq%o%as%lw8`bN-ALg82bVr2CY>P1DnMk?i9;oSg~br3K`Aal zdzkY2i#(4-OPbiTExH?%aa?3qO$N#bn({)NgR;@ym(N17qk*sh8gMp_<`4TM`%~Ad z?VI<{U+)K!XmRZ2P5=M}=}AOERCt{2n`u)MT@Zz5BmrVj1A?p~vV=DbBpC$)=nxkY zQ1At0`Tsw~d$U*ux@T^G-%KDG&hvq?=)QgWOwUq9myQDf0000m*tqV)oOvvL*L@~d zP)9^(!m@jJ@?wG1(C{dEGZM3ZZCyk9g1edLX&e3Y z^9-loF))Gg`x??3N93(r%rU0XJ%%mXN?RBa?R8!=5pLP_{bzHF~9J3 zabaO$@$KS#q_QN}Or2zoePBZ(@3_dkYI#xhykKHbkZYz+@{YY8e1vD|{qp;jQj9P>1%F942!Df3to{m` zj(PdmSH!0kxj+pub@AFnHwErYx!l%dz&T>?bb5?G!ctG zZN(w16dES!Gv4NwS1d-Bwp+{m(^xF?+mM$jDTC#*ALY9JAvB6@?HPj`4f7&Y+gDT^Y4pf7~FTDQ!`hK~re3Ymd z9oPvo*iet&-*xJLISi_#J{j1N8T6Eb^07k-kb%80gAH}RNcKxoRr<;YtxpE_ga(~` z?PHG!F@e?wi>9Hz?+6Sk8Rdi4Cj$pT5E$%V+IWs%RvjM*0%04hmb%2CUsh-C%dmle zAgC${a|O>Ym$p2jUoH^3!IG*gBg#iLpk5|SAo%)CGC{}DKFHT76A0a4iPg1C@a-%0 z8f60N;}HlIN+tR`K?g!NSaNkG6EGhOV000000000`9BI0L%$C)7V2*0Fn!q5LEvxasJPCt!TM@RJ^0)s#5#MAaO!r-Z(pHt2U8;Ibjc4qERIXok*{QAFE`^BF*IWg~z z&6O1C>3BRu5>#Rj4|r&<;!ht_!H2?78B000000001g002Or zaiQrpTUMl#OHEIboBY1Iy87L1wya1em)Fm(x%6*+bAyuP zCb~DldW$o7Y;RBv#khgG#RM;e`#bU(?8cxkXh5aPCn(w9)$3=m-=f!|2F|1t)XfR9 z86);DQ9VMze}D3&19WtAF(h|ZVbGDh_@y5S000000000000000NGKL-wZXz-tu|O# ztknjK%j@H$Pw+V56TH2>O|(IEk0#q6_G$nC000;){s3x66qZZx?gIb-002ovPDHLk FV1k%qJ^%m! diff --git a/icons/obj/tools_vr.dmi b/icons/obj/tools_vr.dmi index b6fb6487c73d31155c01df3b578169edeac91f24..0b8f5f04900947dc63e76d91487389335700791b 100644 GIT binary patch literal 14475 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 Og0wYs)r;@gg#9meNkYE> literal 13812 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 diff --git a/vorestation.dme b/vorestation.dme index a453552ef0..7a1b7c71fe 100644 --- a/vorestation.dme +++ b/vorestation.dme @@ -1166,6 +1166,7 @@ #include "code\game\objects\items\weapons\handcuffs.dm" #include "code\game\objects\items\weapons\handcuffs_vr.dm" #include "code\game\objects\items\weapons\improvised_components.dm" +#include "code\game\objects\items\weapons\inducer_vr.dm" #include "code\game\objects\items\weapons\manuals.dm" #include "code\game\objects\items\weapons\manuals_vr.dm" #include "code\game\objects\items\weapons\mop.dm"