From 4de81c85ad14b31d426c6c4754fdcbf4f0184bc0 Mon Sep 17 00:00:00 2001 From: hyperioo <64754494+hyperioo@users.noreply.github.com> Date: Fri, 20 Oct 2023 19:05:12 +0200 Subject: [PATCH] Add K.A.R.L mining tool (#8339) * Add KARL tool * Continue working on KARL * Fix small problems * Blank lines * Update wear icon * Add three KARL to Hulk * Remove debug messages * Fix typo * Make KARL purchasable from Aster ship * Add UI button * Fix mode switch when checking tool information --- cev_eris.dme | 1 + code/game/objects/items/weapons/tools/karl.dm | 188 ++++++++++++++++++ .../1-common/asterstradecapital.dm | 1 + icons/mob/items/lefthand.dmi | Bin 192488 -> 195481 bytes icons/mob/items/righthand.dmi | Bin 191480 -> 194200 bytes icons/obj/karl_mining.dmi | Bin 0 -> 656 bytes maps/CEVEris/_CEV_Eris.dmm | 15 +- 7 files changed, 199 insertions(+), 6 deletions(-) create mode 100644 code/game/objects/items/weapons/tools/karl.dm create mode 100644 icons/obj/karl_mining.dmi diff --git a/cev_eris.dme b/cev_eris.dme index eff9506c3c3..445138e0ad9 100644 --- a/cev_eris.dme +++ b/cev_eris.dme @@ -1144,6 +1144,7 @@ #include "code\game\objects\items\weapons\tools\crowbars.dm" #include "code\game\objects\items\weapons\tools\hammer.dm" #include "code\game\objects\items\weapons\tools\hemostats.dm" +#include "code\game\objects\items\weapons\tools\karl.dm" #include "code\game\objects\items\weapons\tools\knives.dm" #include "code\game\objects\items\weapons\tools\misc.dm" #include "code\game\objects\items\weapons\tools\multitool.dm" diff --git a/code/game/objects/items/weapons/tools/karl.dm b/code/game/objects/items/weapons/tools/karl.dm new file mode 100644 index 00000000000..698819df5b3 --- /dev/null +++ b/code/game/objects/items/weapons/tools/karl.dm @@ -0,0 +1,188 @@ +/obj/item/tool/karl + name = "K.A.R.L" + desc = "Kinetic Acceleration Reconfigurable Lodebreaker. Rock and stone to the bone, miner!" + flags = CONDUCT + slot_flags = SLOT_BELT + icon = 'icons/obj/karl_mining.dmi' + icon_state = "karl_axe" + item_state = "karl_axe" + w_class = ITEM_SIZE_BULKY + price_tag = 2500 + matter = list(MATERIAL_STEEL = 6) + origin_tech = list(TECH_MATERIAL = 1, TECH_ENGINEERING = 1) + attack_verb = list("hit", "pierced", "sliced", "attacked") + hitsound = 'sound/weapons/melee/heavystab.ogg' + + // Damage related + force = WEAPON_FORCE_DANGEROUS + armor_divisor = ARMOR_PEN_HALF // It's a pickaxe. It's destined to poke holes in things, even armor. + throwforce = WEAPON_FORCE_NORMAL + sharp = TRUE + structure_damage_factor = STRUCTURE_DAMAGE_DESTRUCTIVE // Drills and picks are made for getting through hard materials + embed_mult = 1.2 // Digs deep + + // Spawn and value related + spawn_blacklisted = TRUE + rarity_value = 24 + + // Turn on-off related + toggleable = TRUE + tool_qualities = list(QUALITY_DIGGING = 10, QUALITY_PRYING = 10, QUALITY_CUTTING = 5) // So it still shares its switch off quality despite not yet being used. + switched_off_qualities = list(QUALITY_DIGGING = 10, QUALITY_PRYING = 10, QUALITY_CUTTING = 5) + switched_on_qualities = list(QUALITY_DIGGING = 30, QUALITY_WELDING = 10) + suitable_cell = /obj/item/cell/medium/high + use_power_cost = 1.5 + passive_power_cost = 0.01 + glow_color = COLOR_BLUE_LIGHT + + // Gun-mode related + action_button_name = "Switch K.A.R.L Mode" + var/gunmode = FALSE // TRUE when KARL is in gun mode + var/obj/item/gun/energy/plasma/installation = /obj/item/gun/energy/plasma // The inbuilt gun. Store as path to initialize a new gun on creation. + var/projectile // Holder for bullettype + var/shot_sound // What sound should play when the gun fires + var/reqpower = 10 // Power needed to shoot + +/obj/item/tool/karl/New() + . = ..() + + // Init inbuilt gun + if(ispath(installation)) + installation = new installation + projectile = installation.projectile_type + shot_sound = installation.fire_sound + +/obj/item/tool/karl/Initialize() + . = ..() + verbs += /obj/item/tool/karl/proc/toggle_mode_verb + +/obj/item/tool/karl/Destroy() + QDEL_NULL(installation) + . = ..() + +/obj/item/tool/karl/update_icon() + cut_overlays() + + var/karl_icon = "karl" + if(gunmode) + karl_icon += "_gun" + else + karl_icon += "_axe" + if(switched_on) + karl_icon += "_on" + + icon_state = karl_icon // Item sprite + + if(wielded) + karl_icon += "_wielded" + + item_state = karl_icon // On-suit sprite + +/obj/item/tool/karl/equipped(mob/user) + ..() + update_icon() + +/obj/item/tool/karl/dropped(mob/user) + ..() + update_icon() + +/obj/item/tool/karl/attack_self(mob/user) + if(isBroken) + to_chat(user, SPAN_WARNING("\The [src] is broken.")) + return + if(gunmode) + if(cell) + if(!cell.fully_charged()) + var/pumping_time = wielded ? 1 SECOND : 2 SECONDS + if(do_after(user, pumping_time)) + if(cell) // Check the cell is still there in case big brain player chose to remove it during pumping + cell.give(use_power_cost * 1 SECOND) // Enough to use the tool during 1 second + to_chat(user, SPAN_NOTICE("You recharge \the [src] by pumping it, cell charge at [round(cell.percent())]%.")) + // Continue pumping till user cancels the pumping + attack_self(user) + else + to_chat(user, SPAN_NOTICE("\The [src]\'cell is fully charged'.")) + else + to_chat(user, SPAN_NOTICE("\The [src] is missing a cell to recharge.")) + return + ..() + return + +/obj/item/tool/karl/turn_on(mob/user) + . = ..() + if(.) + to_chat(user, SPAN_NOTICE("A dangerous energy blade now covers the edges of the tool.")) + +/obj/item/tool/karl/turn_off(mob/user) + to_chat(user, SPAN_NOTICE("The energy blade swiftly retracts.")) + ..() + +// Same values than /obj/item/proc/use_tool +/obj/item/tool/karl/use_tool(mob/living/user, atom/target, base_time, required_quality, fail_chance, required_stat, instant_finish_tier = 110, forced_sound = null, sound_repeat = 2.5 SECONDS) + . = ..() // That proc will return TRUE only when everything was done right, and FALSE if something went wrong, ot user was unlucky. + + // Recharge upon successfull use when switched off + if(. && !switched_on && cell) + cell.give(use_power_cost * 1 SECOND) // Enough to use the tool during 1 second + +/obj/item/tool/karl/proc/toggle_mode_verb() + set name = "Unique Action" + set category = "Object" + set src in view(1) + + toggle_karl_mode(usr) + +/obj/item/tool/karl/proc/toggle_karl_mode(mob/user) + gunmode = !gunmode + to_chat(user, SPAN_NOTICE("\The [src] switches to [gunmode ? "gun" : "tool"] mode.")) + update_icon() + update_wear_icon() + +/obj/item/tool/karl/afterattack(atom/target, mob/user, proximity, params) + + if(isBroken) + to_chat(user, SPAN_WARNING("\The [src] is broken.")) + return + + if(gunmode) + if(!wielded) + to_chat(user, SPAN_WARNING("\The [src] must be wielded to shoot.")) + return + if(!cell?.checked_use(reqpower)) + to_chat(user, SPAN_WARNING("[src] battery is dead or missing.")) + return + shootAt(target, user.targeted_organ) + user.setClickCooldown(1 SECOND) + return + + return ..() + +/obj/item/tool/karl/proc/shootAt(var/mob/living/target, def_zone) + + // Check source and destination + var/turf/T = get_turf(src) + var/turf/U = get_turf(target) + if(!istype(T) || !istype(U)) + return + + // Launching projectile + var/obj/item/projectile/A = new projectile(loc) + playsound(loc, shot_sound, 75, 1) + + // Local pressure affect damages + var/datum/gas_mixture/environment = T.return_air() + var/env_pressure = environment ? environment.return_pressure() : ONE_ATMOSPHERE + // Full damage if pressure < 0.5 atmosphere, one-fourth of damage in > 1 atmosphere, linear between those values + var/dmg = WEAPON_FORCE_DANGEROUS * clamp(1 - 0.75 * (env_pressure - 0.5 * ONE_ATMOSPHERE) / (0.5 * ONE_ATMOSPHERE), 0.25, 1) + // Burn because it's a plasma shot (installation gun) + A.damage_types[BURN] = dmg + + // Shooting Code + A.launch(target, def_zone) + +/obj/item/tool/karl/ui_action_click(mob/user, actiontype) + switch(actiontype) + if("Tool information") + nano_ui_interact(user) + else + toggle_karl_mode(user) diff --git a/code/modules/trade/datums/trade_stations_presets/1-common/asterstradecapital.dm b/code/modules/trade/datums/trade_stations_presets/1-common/asterstradecapital.dm index 1bac265881b..a73acc4799a 100644 --- a/code/modules/trade/datums/trade_stations_presets/1-common/asterstradecapital.dm +++ b/code/modules/trade/datums/trade_stations_presets/1-common/asterstradecapital.dm @@ -52,6 +52,7 @@ ), "Mining Gear" = list( /obj/machinery/mining/deep_drill, + /obj/item/tool/karl, /obj/item/tool/pickaxe, /obj/item/tool/pickaxe/excavation, /obj/item/storage/bag/ore, diff --git a/icons/mob/items/lefthand.dmi b/icons/mob/items/lefthand.dmi index 0d71a43c56eb965cc0bba1e377284011015a1211..371b4415c80a25e56d19a11e9c5aa723c5b5ea3e 100644 GIT binary patch delta 8587 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 delta 5571 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 diff --git a/icons/mob/items/righthand.dmi b/icons/mob/items/righthand.dmi index 7af168d9676f5bb871975d46bd7f470c88eb3aeb..ce1173402f318e6d43522072c04714c2abaccfe5 100644 GIT binary patch delta 6150 zcmXX~c|4R~7k`ixvPTl5#jY%cG?=oLeJ5d5Qp%p}%R?zs$W|nKMA>CGF_mnU#x8@g z42^w^b(k^pKKi}qpXa%sd+xbs`QCfZJ(OXNH_IG}XPC}cNpKudJn*JF^@2{UIukGZ z;?dah9gkJ&okV>!f2G=*vl@m@_gr7j!GzPey=AXIm;^PiJ~22FV{nA2-rxu``&VXh zpx)*;a|sW)@}xwTq!9^LT*$r9cJ{y-*5G-;PyL6Pyn`$hH-8@|^fVpyg#Su?T-vp8 zpeEzJAt_3GuJh+!4X|gX%WO=Q?R^O@Y$FchlT14awjmt*S>v_ ztBWBRJlm6TYDaSd-)Zn0cP8A z(MCdyNDzx{Ji->y_;X{sFuhToSF^$cDMsB&nf|SCuGQOA?CZe&90SVvK{?mlCxe!DeA*>c=h7mM+uKnD`>bOrG_%l}Ge=hz=5g@kabfdwTUdwb>E$YByV zp`=zCwj%t`IPqzAo>QmZ0qmC3;WmTKd4+#-o`YeN?tjd^v3z37hCJ2b2TmT;g=pq% zxTfgE)t_ATF-f&)ITJ1pqh8%6+c13lPb?;D6))=7TDQ?gDH4jNupP0B zyovu6FS?#QR*~h0rDS;9xx(~!H`m6fM>xbGRhR?@zN7Ih8skfZ*E-%WJP{$ZziG&^ z_3|v2Q~weBDZ$H-ROZg-+5qo=l$1f?{AVh7oBTw&_Z4?eoPs(+C>(aaHRlCm1fE|V zih5_YB!>2IuJa^@8Sktb_@3L<0=`$YF0PyHdq5ZOpEb%NzQ4o6QFuN^DCF<+t)OIv z<3_l~x-MEFnG}%VREIcEli44>kUYO7!2yd%2mh(GcJ7}>C=>w7kMs!|wG4Co;sn`^ z>S}f*cf7X$U>fr{KL}MZMm^__?>hvAD!t7Fg&l=*>uj8(ere~KQ8kXZP5dL8C6x0U z@z17UZrEefeZ>mMY0kr_MQ`ub?gj3%@Q#(4&r44Hyb(8|boQrp@!y#b?XT$NS!QVi z_qJ$<|M9rNnpTFj1^$!8Qvc=j5F{1;QQDDGOPTuHuy^Sm zs5>M7e~u#DQ%3VZ$0aQLOny` z*PW3gw8#6;I)eW;N{6>2g2MTe5YlHO2L`G3lG`9e0A z<0yyXM;%NUuK0l(2gf<#1oWcqWcyl3C3r}CKPCe5VRM&u49X?f;-#ryaJ3GaIns6~ zGa@D>;U?$&xBC50f8&}$ z$bVi<+@zfjrKHa)#eplJxh0S!cj32F!=W15A%6WZ0fmTPZxJF_FX0sjObJ`IC$aFp z-p2u@mq*?`Z?k~trn^&H5%xiU zDXi{f-uPRb$@Gj!Mf{`bkkd(>bL#7|TB|y|ugG=@WVL7Hz#K56jaz7%VIWnm#`j#{ zSGt|=2sc@3lfL*g<@!VPZa}j&;PXONCX=QGxUMUDja_f`GqK`3t1KfgF)LZ>Y>>jc`3VS=Gg6 z@o5rA{d7#6g9)wetiAo7;~59jr*YTYFd%pJ@1HQqZE|ZMNpY}TIF7OU@FYEzLtLdc zLl=K!eY(P~tV!-nee+utP&IoT$C+P(m{GrX$#kl22VD0l$Y&+ukMqiva&ERcM>d-{ zaJoOhoz0Zj{jdV(dp^^hZl`nzV2lnQf%6&3mX(HGn1$^H;N!JCaRMG*7nM;ZU~M>Z z3#PSp#if-CjW+l~xz|n!qwpr* zZp9<;N(PUeCbwz7(JF+&J98S5WbOwv15q^&bEHf}5~Ax&y)EPQxeFImV|@wj)2TaE z#!Czhn$@G0mIHbm+sv0~?#m3=#q(kk91+jxX_g$nLm;VncbLp0{C&SsRS5Je7dBcn zmWbq6GF4Z39yvEfLKr1;4UD1khV{L@L0CvAwNm*l_veDZRQUrZ*dlLnFyUrEZ*Q2` z)ukIgx91{XX}uH?D-n(Ziyh-J@9#yr!9uh`ELc^+?ed_aeVjVcpi{WkQ|*wU)#zk&W;}SH)&{!{x&&*k*l+U#Rm8@NgP4VuZJ3twMaY4yV7?!g-g@<* zO>OO3-rMLM+P80wKx9d9zDInOhw~OupdGz18u2NQ#P5H8C*Hn3T`CyWf!G&N=ocn>kijZsBF&=+!dpd>NuBR;r-v}uY z>D%k;rj*2kBO?!e$H6tOv5?_>`}oZvv{)N-(aLM;v>DTuRUxPg#28sXSl`++YV0v8 zH^8~PXnk+qc&goCjjD&F`V42ug)bhyO(WLoo8Pb?8gg21W@&6g*J|5{oBUMBJA$<7 zqZ4f(e(=3o3KC&4l60|lJuImiE`$CixnNs;jG^0j95j-lD)vE%Z6AAMWqD%xSMd|)TBBpn)@{kz9he`mHWwH$fn0F;l3!M%N6 z?&7Yy65Y~ApNGlS7%V;-KArNdEAVI6PGytqmnGFR&CTJdDG?8s^htoVC|JS@*c@Xl ztpt@7mkKIJC5M&amisn3clwYz5SZDEOxXa9ouHFj1NT;(Lyc8ODRUB`wR)gd$@(dx zF5K(}gq`VOg^KY`f9|VZS59*T2W*y|qjN;2UKIv&+MEruLw9aaTO2iu!ZFl7(lm(I zRNTP7y28nI49)H7lgkZV_Qq~(kyD-#H3X|>R(lJRo#M`2gH7mCfHfizbdvl*-v zkaXd@jp290oa0J+M{EWW$7K&>YO!y8-oDzYnlhT~{8P1-kmO?RTeg4T;xMykEAN`- zJhOQ_9m5{N`f4*Uwx`K1RCi}wHncBoMV(LIR^UvIUzrcTRrW+yKzW3U`7v+Io{yQf zMVEB5Qa0MB_u=hRjg#Wz*O9PL^Sz!Rk^1^W^2IvTDX}s5R6Y15I@oOtFIy_m))(*k zcjG>JTVJ6Vb=2Y6?!ib0Z;p%=2Zed&26P2R_@RhEIw!o}*U~41$qn+ znQ(~_J>lsHnKHYNG`Ip>X#Fm<<^-}`e}yS6oNVsbp3|B6=$Qe{cK+jlHnX~ozj||(qy*V26K11;dM`Ia>|~tgg3nN8|$Q1k+He%p!1sq*RM79g;*xb4lQNpZrOKG zo-TJ?L8 zYbzpzi(clK9!qe%-v==n13sg);6f@mWYm-y*Zw0lK+|#P+~QE#PX|oIo=y5i%h$Pm zTAX&0qb-#_=Trs5k8di}$js}A#Ki069E=P)5$SzrwDe1{k{oxIhkCS+sYHZsF(r8FP53cOs4FHEYK?B_@*1H{U zq=TsjpQe58+Zt#DXCpIAyHx46>_BmY2;th~T3w@0AS`b*C|isOdu z0v+?9OX(!(I_sy5SP!CEyW9>}IQ(yA-uA3HttpDK9kaC?+xq@XPpgMto_9Ortz$e` zc%axgLL~S@bKN!k8i=ZDaYZ}CiDtjMi7So1z9>;tt#q-cDB~6E#GKC50QP<9^<(J> z)myU`OYSZc*tO#|L@BAQ&D~c-WMfdfIbvRs{_&v-J+H1#wUw>Nf%Wn(RCZT{N?9~9 zqk3J&`=EOF*SWJ_-?6sc?-*!kw&|Q^0s65~T>};JA(@vVz)SB}C8?~5HWMKRY4_?> z+ZkhKT?z)0A6j-g9{`ubi8+eX^h2d%hiQ|0NoHY=io}K4^7Yg0X0)ZNe&4Ftw7d33 z7U7KO3_4YvwlPtEGQ-oZ{BJxTgJw1uL?WfN6U0-3r1G!&HWHT?x0XkX!a@(XPaMl9 zo3%KM4K%>OV%|86e;md)4x_}4hc(g(kJZ7JF@G&@+IK9{|0Ml1v}oJ6&XeE1s=+TN zF))jZQzAX;yQhAn`(b&T!#)a{#tt{e8g+onz2BN;Lal{NvtB|qnHWN;x95bljcqJx zqVI`Qp2GVjr@dj(B0>o_Ql|KkKi4sa`{QF^HTeIk*;h5>#P)1XM|PC(ePVv`ryHI7 z*>DP;A2QkSB~L8XflVGO+cdBt%7E=(X{DbVx78W`s5TdUpDROowYWvPTe zYLv#Fer>qir$;hl^RH}%FK1xO7M7#1+wf27k;p0Lr%6hR^kH0g8znKUVE z9mA&C+qAMX(os_cOe1(Je2BFY_tyU=t(y3h;^4#tm5-ptr4udw#RdeLJ zFj_ctSU1`^C-4^W&z^=t@dsmI(ZG~FR7KbpDpA(9TQVw_IRITXE^)^k?~6?564II$ z{=RdYLUPKdFWq21pCaClS@H-DbC8w!Kvp}IF?iFfT--`e3oK#sp&uVxg1iZ3VIm(o zdC@k=*SPUVte>a9aUr|-WqIE2>5kQ8JMC-pwh|Y-ypM8gCO71aq`$Pf&mmdxEU5sU zL8vx#jrw*CCS@kt`nqg%H8u(CZUP=cC4j~1HI*7qoN&xkvRA<7;(@`#Kc;q9U1(9i z3uq@iIxM?35v5YVtIcH@puaWlO3fz-1Bz)4Rz1X_=8G6(rdBw0XoH6NV;z`FRQ`> zQx7I%tKoFo4iO7VMwo6?1Gl;1>_A9z$~Tpg5)Gw^kib7bJg-JB*&*gUpFC1|r1L|N zEkIKFd{s4&+u=?gMuI#9Z(SSLTBy8uH!H`+k4I>39Fnsi>kaivq_r?bCbK?YE~hk7 z$!gl9T{D;oINsP-zqNzVp9Zy>IACD?Z|LEM^;4!7bBNEEJBzRck3)Z6n~%!gRB z`warsKFFGL5+C5DnZB%vPTGztwz?ar!9N(9AHStiRjjO(VFEUu0C#Zn>RZZmTFGpE z4#Sw1Id_lgyI8)pD3!)OPVJ| z84u?LLI$bv?(jp+Fdwb?mDF6vB73A^)5zIt!-jWs6C)%aKPt1`QSZevqck(6fn%aE z4$mi_wcjQGnRy~@4@O24Re=Zmla`MNmuX(edUhsLK_JfOH2ophN(qj+ei~C098XO7 zDqxJ${VdkFa9W+$IiSuFs2UWX|GloWrZw(gfL?K&&p^>)SfQ30L`M)(yY@g;!Z<5% z`kUrYy+^l8N|X`<9fa_iu!%K;A9ux)`6u8QjmVV=ZV*^)cUm<)3T-Jz4+(UD^Md#; zlL&Esa>z4ki%DSlM9V}p06pM)jK`dToP4L)6Q zHViO!7mpAMC2aDOp4s2Dc zSD^NdY!&dYjZ-j1)I~r#Zhi72Mc4~mvzw8IJDmG$DPUgZZ&vQX*l!-;+y867CAH&K zc&ile7-cB%`#=pe?7DWrTc@s2g`?{G?W%`g87x)WV8!Jf{Z0TP13gpSa_yUs{|BvO BU)cZv delta 3409 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 diff --git a/icons/obj/karl_mining.dmi b/icons/obj/karl_mining.dmi new file mode 100644 index 0000000000000000000000000000000000000000..87f0475c730475a52337f43f5590f96967eefa01 GIT binary patch literal 656 zcmV;B0&o3^P)v zBPlmFJ5W_z9v2rfH$-(W1glgL@~9oeaUC$z4GEcDXl!!*lmzjQ=>PG~{j~%+MzzNP z0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS z%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DLb(!CqBJ2Pl<~&C9|j) zC}haRnO2mTn+jp0Dom_MC0b#8K2AfG6s!S{`70004pNkl~iLUwldp_e|`!Fv*r;TrQ%j{p&s1WQ0V0+IU%1TYgR zAVTn7MX(k^(DeWiqk@3a0}~k4&e<4PF-GsbeR665W(4q)p$z~oOQtT0uJt>(%|KQ* z({BFqwzYV_!+hHY+%dFGI(~x)k^K>OfJGjFmUWb8U~B+VpI1-fkJApoGFVXkum$A$ z@*sY{Z%QR9>!Bh~SAVWA{;>Pa_PWdymS^rt#syH-ul%we{s!3(1!TS(xYUP-_49v` z6MwVmwckFhZ>oYX{5UuJ*P*<=vJi{Yi2p@{zu?zgW#ZRd$A4X4j=J(Hckk3+R3!wU zB`irvSdx;krj&H~p9!k`&ji(x`!Rwd|2M*s|Gi(P?BtRE{l}~Hu;u^A>0&~a|7q<8 zn02Z0e*|#K{}Diy{{aU8=lt&nobxwz1J3zB;@8y&W&LyhkNE5SA6b9N|0U=Dh`;1F qU#?lh{;YK!@qhAP;eRv#pXm$6$PhzOsyfC10000