From f0f588287e3058ed003a41d3641cfdb66dc1dcc3 Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 24 Feb 2021 00:40:09 +0200 Subject: [PATCH 01/16] Mech Fab Things (#11261) --- code/game/machinery/mecha_fabricator.dm | 74 ++++++++++------------- html/changelogs/geeves-mech_fab_fixes.yml | 7 +++ 2 files changed, 38 insertions(+), 43 deletions(-) create mode 100644 html/changelogs/geeves-mech_fab_fixes.yml diff --git a/code/game/machinery/mecha_fabricator.dm b/code/game/machinery/mecha_fabricator.dm index 69b2709396d..1fefe2b12ba 100644 --- a/code/game/machinery/mecha_fabricator.dm +++ b/code/game/machinery/mecha_fabricator.dm @@ -1,10 +1,10 @@ /obj/machinery/mecha_part_fabricator + name = "mechatronic fabricator" + desc = "A general purpose fabricator that can be used to fabricate robotic equipment." icon = 'icons/obj/robotics.dmi' icon_state = "fab-idle" - name = "Mechatronic Fabricator" - desc = "A general purpose fabricator that can be used to fabricate robotic equipment." - density = 1 - anchored = 1 + density = TRUE + anchored = TRUE use_power = 1 idle_power_usage = 20 active_power_usage = 5000 @@ -150,7 +150,7 @@ /obj/machinery/mecha_part_fabricator/attackby(var/obj/item/I, var/mob/user) if(busy) - to_chat(user, "\The [src] is busy. Please wait for completion of previous operation.") + to_chat(user, SPAN_NOTICE("\The [src] is busy. Please wait for completion of previous operation.")) return 1 if(default_deconstruction_screwdriver(user, I)) return @@ -159,44 +159,32 @@ if(default_part_replacement(user, I)) return - var/material - switch(I.type) - if(/obj/item/stack/material/gold) - material = MATERIAL_GOLD - if(/obj/item/stack/material/silver) - material = MATERIAL_SILVER - if(/obj/item/stack/material/diamond) - material = MATERIAL_DIAMOND - if(/obj/item/stack/material/phoron) - material = MATERIAL_PHORON - if(/obj/item/stack/material/steel) - material = DEFAULT_WALL_MATERIAL - if(/obj/item/stack/material/glass) - material = MATERIAL_GLASS - if(/obj/item/stack/material/uranium) - material = MATERIAL_URANIUM - else - return ..() + if(!istype(I, /obj/item/stack/material)) + return ..() - var/obj/item/stack/material/stack = I - var/sname = "[stack.name]" - var/amnt = stack.perunit + var/obj/item/stack/material/M = I + if(!M.material) + return ..() + if(!(M.material.name in list(MATERIAL_STEEL, MATERIAL_GLASS, MATERIAL_GOLD, MATERIAL_SILVER, MATERIAL_DIAMOND, MATERIAL_PHORON, MATERIAL_URANIUM))) + to_chat(user, SPAN_WARNING("\The [src] cannot hold [M.material.name].")) + return - if(materials[material] + amnt <= res_max_amount) - if(stack && stack.amount >= 1) + var/sname = "[M.name]" + if(materials[M.material.name] + M.perunit <= res_max_amount) + if(M.amount >= 1) var/count = 0 - add_overlay("fab-load-[material]") - CUT_OVERLAY_IN("fab-load-[material]", 6) + add_overlay("fab-load-[M.material.name]") + CUT_OVERLAY_IN("fab-load-[M.material.name]", 6) - while(materials[material] + amnt <= res_max_amount && stack.amount >= 1) - materials[material] += amnt - stack.use(1) + while(materials[M.material.name] + M.perunit <= res_max_amount && M.amount >= 1) + materials[M.material.name] += M.perunit + M.use(1) count++ - to_chat(user, "You insert [count] [sname] into the fabricator.") + to_chat(user, SPAN_NOTICE("You insert [count] [sname] into \the [src].")) update_busy() else - to_chat(user, "The fabricator cannot hold more [sname].") + to_chat(user, SPAN_NOTICE("\The [src] cannot hold more [sname].")) /obj/machinery/mecha_part_fabricator/MouseDrop_T(mob/living/carbon/human/target as mob, mob/user as mob) if (!istype(target) || target.buckled_to || get_dist(user, src) > 1 || get_dist(user, target) > 1 || user.stat || istype(user, /mob/living/silicon/ai)) @@ -218,7 +206,7 @@ if(hair_style.length < 4) return - user.visible_message("[user] starts feeding [target]'s hair into \the [src]!", "You start feeding [target]'s hair into \the [src]!") + user.visible_message(SPAN_WARNING("[user] starts feeding [target]'s hair into \the [src]!"), SPAN_WARNING("You start feeding [target]'s hair into \the [src]!")) if(!do_after(usr, 50)) return if(target_loc != target.loc) @@ -353,19 +341,19 @@ material = lowertext(material) var/mattype switch(material) - if(DEFAULT_WALL_MATERIAL) + if(MATERIAL_STEEL) mattype = /obj/item/stack/material/steel - if("glass") + if(MATERIAL_GLASS) mattype = /obj/item/stack/material/glass - if("gold") + if(MATERIAL_GOLD) mattype = /obj/item/stack/material/gold - if("silver") + if(MATERIAL_SILVER) mattype = /obj/item/stack/material/silver - if("diamond") + if(MATERIAL_DIAMOND) mattype = /obj/item/stack/material/diamond - if("phoron") + if(MATERIAL_PHORON) mattype = /obj/item/stack/material/phoron - if("uranium") + if(MATERIAL_URANIUM) mattype = /obj/item/stack/material/uranium else return diff --git a/html/changelogs/geeves-mech_fab_fixes.yml b/html/changelogs/geeves-mech_fab_fixes.yml new file mode 100644 index 00000000000..837de196b28 --- /dev/null +++ b/html/changelogs/geeves-mech_fab_fixes.yml @@ -0,0 +1,7 @@ +author: Geeves + +delete-after: True + +changes: + - tweak: "Made the mech fab name lowercase." + - refactor: "Tweaked how the mechfab accepts materials, no user-facing changes should be noticeable." \ No newline at end of file From bd2f466f571e29fc581c508816a241c6dfd45291 Mon Sep 17 00:00:00 2001 From: Alberyk Date: Tue, 23 Feb 2021 19:40:41 -0300 Subject: [PATCH 02/16] Reduces the damage of medium bullets (#11263) --- code/modules/projectiles/projectile/bullets.dm | 2 +- html/changelogs/alberyk-bulletnerf.yml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/alberyk-bulletnerf.yml diff --git a/code/modules/projectiles/projectile/bullets.dm b/code/modules/projectiles/projectile/bullets.dm index 3081bf2c4ac..fa41aef57af 100644 --- a/code/modules/projectiles/projectile/bullets.dm +++ b/code/modules/projectiles/projectile/bullets.dm @@ -124,7 +124,7 @@ damage = 25 /obj/item/projectile/bullet/pistol/medium - damage = 35 + damage = 30 /obj/item/projectile/bullet/pistol/strong damage = 45 diff --git a/html/changelogs/alberyk-bulletnerf.yml b/html/changelogs/alberyk-bulletnerf.yml new file mode 100644 index 00000000000..affec8aa76b --- /dev/null +++ b/html/changelogs/alberyk-bulletnerf.yml @@ -0,0 +1,6 @@ +author: Alberyk + +delete-after: True + +changes: + - tweak: "Reduced the medium bullet damage to 30 from 35." From de8d560353981f9f3fbc9e8bb37b940ec929afc7 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Tue, 23 Feb 2021 22:41:44 +0000 Subject: [PATCH 03/16] "[ci skip] Automatic Build - 2021.02.23.22.41.44" --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 5 +++++ html/changelogs/alberyk-bulletnerf.yml | 6 ------ html/changelogs/geeves-mech_fab_fixes.yml | 7 ------- 4 files changed, 11 insertions(+), 13 deletions(-) delete mode 100644 html/changelogs/alberyk-bulletnerf.yml delete mode 100644 html/changelogs/geeves-mech_fab_fixes.yml diff --git a/html/changelog.html b/html/changelog.html index 4a5b199ed46..89bd0164f1d 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -36,6 +36,10 @@

23 February 2021

+

Alberyk updated:

+
    +
  • Reduced the medium bullet damage to 30 from 35.
  • +

Geeves updated:

  • Added the ability for ore detectors to find minor xenoarch finds, as well as major artifacts.
  • @@ -45,6 +49,8 @@
  • Fixed exosuits that do attack animations being off centre.
  • Fixed exosuit hardpoints losing their cooldown colour before the cooldown actually completed.
  • Climbing out of an exosuit with a closed hatch now properly updates the HUD.
  • +
  • Made the mech fab name lowercase.
  • +
  • Tweaked how the mechfab accepts materials, no user-facing changes should be noticeable.

MattAtlas updated:

    diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 7888ba904fa..bd2aae126fc 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18443,6 +18443,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - bugfix: Fixed being in an exosuit not letting you override its assigned leader. - bugfix: Fixed various bugs regarding tying nooses and attach people to them. 2021-02-23: + Alberyk: + - tweak: Reduced the medium bullet damage to 30 from 35. Geeves: - rscadd: Added the ability for ore detectors to find minor xenoarch finds, as well as major artifacts. @@ -18455,6 +18457,9 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. actually completed. - bugfix: Climbing out of an exosuit with a closed hatch now properly updates the HUD. + - tweak: Made the mech fab name lowercase. + - refactor: Tweaked how the mechfab accepts materials, no user-facing changes should + be noticeable. MattAtlas: - tweak: Tear gas should now be much more effective. - tweak: Stun batons now disperse pain all over the body. What happened previously diff --git a/html/changelogs/alberyk-bulletnerf.yml b/html/changelogs/alberyk-bulletnerf.yml deleted file mode 100644 index affec8aa76b..00000000000 --- a/html/changelogs/alberyk-bulletnerf.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Alberyk - -delete-after: True - -changes: - - tweak: "Reduced the medium bullet damage to 30 from 35." diff --git a/html/changelogs/geeves-mech_fab_fixes.yml b/html/changelogs/geeves-mech_fab_fixes.yml deleted file mode 100644 index 837de196b28..00000000000 --- a/html/changelogs/geeves-mech_fab_fixes.yml +++ /dev/null @@ -1,7 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - tweak: "Made the mech fab name lowercase." - - refactor: "Tweaked how the mechfab accepts materials, no user-facing changes should be noticeable." \ No newline at end of file From 14ee223eb3b83c2c2abc27741a5fc659efc51a9e Mon Sep 17 00:00:00 2001 From: Alberyk Date: Tue, 23 Feb 2021 19:43:39 -0300 Subject: [PATCH 04/16] Adds a couple of new gun sprites (#11113) --- .../projectiles/guns/energy/nuclear.dm | 6 ++- code/modules/projectiles/guns/energy/rifle.dm | 32 +++++++++++++ .../projectiles/guns/energy/special.dm | 45 ------------------ html/changelogs/alberyk-gunsprites.yml | 6 +++ icons/obj/guns/autorevolver.dmi | Bin 636 -> 612 bytes icons/obj/guns/blaster_carbine.dmi | Bin 877 -> 840 bytes icons/obj/guns/blaster_pistol.dmi | Bin 868 -> 852 bytes icons/obj/guns/blaster_revolver.dmi | Bin 787 -> 806 bytes icons/obj/guns/blaster_rifle.dmi | Bin 2196 -> 2123 bytes icons/obj/guns/detective.dmi | Bin 501 -> 551 bytes .../guns/disruptorpistol/disruptorpistolc.dmi | Bin 848 -> 1042 bytes .../guns/disruptorpistol/disruptorpistolm.dmi | Bin 1068 -> 1263 bytes .../guns/disruptorpistol/disruptorpistols.dmi | Bin 958 -> 1086 bytes icons/obj/guns/dragunov.dmi | Bin 1838 -> 1731 bytes icons/obj/guns/ecarbine.dmi | Bin 13595 -> 1181 bytes icons/obj/guns/gauss_thumper.dmi | Bin 5076 -> 1643 bytes icons/obj/guns/ionrifle.dmi | Bin 2531 -> 2120 bytes icons/obj/guns/laserrifle.dmi | Bin 2740 -> 1899 bytes icons/obj/guns/lemat.dmi | Bin 706 -> 553 bytes icons/obj/guns/mini-uzi.dmi | Bin 953 -> 822 bytes icons/obj/guns/moistnugget.dmi | Bin 1552 -> 1457 bytes icons/obj/guns/obrez.dmi | Bin 717 -> 591 bytes icons/obj/guns/pockrifle.dmi | Bin 1110 -> 876 bytes icons/obj/guns/revolver.dmi | Bin 499 -> 574 bytes icons/obj/guns/secgun.dmi | Bin 559 -> 617 bytes icons/obj/guns/secgun_wood.dmi | Bin 560 -> 635 bytes icons/obj/guns/shotgun.dmi | Bin 1692 -> 1465 bytes icons/obj/guns/tommygun.dmi | Bin 962 -> 774 bytes icons/obj/guns/xray.dmi | Bin 820 -> 832 bytes icons/obj/guns/xrifle.dmi | Bin 2738 -> 1940 bytes 30 files changed, 42 insertions(+), 47 deletions(-) create mode 100644 html/changelogs/alberyk-gunsprites.yml diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 53c776717bd..d493f69f25d 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -6,8 +6,8 @@ in your hand. To recharge this weapon, use a weapon recharger." desc_fluff = "The NT EC-4 is an energy carbine developed and produced by Nanotrasen. Compact, light and durable, used by security forces and law enforcement for its ability to fire stun or lethal beams, depending on selection. It is widely sold and distributed across the galaxy." icon = 'icons/obj/guns/ecarbine.dmi' - icon_state = "energystun100" - item_state = "energystun100" + icon_state = "energystun" + item_state = "energystun" fire_sound = 'sound/weapons/Taser.ogg' slot_flags = SLOT_BELT accuracy = 1 @@ -27,6 +27,8 @@ list(mode_name="lethal", projectile_type=/obj/item/projectile/beam, modifystate="energykill", fire_sound='sound/weapons/laser1.ogg') ) + has_item_ratio = FALSE + var/crit_fail = 0 //Added crit_fail as a local variable /obj/item/gun/energy/gun/mounted diff --git a/code/modules/projectiles/guns/energy/rifle.dm b/code/modules/projectiles/guns/energy/rifle.dm index 63d280c30eb..d44f4d8e1d6 100644 --- a/code/modules/projectiles/guns/energy/rifle.dm +++ b/code/modules/projectiles/guns/energy/rifle.dm @@ -165,3 +165,35 @@ toggle_scope(2.0, usr) else to_chat(usr, "You can't look through the scope without stabilizing the rifle!") + +/obj/item/gun/energy/rifle/ionrifle + name = "ion rifle" + desc = "The NT Mk70 EW Halicon is a man portable anti-armor weapon designed to disable mechanical threats, produced by Nanotrasen." + icon = 'icons/obj/guns/ionrifle.dmi' + icon_state = "ionrifle" + item_state = "ionrifle" + has_item_ratio = FALSE + modifystate = null + projectile_type = /obj/item/projectile/ion/stun + fire_sound = 'sound/weapons/laser1.ogg' + origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4) + w_class = ITEMSIZE_LARGE + accuracy = 1 + force = 10 + flags = CONDUCT + slot_flags = SLOT_BACK + charge_cost = 300 + max_shots = 4 + can_turret = 1 + turret_sprite_set = "ion" + firemodes = list() + +/obj/item/gun/energy/rifle/ionrifle/emp_act(severity) + ..(max(severity, 2)) //so it doesn't EMP itself, I guess + +/obj/item/gun/energy/rifle/ionrifle/mounted + name = "mounted ion rifle" + self_recharge = 1 + use_external_power = 1 + recharge_time = 10 + can_turret = 0 \ No newline at end of file diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index a0cc5085d76..4006365405c 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -1,48 +1,3 @@ -/obj/item/gun/energy/rifle/ionrifle - name = "ion rifle" - desc = "The NT Mk70 EW Halicon is a man portable anti-armor weapon designed to disable mechanical threats, produced by Nanotrasen." - icon = 'icons/obj/guns/ionrifle.dmi' - icon_state = "ionriflestun100" - item_state = "ionriflestun100" // so the human update icon uses the icon_state instead. - modifystate = "ionriflestun" - projectile_type = /obj/item/projectile/ion/stun - fire_sound = 'sound/weapons/laser1.ogg' - origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4) - w_class = ITEMSIZE_LARGE - accuracy = 1 - force = 10 - flags = CONDUCT - slot_flags = SLOT_BACK - charge_cost = 300 - max_shots = 4 - can_turret = 1 - turret_sprite_set = "ion" - firemodes = list() - -/obj/item/gun/energy/rifle/ionrifle/emp_act(severity) - ..(max(severity, 2)) //so it doesn't EMP itself, I guess - -/obj/item/gun/energy/rifle/ionrifle/update_icon() - if(charge_meter && power_supply && power_supply.maxcharge) - var/ratio = power_supply.charge / power_supply.maxcharge - - //make sure that rounding down will not give us the empty state even if we have charge for a shot left. - if(power_supply.charge < charge_cost) - ratio = 0 - else - ratio = max(round(ratio, 0.25) * 100, 25) - - icon_state = "[modifystate][ratio]" - item_state = "[modifystate][ratio]" - update_held_icon() - -/obj/item/gun/energy/rifle/ionrifle/mounted - name = "mounted ion rifle" - self_recharge = 1 - use_external_power = 1 - recharge_time = 10 - can_turret = 0 - /obj/item/gun/energy/decloner name = "biological demolecularisor" desc = "A gun that discharges high amounts of controlled radiation to slowly break a target into component elements." diff --git a/html/changelogs/alberyk-gunsprites.yml b/html/changelogs/alberyk-gunsprites.yml new file mode 100644 index 00000000000..d79347d8412 --- /dev/null +++ b/html/changelogs/alberyk-gunsprites.yml @@ -0,0 +1,6 @@ +author: Alberyk, Kyres1 + +delete-after: True + +changes: + - imageadd: "Added new sprites to blaster guns, gauss thumper, pump shotgun, ion rifle, disruptor guns, laser rifle, bolt action rifle, energy carbines, security handguns, revolvers, machine gun, marksman rifle, and some others." diff --git a/icons/obj/guns/autorevolver.dmi b/icons/obj/guns/autorevolver.dmi index efc8cb54722d378163f111a25f9fbf63348103e5..97d8b23745ba5fdbc874d6a3f9a74b67f6e712bb 100644 GIT binary patch delta 449 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 LMNUMn143Ye?K^6~ diff --git a/icons/obj/guns/blaster_pistol.dmi b/icons/obj/guns/blaster_pistol.dmi index e45921e2ada792f85af17fe8d31abc8ae2659d16..b8c2d8e897786257862d7c589fa64cc547805dcd 100644 GIT binary patch delta 741 zcmVIfj;n&wJ6%N8YJTod- zN=#mbCnv}_I8rGnWHMBTMJR7LA;7@EyKnLkk&tJ9$3TgTGbOXA7${@N#hF%=n41b> z12w0l<|I~vOw}>LrP;_7yKX~V8ccCmhf{+&sWuoIkZJ{q%HxYN5IRhV(vgExhq8jJ zp9?q^0SpL>GzdQqasU7VCP_p=RA_8RhpRd5#kE?yJ4T;E;NTy)a++kSVKmzT8g{se#^Wa^wO zpNHkTZY#s*+`I<%He;;}mpj7FZ`P_WuN@w?WM35pBCjVMVF!C_YyJHCAgY_{-91t8 z+XtdU+jSprFBv48$^(|y#0{9`fkwNeJb_6bup0MORKP3` zIK8WpQotY&SY87VW_iHb#Mc|<0W0<2KoA5$5UI?@Ash%IY&>C_@@8A!wLDz`4`nVs z^OKAAy+GP(v^Ce4?A_TG_{>j|==)-SknHk6peay=2b5e#i{0eAPWd5ePz?m}`Cb>j zh4Pa0RDpO4nn0jAA0L%po!Hd`0^Rut`JqG($Or^R9~=pSAc%iXj))*=>K0K%(4L8@ zK}olaB7*izT)YNV-8za0+A|SO4@R2hJP{!-o;LpTM1-h#>iEwS5g>E?=ZOdy#Gl{` XxN|cBy=uWS00000NkvXXu0mjf3?o*$ delta 763 zcmVKWN{}OTOmJy7G9}SAQykXe)L>4k4Tc7!S`nX zl#U{tI+PV${anDY2mob_i!^2T<`n<{0su)wK~#90?U~zB!yptziBuYmZLGIqi~9e6 zDUh}kNZ^#DkQv=;fAV4%aLy3&u#qtU060@=ykFeE?g&rKCp%DHJY1kF9+?Uti~&QLo>~e&2189VQKjl3wYT)ODy|f2Qb09ZGujbvmWr2IU>t z0{&YmWe%oL2Ekm)cp=yiV`hg+dv^AEK<&GNe!FGMcssyuOTCO|;@B8=X=7F^{M-TnVxQ7X1*u$Kiz9L-TeXO-TMWa-1(m( zcm5~qXU_k0fBn4q-^c$zvgd!l{#v>nJ+^Zy9WF+~0c00000001PCcKwv0zMro9Zi2atxVi%`UH8|J>tu5&uC8vt zOV|A>&A5n|4w+J)dFi^h3=eH|*x2Q?PVXSF%#;G%am2KMJ5nlGpDu8t&nmpk!rv_b z000000N}q+=GGvR|Ks^PtxDJg?7dn7>04#yMGt@}<}kqw_Mj9Wy?@#x66&zm2Hp2K3DrvzQ(z?&ron((;Ynp1sx+fKi?%~fZ2PwAr?Yd zzVVx@eM$y>wh%Sn_rDj}GU)TyWq&~QX{Z@y9~1Awyjgx`%=&z~U3h_vIcPYwOEs^S zHE&O3!&h`5at^-Aq-i%HbKWk1zsjD21smXu4EnTwR%RH6i9_`R1l0$mpQri&Ws}FYC!b?=?X+2Fr@>~d_Z%C_y9B?uzxx^=>`-Z z(5(9+YC!V=bG;f%4G2D6@qDgudwhgo<{vchE$ z2GRIMXLP}b})*Pt5zX%r!Bo;3c`D8jCJ;`mRa2yk-zr%?pv aU+@E}Y&&5bnBA)Y0000s#NpY2DRt(wk%B*L&rq zgJm4A&OZ&O_lzzZ%GPuKzC&rRfFz}V7}fj=*jt#^T|KAg{Dm-5DJv>cXJ+~bqjUAF zK9PU4ElM)pFaJn5m9RBlQH(y48I;Vbi2Xpv9DJp-E9c&OEvw{;DdD6 zp~)NUtJ@t9)&T$j004dse||n-lh2Ly`{#dlK5&oxpPMgm^?T=kem<~w{^#l|Ao@6F9hkQ*i@C zN+-@A;sWcS*PQPRRP-8XRdx%eg#+2b^&Nz3-lhbzaQH4Aj&!4RSQV+vElS;(vY{)+&QN)ga#mc(=SW<1|jj zSZS>f&<)GJ(e30vwEh9|pW9D|_1_10v%E8t*MPD5A-e?W2r82Q`uXeE&mU>I9hUxI zb3*>L$yb$we2C;;3@=C-gD^b^3Kaa!MZr5>a5Y$M{OZ-&zHLf2Z+VV-C|ePgeKqk0rHR;_%(*S zm@Qe$`Sdj!AC!y-Qpm>d9RL;756pYueww0}yGe~$pmT)%XAiDx)K%!c2A#`Ky? zs}%Y7pcRfnSQ=ZcY#oz3sP2z=+nlEH8~|=Zt!r)($W8Sfb5^Cuzi-YVD!)k96|w~o zHs43ajIJ*lz}d#O<^)uJ7W(-RKvt#9zi;unT|dY4;C^O3uTwy}?VZO7&%nZr?`=S5 zzklN^SHb6D{_R!#IN}&d{JVMU!ujf;a3t#|JOj`)oouXIp~)$n0ywI~BiiX?_;=sS zCCTN}E<5p<4*|G2IUec{pk#s#f0QiD+@Q2>!U1$M7Y29i9PB&KZkh&_?rc8~f2e$t zOxQu>_|7f@uwl%W<#l-L%z?n|dHkD6?|bWB`r)J`GT;zy_LXk2J_P^)~YRBzRifoDW{AJ%ZDSLiB9^sXo@s z?*|adZNM8&lRass+T+1ZV?>C1w*OQgYv%Wt@l$3OFrV6lE_r$FrwZ8`kl>WZU@do|B;P*QL51(m50G)MH#Vcw-YTx8Q=^p|( z=`{2ELce;U2TB0lI0owcbr@-?eH-14{J!Y58~+z61EG+$^dYt14|isA^Jmu7nuJx> zX$v8b5hU9028`dGZM7wTL>L8+!+-Usk*3;jhJ^8JEi0-*wv%wzk2sdoQ|&hc#y`lq zqL!5djFjAdC&KuVs$~v##7CNHzYzjXpmM6NicW5%0*N5eek0uYZRPO?xIP1R%1^c5 zime0l(Oxv2kGSYwBeUc|Qg8-Mx3V8^n~ z1-R_J58w0xiFz9UZbQ|6OFaI+HdF=aA4b6LyZuLo$XA*;Q?7aocdZjXa0*O&!cfsJ zjXnn8Tz_x1r5(0Htsr5jWLfAJ!FNzSvHgC}`L(0~GSz}QL%W{6CKu>{?B7uvA$b}| z{HFe`hT@(;AybusT8er4C4YGqNc@)m&4!|$fkGx~>n|Pi^vkv;b2f+m(I|3;vN0_b zGR=Rt=jk{8Uy&;SIM1IqWGAFC?p#43?|Aw*|4;tp!Fm3Ip%6gIM;(Q{v+?{xbf*$iW#?xQM|2G@eb4{9i?mcPs{cNdfr_(GVG5-)kO_e1KV$&; zR;z2?)T4TYABb#XFKrm}8KC+P89-uv)vW3`q99}HDB^utgQrT=sQ*Q^0AX$pYo-^FRn6~*e5efWjh zxA3;OiYzA`gr~*+)=b)dm$DxoK;wTB!eB5M494dp&+mT#3jF@_QR4R>j}pKCcyI>3 z8!g=Cvw-sZAA}};|4C@#_n(B1Ujr@t{-aRh_aBcEzc>GQwD9|nLJPnDD75hVkHW_X oZ~;mDz4-Vwz+f;KjQ>OjJd{z`$T&U{X?2Mny#+8XErq09O+eb2BrQCMG%}2Ef3; zmX?;BEiF1UE=@!`S4~4Y_yA@%1tJmvd_6sY4i02vV?PoSg@uL4004(bNDB)KDk>_# zz`)Lxo=5-y00DGTPE!Ct=GbNc006jpR9JLGWpiV4X>fFDZ+~t80C=3G(yc)s~V^@PF+kJ)4{$1q2Veds0k1o-(ISNizK4k-Q~Xfmn+G>JM;r-k3GJD^X7UX z4dEM#(QH)EvDsD_X)q@pUX2ejKrD;VN*}-pXC?~;M#?xJ=M1CC$ulf{_ zLFpg1sy}0v*nh7RVX6IH=6yyp1BBIYz`p?N*??7`vY~LlCgnmg%1q#W3Y4T9+UI*d z0Eb4+1^A9_B>(^iCrLy>RCt{2T#164I1B|_OqWuU;BK4U@c;k0632u?KEPxgx_UEB zC&-p18*{v8$TERIAP@-t5ahW+Xatkr}C;a;T`}6m{uu}jodu;vA{!ihxk45g7K!Yf?$q`!T|Mqiz#C>VcJ@(l8TkV;l z1dTD6B7d4e<3<2O=#N+LZqLjJ{Du~wtp>BkTKN6_?R|-?p9=KHv(_;C-`$Siy3evH zC)=iYcYF3n*t-H}wqpTbg70mod2w#LKp+qZ1OkCTAP}4yvHX2v#Pjp15zEh~Ml64y z3eo(03QQRaJOAEM@D6^y`@QdNHww+fQ#3!%L4Wh{H-Q=O)h8$?G+i`5&$JJU3jvza zLk|XLFlD*o`T3Q1$ZuQ-xrd&8;_4rRSvIl!`~o;iIdCBaPXT4mK=&areq;IhX(KAf zeP|Uz_!L&PGk#)vSC(jge%1`Adc8F~0aI8q(71PzotaC~{QML+Rf_9u%M~v^g3o!T z)_dgCK87No)&+Zp)U~quIh3ErR;K&0t6dIFHwNqN zx-PiA=M}(qo*7X5+uEfJ)?=V6rR%TKIVSt@o_0&9@2fde6}tYqi%0m}3n>2W?XFLf zT|YGOk%dPvUMJo8GxkPM|9@rthXd|4lz*v%h{7S`C=dt)0)apv5D0i^P1J3kM>*-p zYZ5_T;oJ)a)dND@08h0&T?}4>oreoD>$5UCVt3OsD94m37zOd@(W-~gNQImfc`dmQH77BS8>4Lpqai5<9r=| zuPFq=JyO`$t5U{aZGcBb7@ei{x47*8)c;xD_n9&>t3!G_~mpqZQuwWetjW+IhR8lIKqcVUofSY&GPl^N*fr1+JCTWcfY>i zU)gG}+ULI31_tx+=jG`M+bY=(+pjP9F)X}h6KH7nTWbS@nIwX&R~34gPH*56*sU*g zl}#U~HGb>fJ?wsKZD0T_240igz;kgs^@T2qp-Ze8)b<31+}GN`n8ADwXfxLzrlwu` zLLWunCANnrXyLWJZuc4dgnxlUZrH0Y^d6~WERTN#5SUvQ=hu`qt0zA!VhwDp-5UbByXoN3`T|M1RR0b{QKjBFy*+iEPqVWTM}^G7ux*$ z;{zS?!VbXeqL(I+S^QIc?p?@)-7aGf@%K_kC6Mv{F+R@-1YWIG1%Fp$wj|(r`6<8E zc;-OZ%;LESCS zW19!&JpeX1?@lfLDSy7&Ne_NHeYAW5+)nSeQT(+Y5gu*(a6~pZX^A{xEYG@@qYx;1 zzfR_F!&U;fYdlC>7I-R9t-bCD>YP@wV{PlV5%j(dY~NeXIRXmw&6dEe>o|7?y=%B} z3HWly1a2Brj~W3*ZY(D<<&R_R8nz33Jqwz;PDPEt0}}vknSaFKk7G=ZokhN$HP|vH z@bHd+y~Lx39@#N`JEu}ff`fzj2tV_WNw z234_F3)pfyiDcowPe3^|COUnz56>P3n1Ip@1#48m&BW-WQv9KQXr4Kd(ei(V3Aoyz zzV}ZMywt+@n}6kL+caCWJ*{o0eF}jIf*LHf=W>&+xrQ;+`ucjyat+D*a74oI!zFdm zLGNF;tkZ71hvz3Adw5pw`tVS7!t$n}(gbJlaLE+bNQ{qsk50gT_?hF8y(WP`*j`rU z*O~W~9f8N8-4A9g8t3Pdr&s4b_H?BQ(BcIGfk5y-#(y#VemWe*?~bPV0;zEz zzn=yN^80CU9KW9khw=NV5Y6wWMl`>l8qxfIYDDw6C z@%ssJ6u+MgFX#7PjRX1pG&qpoPlH$U`!C1K`F(*vAP~GE{sZ(vjqM9iqE7$-002ov KPDHLkU;%=I(k0^n diff --git a/icons/obj/guns/detective.dmi b/icons/obj/guns/detective.dmi index 1310b8250a0a13f21ea2ebad0409ed0afc442df7..b573ad964d81a60750e19d7e6e6e269b006f25a3 100644 GIT binary patch delta 379 zcmV->0fheb1E&O#Bq113OjJd{z`#-|D2#xD+2Pn=O;K++A%{gMEENvyeC!*MSCxMO zH%UZ6R9J=Wm%&cMFbsxG)u`8{19r{QAkL&OP^xn8rinhmb`D4=uTKOkallc7I8Efc z+4=w2?ID%{GXIDbY-=Hrl( zgOpp&d8(crxwSU=ivgaG8w)QevG9L?*=e__3^EjYp}=WpjWs?osfv)f-1yazu@)7$ z>)xnF%-pIo1SgG}uL>E4qJ}Df=EH{_d=wuLy{04aLrI^+b(u^ibD>Y9Z)s=H z)BA0Hj6m%R(Bq{5yPcWZ7ogmG5qs_YrLlbhzwYwjFO83baAf#P1ttE}p(cJuu`J2_ ZiFfIrDL?N0jbs1-002ovPDHLkV1mokw7>uW delta 329 zcmV-P0k;091oZ=uBr_^dOjJd{z`zR&3ltO-9v&VuGcznKEC2uiA`$>iEeA0g04pgc z7Z(?2JqbD@28#HI#gRpoe*p7IL_t(og=1hC1*3olfKh>HrAA6h%EmxIq;eKlHDhC= z(9qCeVl4<(3=IX@U_i8s6qS^Ku2LdaeT5LvNlHW;&%jXGs3<6ygwU{>fO_^5(~Fdp z5Fy01fq;hEneEJs%n1JK12_~efVrrnfC0$|Kno^dQ+|M97t}>}f94h-OK{_K3RH&u zY&$*&V*>UY(@E37P+mY-%_tZJqhJ)!8*nc`fFDZ*Bkpc$}S+u?~VT z5J2blD;n4hMTwJ(ffxq)1w+zmFBVGLLw{cm2RCB7-3_m=d4I{};@n)?PSn?yzqAkF zMsX5{UBTHK6q;q(mz)_54};$&V2^qkGX=rV6FNUZKxYHaeX{sL@^7fDQm87)bxd-}B3ecflc4w-M8(%2D!v9$8#Qv#boF{D zADvMIlE%(pJbwTH0@z7JK~!jg?U_4n+dvS8Nk9(-YDAF$Wp_q$fKWD|hnp}^K)7=N z8EIW9jSC8~L8Nq*HiZG#xrA~A715zWMa%5$dR9Ywlmv+9tN2N~J0n5GKP%4@1VIo4 zh5v_7@q1nT4e+wL8$GKRJlwV=e07c&NRZvzj-;ZH@=a?TBI&t@7kiLg~bopB_Z}swQpk>?HG%se;AU%#< z&SrV_z3f>ZXgizEk9itSgAXoOR0;g?|0Z;n>woKSCq?dZMU}uqG>Mw2-xvqH<$P64 zGq)>L0{0U~fm<+dgo|770p{yf4*IoS(W(-7>?m-i=M6vk3=;ZszRvSz?sP@_QYG*g z$o>C@8JIWXYcM}-zLB<3!1N08{$I}*sgi67K=GT&qFgXl@Q*Be;*elW0o0DTkJGmxGSY#*EM9Zsx#KbhD*f&Qz& zLch?rePlYB?@@oR51^dP_gp9QJ?dFdSpLQ3WWGl|yD2QccR88waW85+neVwy=6l?O zZe6GHJ?{E-`8)UjyYf93GT(C{^F6yjz5D;CL*;ueWWMJ@ q=6imDdiVcNFCh2-6q4_S=gv<8p`^ub_2oqX0000V=-0C=3Gld%qhFc604 z_9+@zjVTCmaxoCYAg^FZT5V$m(jFS$-X0DvLM(1~X}sJ%Ek(d#oCv{ftJLnoga`966c$IuI+Ohslz=c z0s#CTM!)a0bZN(FIqu0x(9)!hAn=1=Gzw;VH0?M}+kfG-y-6_;}lJrtkIblMNz0r)8cUw@lVpGt>w#r z4r!`O(;_VxgQ+gf3$Jhdztz*FY4P;BilV7Dofeqq^|WbTSTQ1fnyi{)RNmks_X&o7_0@o{6%Bl`!qyIMhnVC7 znX_!|c0xP1mY!$3uJ{QXhrE%B{2Ar>Iz|8h0Dk}gKrhyJF3n4K#S#BV+O^!FBtLNW zm%{L07>hsoc7C9A)P5F*|BmE-WqwFh`Qf8Marl=sFq889a4A^ah#7#H`TQ~oWd>~R z;C5@|hi+K>5pq+RL(}{K000000RAvd^FxjI{~Gy0O^x^eI{86O_4|J@KXe=U^I5*? z{W9O)8vdKWXL}U-_R5Q@SD5?GD^T6;uu!i00000NkvXXu0mjf D;)aL8 diff --git a/icons/obj/guns/disruptorpistol/disruptorpistolm.dmi b/icons/obj/guns/disruptorpistol/disruptorpistolm.dmi index 6cb24748bc5369d4181dce1d0fb98d30a30291f4..db8437e701047a9bebd77f4fc67ed1a4df864108 100644 GIT binary patch delta 1243 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 R7;gXo002ovPDHLkV1i3Y>VyCQ diff --git a/icons/obj/guns/disruptorpistol/disruptorpistols.dmi b/icons/obj/guns/disruptorpistol/disruptorpistols.dmi index 32a26731d3ea5c0ecb034eb6efc8e675bd6e5070..39b61f70f5c41e2e5145bb5a153fd17b3d50009d 100644 GIT binary patch delta 1065 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 rR`LJJSi%3Rm2xF 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 literal 5076 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 aEs@+kW=o2n-**MlZ+5hEwXHiIboC!@*b7hq diff --git a/icons/obj/guns/laserrifle.dmi b/icons/obj/guns/laserrifle.dmi index a80044bfc82d9db0ea2ce8417ccf989fb5a25235..8ec898222eedd5a0fac4bb15a82492d62ad7413e 100644 GIT binary patch literal 1899 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 LNkvXXu0mjfL9|Ap delta 809 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 P00000NkvXXu0mjfG6lAM diff --git a/icons/obj/guns/obrez.dmi b/icons/obj/guns/obrez.dmi index 70e576258e0a2e819e7ce01f4a28c201b397c734..fb3e8268241b4d1a04db1b8359a4c835d3794e84 100644 GIT binary patch delta 453 zcmV;$0XqK81)bLQm?d_W00049NklAvx5QQb2 zv}m(DxN}RO9Rr@SnbzF{C8pWp!D+fRSxUE1C^(xSG_n3|MS?7;)!E8WvgjLvboZVF zvAOdh?{*96QLrCa3~9?7HO%0g$K&z*C-_7Oj;$K4P7-uMwG4f=$jP`+ ze-46(w!4h&{b8pa%1D0IY@$s^e>lKD)00000NkvXXu0mjf+q}#; delta 580 zcmV-K0=xas1kDAIBq||LOjJd{z`z;`1Rxq3Mny%1g@u-umcYQkS1ut?AQCPW3@$D% zKm4ICkxO)c=VTxhn&4Adgj1oif~%hk*r5RG<}x4p2B75t00G!ZL_t(oh3%KIZo)7S zhHax(lqpV!7$)N`p%bWmma=y1S_T9oVX3nr>X4;P}FYrYp@aA=&0W&Ozut zK}ef6^$E<2o)%3KKEH6Tl%ld(J$+a#wB|fiO#u;q>pa&wdD?;FS|CdEobx=-zCi~* zcFP0;Vykr?a&sqmJTI5<+lW$AEc*)$pP~QpdRzomfG$I#2<03e=kd%Q(05w7(gBd< zENr7KAXZf%N{B=NGKvom#e^ih(jZd`sh6yuNGXTuS$~fIBABAvP%4oz?BmeT?LaP0^o9av!ReUBG^{a|!(NN?gGlAACPh9$$@P#SFaHjeu{NO}?|uDl%M2guA#&QIX9E?nfX zBajiRMT<3%>Sn(gV-~T$R}#g~S_p<=Jc;AD{Z6-bJQbPe`6_QQ@p_Kn=6F0NsX82M z6VDQqX`05dI;49Oufx?0MYU$@to)LdMIV3Pe?LtZd_4btuNwOJ*E-3k3x1rgRrO-W z<*r6026syChadl(sv^9g`0D|cnAGNU=@RURKhA%P3JB`BOzX@_kcTH+ibXf93OZk_ zurdR;ILr=t3hs|YVgw_XVA2boRDJ;jbzJ_iN(?VjKS{w-TwQ{)d(f0X0SCIcDG^>T ze{OUBwiDLne_Mkpkie99LQ8^UP=op` zr~>sc!!QiPFtc%(KYu^yy4m3e{QaOKKX4e9dwy^~mLKc}p6{+7gfB+{p5XIRM1_4x z`9b}wlpjo9`*Vr%n~DcX$`7{R50oDSe}X7~L0Ghn79{MJeCyAD+C#1_X$7~<@o-;o zfdmENA;$&5t_%bT^sack>Pp&#G7Q5o%qPdA^=SLQU_75N4%WrQc7x;jWb+ABWz3>h z7|+j^F8>!n!AsvA6azPi^Mlyw|H6w{fpZDk(9iZ1aX!@#EWk8h;GEH#VgE??e*;ZJ z&IXgX_JjUVeo$nC zTRn*E&Li}L)67AL{2*9?2ii}K(e(=(8b1gGr`n+n5lr@1y1h3H{=490!)CPsxhKew a`~zbhTfHZ9!6*O#002ovPDHLk0$_p=cuB?p delta 927 zcmV;Q17Q5@2G$6WBr_^dOjJd{z`!C203aF~g@uJKE-t{pz?PPlMny$u90fWP25c-C z0000$KtRC2!1u!Tt&vNle*;BHL_t(&f$f?b-C7p5HmmReA1B z5K6i~!q#R3Jf^o~6EG>IP(Kwfulsd) z>VB;imYm+@&+|+@*MjPPz7A1wnP01y7FP?@z3ff%*1+!<)`e2_0FVF`D1JpLqE24|seRnz*CC}*$ShZxRI%I%nKQ{SNW_nUx3zVIHS-98ec zQ&5nH@$jVKdcv6xM0_|#Wc(WBDa+Ts2m^U`3|dg90ACS(f4-A2um=GV8`5kLSfDyz zx8c7PT%jUbm#jx@*axq04XG81jRNtefv799hQCM)E#9e2Gt4|@KNo6u322kXZ|dC|hyaGN6<-s!p==cL6Qs12wA)s+Fk%7IdfMY^emdA#H z;Z@^oHJ+%G+LA#E$dQNlKvaT=fOyc zWw{~`VaACZ8MU*o-8Vj>^I)W+^WYtTad|LW-1=bMLbUt@t)3Tpb!dXPT3o<&Xo9#> z=C?V_IyCTG4U}LVoFJ~08O*Ja{_g+-bxMGZ`U9;SftjPQrjY;u002ovPDHLkV1hnx B#SH)e diff --git a/icons/obj/guns/revolver.dmi b/icons/obj/guns/revolver.dmi index 40d5408fdffefe170b9db84e1bd160261072c852..28500a61c91f75f025288de22cea76b7790cebe2 100644 GIT binary patch delta 433 zcmV;i0Z#t&1HJ^1BrPOROjJd{z`%=qa8pZ5`W+oNA0O@3z#<6%LOnhD)UPQP7AzGG zZ#W^p_g(UlS9X6d%0Q?!A)qz~r&?tNS3ei9ivc>FHW-~Mk=6hJ0YpheK~z|U?U%7` z!Y~kqkEj9(7Hq|xv6a3-9{^BViLF%i?jiCM_!069k=U|#VeZq_C2ex0HkhFU=)UbP z_xtXayBq*<{qV=cz$N6XIg?W6iGp&aH5Z;#!JT}2;zECGohrzrQn_S|r3$Pp*7;f~ zRiwp_-7{nNWnI_HG{L0YS!=7JNK62(Y%Em1g?VyzUKE|rkOx7Ew;k*d)9sr?*kt&Sm6X{KOE$MtZ2(P#jzD8+BQKD z#BFf#U=uNg|Je@R3%`dg7V{Sf-3xf0`<=AtAC2A%M=PU$^u)cua7_Q`xf2QEJ1GvW bj{oKpVI?ry>GyP;00000NkvXXu0mjf+E&Xm delta 358 zcmV-s0h#{31oH!sBr_^dOjJd{z`zR&3ltO-9v&VuGcznKEC2uiA`$>iEeA0g04pgc z7Z(?2JqbD@28#HI#gS2Vf6vK4s5K#=wg{(MWd&D17qE)~Ih8gTygJKa00027ln^1rwSjFAWLxLbP804{cJlv2V(;E8`DYCz))U5Sj{LH1*2dT z&>L_sK;;uG!C?h03}CAwP?elUv4U$4VOOB&$65#Rpjv@a%472ZCx%A}1A-wj3P!;w z7zHB<(4@XV1^DU>@AA3{An zGCzjEz`&=<01%O5V1GANiHkEOv#1y-WXQ#tR+N~V3SpxuBvM&?Q3gV#30{>sI8`bu zxca$(Jp};Zw?6&g1K6?v00DGKL_t(oh3%MIYK1Tmh7$?&)l?VYr3 z6%@MtMli+<8I$((<&^p0JWS@20R#WfVT>UDggiGtE@ggsbbo=YrL3QuM!E)jlr(_1 zFM8|^Mbp&as7x9#>=eWB29DAO$emJa4UbX=81(zB_1JZt3dac(^rD5i5sRaUbrDZW zYlXz|4c1wGC_HXr1E$;j^@+#4i}Z{2=B*3kHvFIzt6YORXF!~Fxd>fbvfggIF5UnT zw~~43V*_67D}PMW>}CAeED&nnkiEST4De!szek%A;Ddt);3ru^3JxR)f*>B8>=!N7 zIV$2M5YGc-K|>I+307%05JO-~s(_@aLunbN$HJCmuK~RkjJp-uusySW0P_oOg)x}7 zC8%F;dxZ>*E5ZE&b}uYRs3Qo1ApQZ>y#qY;zBU74&O`#winKqWJh&5h#A3t-oK`Rr zj!G6h0001^nOjJd{z`!0J9z;Y$aBy%iFfdzNTNf7> z3JMA?E;1n@BpMnV4-XIz4-Z&aSfit(92^`bCMLkZz^TRWwUJ0*e~F7TC9|j)C}7CN znO2mTn+jp0Dbr0QQek{f212C?UX?{SRVpjE`niBT1pwc}KK%?nG-&_;0Ut?3K~!jg z?b+KBf*=$HQ1B9pxBmZY19Q^Q0|+Oln!S7}_vG1FFPIPj0PrQG`(DPUEc0JB?;=x{ z`9)dHM_JlymsTy~e^Q zd47SmYnABDk(N7#@$CGjYdgCUdO@2UBLd~b3Z1p27?`sumrE}VNX4$E2M z`r6!KO%Dj=#|Gl{(SSzVZ#X&6rp)zy3k>B94XlhD00000ZUFv{XD2xZHd&u;K+orG zM(ys$VY*~K)xfuYsu}r-P=n}`&-uc){desiA7o3p|JVGQ0RR91004fFZ_CEIn@ebL u&HUZ}?(6)^c9UnH4Sb+M^hp2!VDJF*J_+`v@?=v00000>h=4pJ#7 zZ#W?`KZd}-z>M-_9+6#Se>YW$i!&v&s2C`0$iYDx5&!{aMd9>Q?pOc-0e?wEK~z|U?U-L`gfI}s6N%7AQ$2uxdVs1ufD7rn zeMq+#&?BrTDD>EkU^XUXOxo?smia*+CYkv%3&QtNLJ;In$TIaue>u+%j}G7!=hb6f zb2Ffiq6BF3Bu&E{<4Wu*!!+5QqudX;*+ipj%3hr43i7C6FI8-I6?e{FV`F zR%rb3Oy>b8FPIfh-h15w<^{8tFVL74I4?l&x-AiX2!bHUPd}i%RlsuZ<1pZ7Z}23K z`zMqIH3knvjF7-?1!du&#ljeaUoCw2xqvZlAYuf$J_<&R=v{7{NA8VpcPBtG5yz*B P00000NkvXXu0mjf*$(S9 delta 449 zcmV;y0Y3iw1h52<7)1yJ0002uq>6h0001yhOjJd{z`!0J9z;Y$aBy%iFfdzNTNf7> zA`$>+Jqb-M2Rb4KF&Y354-Z&aSfit(z`(#M%(6|9OJskEi!&v&s2C_{$i_?!%cY7>I0i*Tw|R&e!m0ecbv0fa^2ruV5=0003ZNklEcM004k5A^m%qUS;Y3w7W~Jvh;7-ZoS&p zt=&4kOsjwL1n3&syUXexUVA*Q-foN;Y>QRD)5!FCeSl4~Co}2{)G%uKCa+!}U^Jr= zlfBC7o_WdbKbX-38pP_g36wT&htov$kJLX6UV=y-wXR=Y_Zi`x!7{s0^!nPKu%;Wt z>c?i{^-+UCyKlI-UQOBcLmQ0M84@@ZbpQYW0043LJAp}Zi40k1C!qWDCZneNWu_)v z?vpuA5ZXUIdlR3CB}jgA>o2y40%=^>?1wl(CFg(5uNeRU0002s2Zcs9)@iOF!8QFq r{&#=%zigV!eKv4Hg5);=0D!?AigF3SKrFpb00000NkvXXu0mjf){)0u diff --git a/icons/obj/guns/shotgun.dmi b/icons/obj/guns/shotgun.dmi index e2ebe63a371a4f76dfa17f166a9b7d9445ebec9d..c34cee6a1eb0da3315c9ac75887857a5727f80da 100644 GIT binary patch delta 1355 zcmV-R1+@B{4Y>=D7(N680001a;d&kb000ZN8g&fkWQ9kwx!ku1S z#O~QK%${w};9Q-yPOs_Cc=GSBgaCcKLQY(|GuzQ~h(UVahgUL2KOhJN1qJjy7u_%a5|I zp1*%-4ew5;)7F`Q>oqj2^@HFPU8S92&7QZsHabU5)3_6^SOE>o2W@A8P}Lb$j2<5o zuF-^u&x^w_U#lZVHA1X2WX0?2%Lf>LuM#N2t~n%yng?19Q=W>Mxp8!( zh~D;REnXM%xUYkKaz(3zXfbxS$F!KsNIe8oS9MwfDL#(%|C48PIhL^yM?#X*(^$Zx zEYTMN6G-vNIfLyHcVylcI35BM2x&Y4?bLZgKtkl5o^}fTAs}J?rl_ExprD|C|A8iA zR3#3-G$SrpF=PbT!3G-MaQH12wO%NO?gkO!l^KF-qe70UoLI91TJ}wg6*Od}w!^n| z;=HZ&(Ea`WhU4Y_fcoaBULsqVlX9eXIDV?N5-$u|j5(%qyyT00Z%8YBJbfe8hRNrw zRP(mT9bfE+7c}dRBj64OAhgkcfN~S%i{73*Q1{B-8IJOw29&}kTX!&+(-Ac4M&#i? zs+Yc#1C7qHmIv+zplrq2E|CTLVbFKLN4-R0FATGfei-z@T?dq%noQE*8MySqU2J?^ zJ4u6nzcX-Wbe^>e3JMAe`mYqFb_?<1pN#he=t~mj%$JE}iQ^xnKMq`floA z|E>_zx=6jwEAf2thLslm3EHS>Suq)Zv*f9Rix4Xh;$w~mW|^UD!dSt{RN!A`(ciLt zg2~I4@g$XN**Dfj%nT&<=PQDu z{ZmWK?8mbxhe$i%WNYXW&ie>>N8q4%lV_beduI_86!bf4o230_mRL7Gs_Py4qHfbj zaWuN({E{cxSiMk-iaX2j0zY-d=H8&fiwvi(5Kmp5FAuhcE8Wl_pC7=`&x4(zDjL(qFgyV` z@$z7&y|$ekjT5nfuabQ{=rFwgYCP@1f7ym!9_(cNe3@wo=+Dc8eN}p&`Of~z8q7H! zbR4W^dT$O4->b=g4UtLFa1Milg5D~uu9ATNgfu>M@*uXavQaU(km3O1V~r1;JgDV& zQVp(kHYSR`+;HSEbX`4og_j#fF2kRy&^6@uSE&B$3gDWM#)ocvdl+xPe@|klP78bu z4I`?C?B+r6?oB_rj>wjdaBh49C+Fmb)fq!IhfaJm@_&(k;UB~13L5^<3?UC%`BL<8 z*i50}X{Xk9$b(kCRH9z+IZm7ANsS2dpp`H6HT4+A`Lo)AJZR-h%~XR<=)IwK!Em#T zmM>MVRD~cK*BW6#9<=hi2H*WqUTP+8d;|HD8-h8|g)f-HprE(vU&JoE(^{pXIsgCw N07*qoM6N;tV1m0^m$U!? delta 1584 zcmV-02G9Aq3!Dv*7=H)@0002I5tknT003Z6OjJd{z`!ahDiRVB9v&V)KR+`wGcYhP zJUl!x8UQ9HCW?xRoSd8@5&%st2OuCIL_|bIB?E+ngjqNreqA^j85s``4_GoGa8fZt zLqJVUNs((nPEJl=Utc#jH!CS8PBkJK%|gEb0004WQchCgNIuY5@FpZeE$s%I5$81x`ssK~#90 z?Ocm?n>Y}qQYp9vNh|Xs+%IGNw0UCy78H5C{Z< z=fStd({J%<4}$8UXLz)z0P4F#f13VKX%;-5Mq!?-@2AtxU%!6%5}FQAQo_7LQ7Cmf zonBsERQ8W4tbdqHmycHG^i>{3VXgh#gQhC{!|3E352_vRRomQ&^YYv&OV_?_K@{pHBG8{)f0LBwwV24z zr@+Kj+`Y#8#k8(0SKvIcxjaV`;qkB6K~JdY_rH+5p|DKra1i{m9oC-zZg+YCz0x|%A`<)I zNbWq_t(RBX$>m!rnmxC%%{I=^d6h0DI(cdJnSIE`v)$aR+=lyt@>@%ruRXqTf=O&S zKkE2Po0!GC5UB0eZ9NlI7_cvc(Ka!@C<}>G4(sut|?b;nXe`KG!EH0EhNP}uc%GOI{hl2Du9_WnPQ$&t~yWl5wwoM@Zhe}VqLX+2}BwM75a#^*zb zwfPjy)OEx5Bahzw;%S71)a_dy+06*yeYz|8I2P=Jw*ko_s7WmkXYx7>ELa zKp^=00pCtOXyN6w*q^(R@w-C-0)g=xB4f>ZUw>=vk0KmMf(dAI9G1^Fa95$mN`!U7c>$2lCk!TCIw$>S9q$6<~e z^#8F=4{@0RId0Ma#}kNOs9}MJ`v0~F+*!dx{eOc#jz9(66e#Mg?m++F2-Y=BB`WG6 zsvQ(Pex5-f z5D10b~T;uYzfg z-Pe`re~!2<{vWZvFL8w)hi-k*ILOsn;(TtY^<4(|w^Tv5{b(HI3r4u9_1z}JGk|XV zi3$>nPSj)tlN4&u=>S@I8i}(O+PQ0PjHgG2Zc@;~(@31jSrxoeJU#I3f_y*^z0BZi z2Hf-&34g)C0`UtqvFOB2U(^4B3Mz~QQ0U*}f5AA#t6)!rub*^g9d;P}-b9ta0&&U( z4>j3;za(-P68Hy>^Zp-48^trAz`srqdaKKkIAeGM&je4u&l*V;QWgCK6^%i)&5#W2Z?Yo1u&Rw>=KmkQ=vGE)+Vg#j;rjug z+YRpMpdW@SO2ZJ+3=>$^HH85hfAxaZ_h$rZ_FX~-dr~z>*^X&SK#hziz@Qr)E-|`@ zQFrZ8TGa%V8ae%qY%nC1I~%7cS$m?GX`u}7b}Em6*{fV~5hp2m7Q1jQS{*xa=kf^1 z#7^OVi&H{T#ei!uzP#AzbN8vDSTg%{QKQjl{wdwR8thMLsvIuY^#P*V(F0~HOI!|j$0c@DTTQ(J zXL-29@o@Jb4)4UJ7m5rLd(P>TpW z;O}h}omxZy{^wKg_f3zlkxqbrP6k4)2?4c5IMpgExca$(JqQ5xl|-{J*R=rv00Om1 zL_t(oh3%NXYui8+$DgkkNL>v66NC_?GX5hDaingIpi{|Q{1L9n7TaXF=Ly~<3!Tz>@Xb^zad$Y07N z4Pwje*fwZ@Vh9&&=)Y#*J5Moq=>Xo2V3QC)U!P)-L($ry_Nl{v3>rT2Lk(&{ch58c z`-k7r(eYnEnx}20!(6azo;M4ph2x}g1y1HI2@IGruvpXsz{a3AEMvR)a8mW(ts@o~C+j_LGyQ6hsMil+@$H5VgKI z9FUw{*DtjrYW?HkfaE0IYk%4xyTbuVO+(O3aX64u+YmHT91ci>x`v>M;&4Dx+YmHS s91i5vHw0}^BvWW?2wHH;pN_xb4?JYiAb{U2hyVZp07*qoM6N<$f*$R5$^ZZW diff --git a/icons/obj/guns/xray.dmi b/icons/obj/guns/xray.dmi index 14f7a0501dc7fc3b862cc022422e73a99d659c08..15f9e9ab119accbf6a5c37f7b1a58d6c253d1d38 100644 GIT binary patch delta 709 zcmV;$0y_P)2EYc87*GTQ0000n5PbLm001gbOjJd{z`#{JG`56Cd|+;&Bj&>Xl!imQ1}Eqf#dCIsH}LcyI``} zKUr=zSm=0u4d*)?J`z%#kADR~kk104goeAOb5%C#bQcDbJ0k{$?KZ)Kj-uLL)u8g z@^!`GZW<+>u#pyqtAOz*@xwII!f?$QXN1zQk=|Yr;~XTu8kT=o41W&L+r~j!H26Up zPS)%ojUWi}fq3Tu%V4+fvrOCnnW;CMO_2vIgWbL#&SvWVKbz_L^6|0E118>iz{Iux z&*#^29JMhZ` zIgE_E?*qPhASZzMx_=nZ-uQ1GkdQPV@XP}xc}l}PfFKC+y$P7vu^M($T`shqffk6! znNqin`F_>M0U~vqM~cBstPdXjtTsqb%eqBJft+uT^ugY!`WB9(ZaEW!H0Y)Je5(@% zP)U3xzf`0n=9(w2_z7g(&#T|cj6Ls2(A!H0&0_z&eF;{9AZiGLd>@!9^#7WU-M7zR zs_h@w*@;PCF;Gu@h~xOjLT+PV@^oQ~nJ64E7}pcF^_&5~L|gsR rt<|Z&(A7!l=1w4W-8>Qn@ zV`F1P>1-JT000YjG>_@ch3@o3}yDpbh|-F}T&z1dnNoD(iO0&+8?B?RpJmV^Q3r z&jV(&hVaf&TOSA5jq!DTr>L&~Ov>vqJ!i1Cz6^LscW21)kiM+Vr*r@S001z0zNbRY z_kUC_$oEvJ`JY6T-#wf8zU#Jha{Va3yYQaM_g;+iJ=p*?-(O&WkndAJb%*TkhXF#q zPt_MHDmkd!Y+aD=SKnU^D%@AO8DJOW`%k#iL!gO4A2V<|-^Vl`4orPD9?lxD8z=Mq z+JNM5?XMES^_$C_0cyTqJ1{fE-}5R^rhmSa`TC@Mzl~tiiPvoBhC$BvROtDh>;U;5 z000000Dv{gG@BB3;&162L@H0Gf_}aMP*P#~xH#S~7-92`spGjC8Sx|DFHAvu^EfXv zkf@M%kP7-!{llF^J23SfN5Xg?)UiQ-!@zz6U~OQ#g4g4CzmN+0dkui&6$0jXzfzD2 z`nwH)!xaDk000000Kih*8Mv6@&cMZ#cLuH|*BL160GuG5+wZCG45T{)cl>o*+!?4s fL1zE}0R97i6!#|YtuS%900000NkvXXu0mjfQN}^1 diff --git a/icons/obj/guns/xrifle.dmi b/icons/obj/guns/xrifle.dmi index 208b405769678dad596658f40b307c3a64f5b93f..9010097358fba6aad23a30fae21739465b45d4e7 100644 GIT binary patch literal 1940 zcmV;F2W$9=P)>QiG`56Pa+8bB|9Se9UV6xA1M|Vz`($ErdaC$0004WQchCV=-0C=2JR&a84_w-Y6@%7{?OD!tS%+FJ>RWQ*r;NmRL zOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5siG(|Ehklpi!&v&s2C_<$iO`3ksp3% zi{O5kI&(i5}W0XYkiDd=h@N0~{2M^}OBQYL{@koq`glDf_5e45P!}fxmot<4b+d*l3 zB*uqgd??0;vluJzTKHY}JR8HZT2;s7uLvPOwldgptLhlv41r@t?g<7Nsy@cIL+pD7 zAf)Gqxkt7+aW}Nr?#jZgkmnoOF@Dt&zJpte=h=FA_Fh@^idHY zlyVaK2}IDom*-1<{?7K!eTcwqE$wdQ+csKD5tV}_?+gF}yIbT7e%^e#x9I}u$aZhv zdm0yPbbGj>zqjcC1qRI*{CtpxkO1-~*xe}qC^1~NJrrQcHn=64&-?k<-30}ZWrLnK zP~@0tvguk2@_DSw5Fc!t|Y*39jw_FH4X>c2rK{1MH6*)?ju$1k)RMc-YQ^ji9rbV2MjH z!mX{X?VMl$rr+G`_xpuu?bw%imm9^)xQ@ao#dtoR#p4;pMnYZvI$8=zMmlSl9Mp0F z0W#-OF)%>qZ$hirdy<>SM<~1arA?&_Q1h>3V|8`)35jrnYC_J2H|T`TF5-2xGD^d4 z_k=3QVBMq&LWKToC!3pJW(sb6m6?A9yg?@|2KAqKqi?NtyDb$NOaXrBFGkjIILxe5 ze~@()3OIwFwHVX}Mrh@{`0_zuV3z}Q@xCy;xF0|kK+s?YowOM11|=A_j*o#2?ehov zpS+z;XO~$&-~lGpWCoqI7(>nzPp1=rKp12xq#sb#VsQNiX))Y#(+#0HEv`!Y0j}T3 zT8vT)y$GfK05#~d7UTNgI5=e!g+ZUwVtgbD>Nzb&MX0OA(9qD(s1vn&>2OdlfnW2d zyV<$g|L?04I7Z$7pb#&Ccz9;|;E@>&VXW}~U^Xuy#ZJGw!OyBAIfP{j{|{$#5>7HB zA7V?djO1=P9Inrn9~T+C|5xh~ddEw6((CnZMn6qZLmA0;oLUp|D{lj4T+IKg^|=J6 z*zXVBZZ!NZGxgF)p`b8bQ~~e*)%pxff0DL{j`+v1wt(s1c_obV!dAwh=si?It6L9{&q#jrClubUpD4NjAi99K{2tYmR zi3RE!bJ3I*ylTCMhK7d5{}$ZSF-swo5Q+~w@K4i7{Qz8_u;c4Pf2__gcfKggm-_** z9>weg{wRP5;%7o^uzX+o;v1}YK6rFXhp&HBJ;3jGMFqB9yOy9AD`$#1~ zw>bhLfaRl$UqkL38mPasy)*oqOZY}!p5P@TaHKYJ<$c1=p@I7B=$MO-9zp~!7=hA7 zlIK_+m)8f<133#7n2MFQySv*?S$%eN%nvM9piCOK!<0V9Cf6%R$48$-1P28{0|AY^ zy=T)0v6OoG=-3=X1j`Q1f27VDF6#%>dggO~CwrO<3UnH8eD? ajeh{n&lb literal 2738 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 O19`amxYQpwk@_2coLd Date: Tue, 23 Feb 2021 22:44:27 +0000 Subject: [PATCH 05/16] "[ci skip] Automatic Build - 2021.02.23.22.44.27" --- html/changelog.html | 4 ++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/alberyk-gunsprites.yml | 6 ------ 3 files changed, 8 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/alberyk-gunsprites.yml diff --git a/html/changelog.html b/html/changelog.html index 89bd0164f1d..a71cd2b92a3 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -40,6 +40,10 @@
    • Reduced the medium bullet damage to 30 from 35.
    +

    Alberyk, Kyres1 updated:

    +
      +
    • Added new sprites to blaster guns, gauss thumper, pump shotgun, ion rifle, disruptor guns, laser rifle, bolt action rifle, energy carbines, security handguns, revolvers, machine gun, marksman rifle, and some others.
    • +

    Geeves updated:

    • Added the ability for ore detectors to find minor xenoarch finds, as well as major artifacts.
    • diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index bd2aae126fc..114aa78a474 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18445,6 +18445,10 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. 2021-02-23: Alberyk: - tweak: Reduced the medium bullet damage to 30 from 35. + Alberyk, Kyres1: + - imageadd: Added new sprites to blaster guns, gauss thumper, pump shotgun, ion + rifle, disruptor guns, laser rifle, bolt action rifle, energy carbines, security + handguns, revolvers, machine gun, marksman rifle, and some others. Geeves: - rscadd: Added the ability for ore detectors to find minor xenoarch finds, as well as major artifacts. diff --git a/html/changelogs/alberyk-gunsprites.yml b/html/changelogs/alberyk-gunsprites.yml deleted file mode 100644 index d79347d8412..00000000000 --- a/html/changelogs/alberyk-gunsprites.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Alberyk, Kyres1 - -delete-after: True - -changes: - - imageadd: "Added new sprites to blaster guns, gauss thumper, pump shotgun, ion rifle, disruptor guns, laser rifle, bolt action rifle, energy carbines, security handguns, revolvers, machine gun, marksman rifle, and some others." From bb5e8f577c00a871514e95626c38ff0a8073b193 Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 24 Feb 2021 15:22:45 +0200 Subject: [PATCH 06/16] Exosuit Cleaner (#11270) --- .../modules/heavy_vehicle/equipment/combat.dm | 82 +++++-------------- .../heavy_vehicle/equipment/utility.dm | 11 ++- .../heavy_vehicle/premade/powerloader.dm | 10 +++ .../mechs/designs_exosuit_equipment.dm | 6 ++ html/changelogs/geeves-mecha_cleaner.yml | 6 ++ 5 files changed, 51 insertions(+), 64 deletions(-) create mode 100644 html/changelogs/geeves-mecha_cleaner.yml diff --git a/code/modules/heavy_vehicle/equipment/combat.dm b/code/modules/heavy_vehicle/equipment/combat.dm index 94e5d8e0abc..3d53326f98c 100644 --- a/code/modules/heavy_vehicle/equipment/combat.dm +++ b/code/modules/heavy_vehicle/equipment/combat.dm @@ -106,7 +106,7 @@ name = "flashbang launcher" desc = "The SGL-6FL grenade launcher is designated to launch primed flashbangs." icon_state = "mech_gl" - holding_type = /obj/item/gun/launcher/mech/mountedfl + holding_type = /obj/item/gun/launcher/mech/mountedgl/fl restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER) restricted_software = list(MECH_SOFTWARE_WEAPONS) @@ -114,7 +114,7 @@ name = "teargas launcher" desc = "The SGL-6TGL grenade launcher is designated to launch primed teargas grenades." icon_state = "mech_gl" - holding_type = /obj/item/gun/launcher/mech/mountedtgl + holding_type = /obj/item/gun/launcher/mech/mountedgl/tg restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER) restricted_software = list(MECH_SOFTWARE_WEAPONS) @@ -122,7 +122,7 @@ name = "smoke grenade launcher" desc = "The SGL-6SGL grenade launcher is designated to launch primed smoke grenades." icon_state = "mech_gl" - holding_type = /obj/item/gun/launcher/mech/mountedsgl + holding_type = /obj/item/gun/launcher/mech/mountedgl/sm restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER) restricted_software = list(MECH_SOFTWARE_WEAPONS) @@ -189,6 +189,8 @@ item_state = "smg" fire_sound = 'sound/weapons/grenadelaunch.ogg' + var/grenade_type = /obj/item/grenade/frag + release_force = 5 throw_distance = 7 proj = 5 @@ -197,83 +199,37 @@ /obj/item/gun/launcher/mech/mountedgl/consume_next_projectile() - if(proj < 1) return null - var/obj/item/grenade/frag/g = new (src) + if(proj < 1) + return null + var/obj/item/grenade/g = new grenade_type(src) g.det_time = 10 g.activate(null) proj-- addtimer(CALLBACK(src, .proc/regen_proj), proj_gen_time, TIMER_UNIQUE) return g -/obj/item/gun/launcher/mech/mountedfl - name = "mounted grenade launcher" +/obj/item/gun/launcher/mech/mountedgl/fl desc = "The SGL-6FL grenade launcher is designated to launch primed flashbangs." - icon = 'icons/obj/robot_items.dmi' - icon_state = "smg" - item_state = "smg" - fire_sound = 'sound/weapons/grenadelaunch.ogg' - - release_force = 5 - throw_distance = 7 - proj = 5 - max_proj = 5 + grenade_type = /obj/item/grenade/flashbang proj_gen_time = 200 - -/obj/item/gun/launcher/mech/mountedfl/consume_next_projectile() - if(proj < 1) return null - var/obj/item/grenade/flashbang/g = new (src) - g.det_time = 10 - g.activate(null) - proj-- - addtimer(CALLBACK(src, .proc/regen_proj), proj_gen_time, TIMER_UNIQUE) - return g - -/obj/item/gun/launcher/mech/mountedtgl +/obj/item/gun/launcher/mech/mountedgl/tg name = "mounted teargas launcher" desc = "The SGL-6TGL grenade launcher is designated to launch primed teargas grenades." - icon = 'icons/obj/robot_items.dmi' - icon_state = "smg" - item_state = "smg" - fire_sound = 'sound/weapons/grenadelaunch.ogg' - - release_force = 5 - throw_distance = 7 - proj = 3 - max_proj = 3 + grenade_type = /obj/item/grenade/chem_grenade/teargas proj_gen_time = 200 -/obj/item/gun/launcher/mech/mountedtgl/consume_next_projectile() - if(proj < 1) return null - var/obj/item/grenade/chem_grenade/teargas/tg = new (src) - tg.det_time = 10 - tg.activate(null) - proj-- - addtimer(CALLBACK(src, .proc/regen_proj), proj_gen_time, TIMER_UNIQUE) - return tg - -/obj/item/gun/launcher/mech/mountedsgl +/obj/item/gun/launcher/mech/mountedgl/sm name = "mounted smoke launcher" desc = "The SGL-6SGL grenade launcher is designated to launch primed smoke grenades." - icon = 'icons/obj/robot_items.dmi' - icon_state = "smg" - item_state = "smg" - fire_sound = 'sound/weapons/grenadelaunch.ogg' - - release_force = 5 - throw_distance = 7 - proj = 3 - max_proj = 3 + grenade_type = /obj/item/grenade/smokebomb proj_gen_time = 200 -/obj/item/gun/launcher/mech/mountedsgl/consume_next_projectile() - if(proj < 1) return null - var/obj/item/grenade/smokebomb/sg = new (src) - sg.det_time = 10 - sg.activate(null) - proj-- - addtimer(CALLBACK(src, .proc/regen_proj), proj_gen_time, TIMER_UNIQUE) - return sg +/obj/item/gun/launcher/mech/mountedgl/cl + name = "mounted cleaner launcher" + desc = "The SGL-6CL grenade launcher is designed to launch primed cleaner grenades." + grenade_type = /obj/item/grenade/chem_grenade/cleaner + proj_gen_time = 200 /obj/item/gun/launcher/mech/get_hardpoint_maptext() return "[proj]/[max_proj]" diff --git a/code/modules/heavy_vehicle/equipment/utility.dm b/code/modules/heavy_vehicle/equipment/utility.dm index 5a923c4e6b0..051a2764cd0 100644 --- a/code/modules/heavy_vehicle/equipment/utility.dm +++ b/code/modules/heavy_vehicle/equipment/utility.dm @@ -645,4 +645,13 @@ return /obj/item/mecha_equipment/quick_enter/attack_self() - return \ No newline at end of file + return + + +/obj/item/mecha_equipment/mounted_system/grenadecleaner + name = "cleaner grenade launcher" + desc = "The SGL-6CL grenade launcher is designed to launch primed cleaner grenades." + icon_state = "mech_gl" + holding_type = /obj/item/gun/launcher/mech/mountedgl/cl + restricted_hardpoints = list(HARDPOINT_LEFT_SHOULDER, HARDPOINT_RIGHT_SHOULDER) + restricted_software = list(MECH_SOFTWARE_UTILITY) \ No newline at end of file diff --git a/code/modules/heavy_vehicle/premade/powerloader.dm b/code/modules/heavy_vehicle/premade/powerloader.dm index 02038c0e824..248bca4279f 100644 --- a/code/modules/heavy_vehicle/premade/powerloader.dm +++ b/code/modules/heavy_vehicle/premade/powerloader.dm @@ -18,6 +18,16 @@ /mob/living/heavy_vehicle/premade/ripley/cargo h_back = /obj/item/mecha_equipment/autolathe +/mob/living/heavy_vehicle/premade/ripley/janitorial + name = "janitorial power loader" + desc = "A standard cargo-handling power loader converted into a cleaning machine." + + e_color = COLOR_PURPLE + h_l_hand = /obj/item/mecha_equipment/clamp + h_l_shoulder = /obj/item/mecha_equipment/mounted_system/grenadecleaner + h_r_shoulder = /obj/item/mecha_equipment/mounted_system/grenadecleaner + h_back = /obj/item/mecha_equipment/quick_enter + /obj/item/mech_component/manipulators/ripley name = "exosuit arms" exosuit_desc_string = "heavy-duty industrial lifters" diff --git a/code/modules/research/designs/mechfab/mechs/designs_exosuit_equipment.dm b/code/modules/research/designs/mechfab/mechs/designs_exosuit_equipment.dm index 46a0445a71b..9fc71f6f0b4 100644 --- a/code/modules/research/designs/mechfab/mechs/designs_exosuit_equipment.dm +++ b/code/modules/research/designs/mechfab/mechs/designs_exosuit_equipment.dm @@ -78,6 +78,12 @@ build_path = /obj/item/mecha_equipment/mounted_system/grenadeflash materials = list(DEFAULT_WALL_MATERIAL = 20000, MATERIAL_GOLD = 6000, MATERIAL_PHORON = 6000) +/datum/design/item/mechfab/exosuit_equipment/cleaner + name = "Mounted Cleaner Grenade Launcher" + req_tech = list(TECH_MATERIAL = 2) + build_path = /obj/item/mecha_equipment/mounted_system/grenadecleaner + materials = list(DEFAULT_WALL_MATERIAL = 20000, MATERIAL_GLASS = 10000) + /datum/design/item/mechfab/exosuit_equipment/crisisdrone name = "Mounted Crisis Drone" build_path = /obj/item/mecha_equipment/crisis_drone diff --git a/html/changelogs/geeves-mecha_cleaner.yml b/html/changelogs/geeves-mecha_cleaner.yml new file mode 100644 index 00000000000..a80570081f3 --- /dev/null +++ b/html/changelogs/geeves-mecha_cleaner.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Added cleaning grenade launchers to the exosuit equipment list in the mechfab." \ No newline at end of file From 0c4b7288fd2d83e6a8afa38c652bdecce840137e Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Wed, 24 Feb 2021 13:23:51 +0000 Subject: [PATCH 07/16] "[ci skip] Automatic Build - 2021.02.24.13.23.51" --- html/changelog.html | 6 ++++++ html/changelogs/.all_changelog.yml | 4 ++++ html/changelogs/geeves-mecha_cleaner.yml | 6 ------ 3 files changed, 10 insertions(+), 6 deletions(-) delete mode 100644 html/changelogs/geeves-mecha_cleaner.yml diff --git a/html/changelog.html b/html/changelog.html index a71cd2b92a3..219c6a60c00 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -35,6 +35,12 @@ -->
      +

      24 February 2021

      +

      Geeves updated:

      +
        +
      • Added cleaning grenade launchers to the exosuit equipment list in the mechfab.
      • +
      +

      23 February 2021

      Alberyk updated:

        diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 114aa78a474..097612e1a35 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18476,3 +18476,7 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. A superfluous pixel was removed. - tweak: The rescue RIG's chemical injector has had its mortaphenyl replaced with perconol due to the changes with medical reagents recently. +2021-02-24: + Geeves: + - rscadd: Added cleaning grenade launchers to the exosuit equipment list in the + mechfab. diff --git a/html/changelogs/geeves-mecha_cleaner.yml b/html/changelogs/geeves-mecha_cleaner.yml deleted file mode 100644 index a80570081f3..00000000000 --- a/html/changelogs/geeves-mecha_cleaner.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - rscadd: "Added cleaning grenade launchers to the exosuit equipment list in the mechfab." \ No newline at end of file From a4fb4412573195b3ea0ba834c3489623f49319cd Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 24 Feb 2021 15:24:16 +0200 Subject: [PATCH 08/16] Exosuit Equipment Examine (#11271) --- code/modules/heavy_vehicle/equipment/_equipment.dm | 9 +++++++++ html/changelogs/geeves-mecha_equipment_examine.yml | 6 ++++++ 2 files changed, 15 insertions(+) create mode 100644 html/changelogs/geeves-mecha_equipment_examine.yml diff --git a/code/modules/heavy_vehicle/equipment/_equipment.dm b/code/modules/heavy_vehicle/equipment/_equipment.dm index 332554369d4..632804a5640 100644 --- a/code/modules/heavy_vehicle/equipment/_equipment.dm +++ b/code/modules/heavy_vehicle/equipment/_equipment.dm @@ -16,6 +16,15 @@ var/active_power_use = 1 KILOWATTS var/require_adjacent = TRUE +/obj/item/mecha_equipment/examine(mob/user, distance) + . = ..() + if(length(restricted_hardpoints)) + var/hardpoints = english_list(restricted_hardpoints, and_text = ", ") + to_chat(user, SPAN_NOTICE("Exosuit Mounts: [hardpoints]")) + if(length(restricted_software)) + var/software = english_list(restricted_software, and_text = ", ") + to_chat(user, SPAN_NOTICE("Exosuit Software Requirement: [software]")) + /obj/item/mecha_equipment/attack() //Generally it's not desired to be able to attack with items return 0 diff --git a/html/changelogs/geeves-mecha_equipment_examine.yml b/html/changelogs/geeves-mecha_equipment_examine.yml new file mode 100644 index 00000000000..9e0f705954c --- /dev/null +++ b/html/changelogs/geeves-mecha_equipment_examine.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Examining the equipment you can attach to exosuits will now show you to which hardpoints it can be attached, and which software it requires to function." \ No newline at end of file From 5628f2a2e36d2ecdc725860d2a72b0d69f7984f4 Mon Sep 17 00:00:00 2001 From: WickedCybs <52309324+WickedCybs@users.noreply.github.com> Date: Wed, 24 Feb 2021 06:24:24 -0700 Subject: [PATCH 09/16] Tweaks Some Tajara Armours and Refluffs Amohdan Gear (#11272) --- code/datums/trading/misc.dm | 4 ++-- code/modules/clothing/head/xenos/tajara.dm | 17 ++++++++++------- code/modules/clothing/suits/xeno/tajara.dm | 22 +++++++++++++--------- html/changelogs/wickedcybs_amohdaa.yml | 6 ++++++ 4 files changed, 31 insertions(+), 18 deletions(-) create mode 100644 html/changelogs/wickedcybs_amohdaa.yml diff --git a/code/datums/trading/misc.dm b/code/datums/trading/misc.dm index 91ea5b81569..4585b3ea155 100644 --- a/code/datums/trading/misc.dm +++ b/code/datums/trading/misc.dm @@ -140,7 +140,7 @@ /obj/item/clothing/head/plaguedoctorhat = TRADER_THIS_TYPE, /obj/item/clothing/head/helmet/unathi = TRADER_THIS_TYPE, /obj/item/clothing/head/helmet/tank = TRADER_ALL, - /obj/item/clothing/head/helmet/tajara = TRADER_THIS_TYPE, + /obj/item/clothing/head/helmet/amohda = TRADER_THIS_TYPE, /obj/item/clothing/glasses/monocle = TRADER_THIS_TYPE, /obj/item/clothing/mask/smokable/pipe = TRADER_THIS_TYPE, /obj/item/clothing/mask/gas/plaguedoctor = TRADER_THIS_TYPE, @@ -149,7 +149,7 @@ /obj/item/clothing/suit/wizrobe/magusred = TRADER_THIS_TYPE, /obj/item/clothing/suit/wizrobe/magusblue = TRADER_THIS_TYPE, /obj/item/clothing/suit/armor/unathi = TRADER_THIS_TYPE, - /obj/item/clothing/suit/armor/tajara = TRADER_THIS_TYPE, + /obj/item/clothing/suit/armor/amohda = TRADER_THIS_TYPE, /obj/item/clothing/under/gladiator = TRADER_THIS_TYPE, /obj/item/clothing/under/kilt = TRADER_THIS_TYPE, /obj/item/material/harpoon = TRADER_THIS_TYPE, diff --git a/code/modules/clothing/head/xenos/tajara.dm b/code/modules/clothing/head/xenos/tajara.dm index b052d12cf45..8cf0eedeaff 100644 --- a/code/modules/clothing/head/xenos/tajara.dm +++ b/code/modules/clothing/head/xenos/tajara.dm @@ -83,8 +83,8 @@ icon_state = "nka_consularhat" item_state = "nka_consularhat" -/obj/item/clothing/head/helmet/tajara - name = "amohdan swordsmen helmet" +/obj/item/clothing/head/helmet/amohda + name = "amohdan swordsman helmet" desc = "A helmet used by the traditional warriors of Amohda." icon = 'icons/obj/tajara_items.dmi' icon_state = "amohdan_helmet" @@ -97,13 +97,15 @@ melee = ARMOR_MELEE_MAJOR, bullet = ARMOR_BALLISTIC_PISTOL, laser = ARMOR_LASER_SMALL, - energy = ARMOR_ENERGY_MINOR + energy = ARMOR_ENERGY_MINOR, + bomb = ARMOR_BOMB_MINOR ) allow_hair_covering = FALSE desc_fluff = "The Feudal Era of Amohda is famous for the steel swords which became common. Many renowned swordsmen and famous warriors would travel the land fighting duels of \ - single combat in their quests to become the greatest swordsman. Modern Amohda is a mix between loyalists to the NKA and to the DPRA, with almost universal praise for a return to \ - traditional culture, yet often violent disagreement about the course of the island's political future. A sizable third party of monarchists which advocate the reestablishment of the \ - Imperial Amohdan dynasty also exists, fragmenting the monarchist factions on the island and further complicating political violence in the area." + single combat in their quests to become the greatest swordsman. Modern Amohda is under the control of the DPRA's Adhomai Liberation Army, further solidified after the defeat \ + of a Nationalist revolt vying for a truly independent Amohda. The region is still beset by trouble within and without as a deeply divided Amohdan people continue to struggle in the \ + bloody conflict to stamp out Nationalistic and to a lesser extent, divided Monarchistic sentiments while their rivals from the New Kingdom of Adhomai watch from the seas they rule \ + and the People's Republic of Adhomai looms over the southern end of the island..." siemens_coefficient = 0.35 /obj/item/clothing/head/helmet/kettle @@ -117,5 +119,6 @@ melee = ARMOR_MELEE_MAJOR, bullet = ARMOR_BALLISTIC_PISTOL, laser = ARMOR_LASER_SMALL, - energy = ARMOR_ENERGY_MINOR + energy = ARMOR_ENERGY_MINOR, + bomb = ARMOR_BOMB_MINOR ) diff --git a/code/modules/clothing/suits/xeno/tajara.dm b/code/modules/clothing/suits/xeno/tajara.dm index 4b32956a4be..11ab675f9d8 100644 --- a/code/modules/clothing/suits/xeno/tajara.dm +++ b/code/modules/clothing/suits/xeno/tajara.dm @@ -137,8 +137,8 @@ contained_sprite = TRUE species_restricted = list(BODYTYPE_TAJARA) -/obj/item/clothing/suit/armor/tajara - name = "amohdan swordsmen armor" +/obj/item/clothing/suit/armor/amohda + name = "amohdan swordsman armor" desc = "A suit of armor used by the traditional warriors of Amohda." icon = 'icons/obj/tajara_items.dmi' icon_state = "amohdan_armor" @@ -152,13 +152,15 @@ melee = ARMOR_MELEE_MAJOR, bullet = ARMOR_BALLISTIC_PISTOL, laser = ARMOR_LASER_SMALL, - energy = ARMOR_ENERGY_MINOR + energy = ARMOR_ENERGY_MINOR, + bomb = ARMOR_BOMB_MINOR ) siemens_coefficient = 0.35 desc_fluff = "The Feudal Era of Amohda is famous for the steel swords which became common. Many renowned swordsmen and famous warriors would travel the land fighting duels of \ - single combat in their quests to become the greatest swordsman. Modern Amohda is a mix between loyalists to the NKA and to the DPRA, with almost universal praise for a return to \ - traditional culture, yet often violent disagreement about the course of the island's political future. A sizable third party of monarchists which advocate the reestablishment of the \ - Imperial Amohdan dynasty also exists, fragmenting the monarchist factions on the island and further complicating political violence in the area." + single combat in their quests to become the greatest swordsman. Modern Amohda is under the control of the DPRA's Adhomai Liberation Army, further solidified after the defeat \ + of a Nationalist revolt vying for a truly independent Amohda. The region is still beset by trouble within and without as a deeply divided Amohdan people continue to struggle in the \ + bloody conflict to stamp out Nationalistic and to a lesser extent, divided Monarchistic sentiments while their rivals from the New Kingdom of Adhomai watch from the seas they rule \ + and the People's Republic of Adhomai looms over the southern end of the island..." /obj/item/clothing/suit/armor/cuirass name = "cuirass" @@ -171,7 +173,8 @@ melee = ARMOR_MELEE_MAJOR, bullet = ARMOR_BALLISTIC_PISTOL, laser = ARMOR_LASER_SMALL, - energy = ARMOR_ENERGY_MINOR + energy = ARMOR_ENERGY_MINOR, + bomb = ARMOR_BOMB_MINOR ) /obj/item/clothing/suit/storage/tajaran/pra_jacket @@ -184,6 +187,7 @@ melee = ARMOR_MELEE_KNIVES, bullet = ARMOR_BALLISTIC_MINOR, laser = ARMOR_LASER_MINOR, - energy = ARMOR_ENERGY_MINOR + energy = ARMOR_ENERGY_MINOR, + bomb = ARMOR_BOMB_MINOR ) - siemens_coefficient = 0.50 \ No newline at end of file + siemens_coefficient = 0.50 diff --git a/html/changelogs/wickedcybs_amohdaa.yml b/html/changelogs/wickedcybs_amohdaa.yml new file mode 100644 index 00000000000..c9b4cb6bbf7 --- /dev/null +++ b/html/changelogs/wickedcybs_amohdaa.yml @@ -0,0 +1,6 @@ +author: WickedCybs + +delete-after: True + +changes: + - tweak: "Revised some fluff descriptions and resistances to a few pieces of Tajaran gear." \ No newline at end of file From 2cfc521bfa3fb0bb8498d8c4a85db663c6be9b93 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Wed, 24 Feb 2021 13:25:02 +0000 Subject: [PATCH 10/16] "[ci skip] Automatic Build - 2021.02.24.13.25.02" --- html/changelog.html | 5 +++++ html/changelogs/.all_changelog.yml | 5 +++++ html/changelogs/geeves-mecha_equipment_examine.yml | 6 ------ html/changelogs/wickedcybs_amohdaa.yml | 6 ------ 4 files changed, 10 insertions(+), 12 deletions(-) delete mode 100644 html/changelogs/geeves-mecha_equipment_examine.yml delete mode 100644 html/changelogs/wickedcybs_amohdaa.yml diff --git a/html/changelog.html b/html/changelog.html index 219c6a60c00..b21385f5652 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -39,6 +39,11 @@

        Geeves updated:

        • Added cleaning grenade launchers to the exosuit equipment list in the mechfab.
        • +
        • Examining the equipment you can attach to exosuits will now show you to which hardpoints it can be attached, and which software it requires to function.
        • +
        +

        WickedCybs updated:

        +
          +
        • Revised some fluff descriptions and resistances to a few pieces of Tajaran gear.

        23 February 2021

        diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 097612e1a35..836197d46e6 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18480,3 +18480,8 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. Geeves: - rscadd: Added cleaning grenade launchers to the exosuit equipment list in the mechfab. + - rscadd: Examining the equipment you can attach to exosuits will now show you to + which hardpoints it can be attached, and which software it requires to function. + WickedCybs: + - tweak: Revised some fluff descriptions and resistances to a few pieces of Tajaran + gear. diff --git a/html/changelogs/geeves-mecha_equipment_examine.yml b/html/changelogs/geeves-mecha_equipment_examine.yml deleted file mode 100644 index 9e0f705954c..00000000000 --- a/html/changelogs/geeves-mecha_equipment_examine.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - rscadd: "Examining the equipment you can attach to exosuits will now show you to which hardpoints it can be attached, and which software it requires to function." \ No newline at end of file diff --git a/html/changelogs/wickedcybs_amohdaa.yml b/html/changelogs/wickedcybs_amohdaa.yml deleted file mode 100644 index c9b4cb6bbf7..00000000000 --- a/html/changelogs/wickedcybs_amohdaa.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: WickedCybs - -delete-after: True - -changes: - - tweak: "Revised some fluff descriptions and resistances to a few pieces of Tajaran gear." \ No newline at end of file From 43918c7602b4975dbc20757af1bb30561e3324bb Mon Sep 17 00:00:00 2001 From: Matt Atlas Date: Wed, 24 Feb 2021 15:59:42 +0100 Subject: [PATCH 11/16] Fixes a few bugs with armor, RIGs and fixes dreamchecker. (#11298) --- code/__defines/accessories.dm | 1 + code/game/objects/items/weapons/RFD.dm | 4 +- .../clothing/spacesuits/rig/modules/combat.dm | 2 +- code/modules/clothing/suits/modular_armor.dm | 4 +- .../clothing/under/accessories/badges.dm | 1 + .../mob/living/carbon/human/human_defense.dm | 2 +- code/modules/mob/living/silicon/silicon.dm | 2 +- html/changelogs/mattatlas-notactuallytrue.yml | 44 ++++++++++++++++++ icons/clothing/kit/modular_armor.dmi | Bin 35740 -> 35974 bytes 9 files changed, 53 insertions(+), 7 deletions(-) create mode 100644 html/changelogs/mattatlas-notactuallytrue.yml diff --git a/code/__defines/accessories.dm b/code/__defines/accessories.dm index 90de1a5df9b..5e6eccd03bf 100644 --- a/code/__defines/accessories.dm +++ b/code/__defines/accessories.dm @@ -2,6 +2,7 @@ #define ACCESSORY_SLOT_UTILITY "utility" #define ACCESSORY_SLOT_CAPE "cape" #define ACCESSORY_SLOT_ARMBAND "armband" +#define ACCESSORY_SLOT_BADGE "badge" #define ACCESSORY_SLOT_ARMOR_PLATE "armor plate" #define ACCESSORY_SLOT_LEG_GUARDS "leg guards" #define ACCESSORY_SLOT_ARM_GUARDS "arm guards" diff --git a/code/game/objects/items/weapons/RFD.dm b/code/game/objects/items/weapons/RFD.dm index 6445b5e260f..325aaa09b17 100644 --- a/code/game/objects/items/weapons/RFD.dm +++ b/code/game/objects/items/weapons/RFD.dm @@ -81,7 +81,7 @@ if(W.isscrewdriver()) // Turning it into a crossbow crafting = !crafting if(!crafting) - to_chat(user, SPAN_NOTICE("You reassemble the RFD")) + to_chat(user, SPAN_NOTICE("You reassemble the RFD.")) else to_chat(user, SPAN_NOTICE("The RFD can now be modified.")) src.add_fingerprint(user) @@ -110,9 +110,9 @@ var/obj/item/gun/launcher/crossbow/RFD/CB = new(get_turf(user)) // can be found in crossbow.dm forceMove(CB) CB.stored_matter = src.stored_matter + user.drop_from_inventory(src) qdel(src) user.put_in_hands(CB) - add_fingerprint(user) return ..() diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm index f2bec7cd931..29f9c3de727 100644 --- a/code/modules/clothing/spacesuits/rig/modules/combat.dm +++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm @@ -141,7 +141,7 @@ var/list/extra_mobs = list() if(holder.wearer != user) extra_mobs += holder.wearer - gun.attack_self(user, extra_mobs) + gun.toggle_firing_mode(user) return TRUE gun.Fire(target, user) diff --git a/code/modules/clothing/suits/modular_armor.dm b/code/modules/clothing/suits/modular_armor.dm index 246cd9470d5..d6d7e8bd42c 100644 --- a/code/modules/clothing/suits/modular_armor.dm +++ b/code/modules/clothing/suits/modular_armor.dm @@ -7,8 +7,8 @@ item_state = "plate_carrier" blood_overlay_type = "armor" w_class = ITEMSIZE_NORMAL - restricted_accessory_slots = list(ACCESSORY_SLOT_ARMOR_PLATE, ACCESSORY_SLOT_ARM_GUARDS, ACCESSORY_SLOT_LEG_GUARDS, ACCESSORY_SLOT_ARMOR_POCKETS, ACCESSORY_SLOT_ARMOR_PIN, ACCESSORY_SLOT_CAPE) - valid_accessory_slots = list(ACCESSORY_SLOT_ARMOR_PLATE, ACCESSORY_SLOT_ARM_GUARDS, ACCESSORY_SLOT_LEG_GUARDS, ACCESSORY_SLOT_ARMOR_POCKETS, ACCESSORY_SLOT_ARMOR_PIN, ACCESSORY_SLOT_CAPE) + restricted_accessory_slots = list(ACCESSORY_SLOT_ARMOR_PLATE, ACCESSORY_SLOT_ARM_GUARDS, ACCESSORY_SLOT_LEG_GUARDS, ACCESSORY_SLOT_ARMOR_POCKETS, ACCESSORY_SLOT_ARMOR_PIN, ACCESSORY_SLOT_CAPE, ACCESSORY_SLOT_BADGE) + valid_accessory_slots = list(ACCESSORY_SLOT_ARMOR_PLATE, ACCESSORY_SLOT_ARM_GUARDS, ACCESSORY_SLOT_LEG_GUARDS, ACCESSORY_SLOT_ARMOR_POCKETS, ACCESSORY_SLOT_ARMOR_PIN, ACCESSORY_SLOT_CAPE, ACCESSORY_SLOT_BADGE) /obj/item/clothing/suit/armor/carrier/officer starting_accessories = list( diff --git a/code/modules/clothing/under/accessories/badges.dm b/code/modules/clothing/under/accessories/badges.dm index b43b6227190..191c182dc74 100644 --- a/code/modules/clothing/under/accessories/badges.dm +++ b/code/modules/clothing/under/accessories/badges.dm @@ -11,6 +11,7 @@ item_state = "marshalbadge" overlay_state = "marshalbadge" slot_flags = SLOT_BELT | SLOT_TIE + slot = ACCESSORY_SLOT_BADGE var/stored_name var/badge_string = "Corporate Security" diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 59faf268fec..3c5ef6efe23 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -573,4 +573,4 @@ emp_act /mob/living/carbon/human/extinguish_fire() ..() for(var/obj/item/I in contents) - I.extinguish_fire() \ No newline at end of file + I.extinguish_fire() diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 82a6723d734..2b65499185c 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -119,7 +119,7 @@ to_chat(src, SPAN_WARNING("Warning: Electromagnetic pulse detected.")) ..() -/mob/living/silicon/stun_effect_act() +/mob/living/silicon/stun_effect_act(var/stun_amount, var/agony_amount, var/def_zone, var/used_weapon, var/damage_flags) return //immune /mob/living/silicon/electrocute_act(shock_damage, obj/source, siemens_coeff = 1.0, tesla_shock = FALSE, ground_zero) diff --git a/html/changelogs/mattatlas-notactuallytrue.yml b/html/changelogs/mattatlas-notactuallytrue.yml new file mode 100644 index 00000000000..206aa680e84 --- /dev/null +++ b/html/changelogs/mattatlas-notactuallytrue.yml @@ -0,0 +1,44 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: MattAtlas + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - bugfix: "Badges can now be attached to plate carriers." + - bugfix: "Crossbows are no longer duplicated when attached to an RFD." + - bugfix: "Fixed hardsuit weapon configuration." + - bugfix: "Fixed riot armguards worn sprite." diff --git a/icons/clothing/kit/modular_armor.dmi b/icons/clothing/kit/modular_armor.dmi index ef231070ab63bedb0b379c5b33ee95695276cdf4..d456dbcd8d50b3a1cb53172b9259bd6c4ece9a81 100644 GIT binary patch literal 35974 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 Rcmn}H(&F-BrSJ6o{uk(E%BcVV literal 35740 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

        %O{Vu`TD#%qW)j1YRq;hr2i;-1r^3f(-Bl zYqxh-4n%P^U}#VTZ5^TK}nLAXH>0!}KQyYH<2D!dt(p(S$zcnIwD$hiyUZe{J)dpCd8 z`^lKy3kR@cSJnkaSruYC97wAjW>m#)bNHQStpDW=cp}Do;nx;m5=-v1qL+WHxJlk- zlB(8;t9iJsEy8k><8$mZA9#4sY_VzUa3^nv|EJ8If1WhIX+QvWfYP8*;y4^^sY0MQ zj>8*{-qQ=f-Q_s9c~dSCuLc^mvH0mp_GM&${gz4&%||30R*^4>N!+;GNt(a*uADCm zN1FkH@JW{uUy*I;KAabopPL(J+KrxwlvEf{6A*S<2xRQ|xbhcP7R_}38*yveEIV4X ztNVrSu)F(PK8-95CiGLJHXHHbwqNKq`y}QI<5-6+PV6bxqB89m!!W?)nQ<>5m6NEU zWYs(%dGG0=x(&Nr^5u%Ct>fW$wA3JGqxIQX(_U&~Pq&vk!9jYkRpX$1Sgk}dGwk6o z-#1_8P%pj|&3yjmKEk-7LQd`On+K9rK#Pw1-`BP8+*UJq|KK77?A!c0GEe*&8*8yg z$q3zK9k=YMT*k%jfUT_XF%G!z@l3jWs?;8;4iY9ubL0xal?R@u>*buhnzEsXYikLJ|j#_lp}&y`mQ+p<@-M}v3GyL`rq)<0uNvL z!T~|*ElmmH5l)2JEO~Xr3~6$-L>>9#zT;+q$v~mBzxMWVIo8L+ES@{K`M*$V=1D4D zxxirh^l38kC;QWvhhM#rvRcv>OyWPx&MK*CSqyrT;Fi8S7~430?74jaLocF#YK6q8 zt$=;)TKkj2(gG`*R=z#42ft=_U)|-HY61%VIojMCch5jtiq z@R+Zz+2hu$@WG@#KU3ghe_m`J71$%TyoctJn|qY19)`8f=UW_saK>4+{W7k5>3#cV zi`FXFAB8tvGhAARC9O*rR3)R(QV)Su-me?dQ?_nE8Vvlc7it6R4Ty(nXhj%YB|<;Q zgUG6-Z8FD_zbA2cJH@KCHy~E)*R;qK?YnHpii_br{rJ)t$3NFaVZq1W;$gh*8Z=IK z-vS1$nyow_`E&RFMPG-X$?^3~ycoCqq-|uus~r%}S*9>jgE}<}{2=~vC}#Ye+Z+t? z8@Pq=7$NpUiVwQtWipOY1vlEozG-&7uld4Nf#l|WzwYb%N}ioQq#hlnWl#SJpSG~9 zd2UHf=q+WOa)~P7)yDulV>0B0XVmb0#BC_y@ip8c#QRPv=Q+KTZo9s4&U;Rj>K+@#HH6IGfXM! z7!*cTYteiEK3}51yU8&eV?|)zM}v>Q1&qGb2zWOR+QS2gOl@|Icz(n1Vg z9tfAcac>=F2IbhRq3c%edQY-BjZXLcd=D8`%U7=u92N3#G|UjY+k^z9vTIYTsJ>Uu*Y; zdn4!>e0>Js2}6Ug@5T2^B;h4Kqw-MhO3`!8}llXRz^x9{bH+eB7|#V+W9WRaP{BD2^^HlbWhhim!S*TdZKe z1_beU#gB`xr18u7=bW^9vN(!g}i+25}Ref%Gx z%PqsLR81xQsxz#LAy;t>EOqE#FAeEQz+PT5zxM0!jw%2KD;fIGH-HU;h0r3RyiH(%)SErtLQC! zjRM(2{_8Z^gQ=nCZDsHP2fd{E6o{zhP)StguetlKNNjubIL4tu1W;RiH8KSGQTi@m z39bY4PI~mjB9u!jQF$m)02}?-0}1{QRG-8LNPZ07LNT4SG0^G`yfrI7$psT?iZ#mEmASdBaTp zAQ-=ct_emn2nhM`1|b3Dj)}&wn7?%C?((39al4wQ5Cs*L;IyTdz`^3IuQ$^P1I3ge zxB{$Y@RrmIM{z9^0)WDT2pC4lO4n{$;J-EYz_s%SA%*1ulKZ7@UN Date: Wed, 24 Feb 2021 17:00:04 +0200 Subject: [PATCH 12/16] Exosuit Listen Fix (#11297) --- code/modules/heavy_vehicle/mech_interaction.dm | 2 +- html/changelogs/geeves-come_here_pogmobile.yml | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 html/changelogs/geeves-come_here_pogmobile.yml diff --git a/code/modules/heavy_vehicle/mech_interaction.dm b/code/modules/heavy_vehicle/mech_interaction.dm index 7a81c3824b1..8ddd6fc7045 100644 --- a/code/modules/heavy_vehicle/mech_interaction.dm +++ b/code/modules/heavy_vehicle/mech_interaction.dm @@ -554,7 +554,7 @@ // heavily commented so it doesn't look like one fat chunk of code, which it still does - Geeves /mob/living/heavy_vehicle/proc/handle_hear_say(var/mob/speaker, var/text) var/found_text = findtext(text, name) - if(!found_text) + if(!found_text && nickname) found_text = findtext(text, nickname) if(found_text) text = copytext(text, found_text) // I'm trimming the text each time so only information stated after eachother is valid diff --git a/html/changelogs/geeves-come_here_pogmobile.yml b/html/changelogs/geeves-come_here_pogmobile.yml new file mode 100644 index 00000000000..5070a7c7935 --- /dev/null +++ b/html/changelogs/geeves-come_here_pogmobile.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Fixes exosuits responding to their commands without invoking their names first." \ No newline at end of file From bcdfbfd4a74163dbc5c52a6c114a14b781326ff1 Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 24 Feb 2021 17:00:39 +0200 Subject: [PATCH 13/16] Exosuit Part Examine Tweak (#11260) --- .../heavy_vehicle/components/_components.dm | 20 ++-- .../modules/heavy_vehicle/components/armor.dm | 40 ++++---- code/modules/heavy_vehicle/components/arms.dm | 12 ++- code/modules/heavy_vehicle/components/body.dm | 26 ++++-- .../modules/heavy_vehicle/components/frame.dm | 91 ++++++++++++------- code/modules/heavy_vehicle/components/head.dm | 38 ++++++-- code/modules/heavy_vehicle/components/legs.dm | 12 ++- .../designs/mechfab/mechs/designs_exosuits.dm | 2 +- .../geeves-exosuit_part_examine_tweak.yml | 6 ++ 9 files changed, 163 insertions(+), 84 deletions(-) create mode 100644 html/changelogs/geeves-exosuit_part_examine_tweak.yml diff --git a/code/modules/heavy_vehicle/components/_components.dm b/code/modules/heavy_vehicle/components/_components.dm index a807298384d..4923c10dad6 100644 --- a/code/modules/heavy_vehicle/components/_components.dm +++ b/code/modules/heavy_vehicle/components/_components.dm @@ -34,7 +34,7 @@ /obj/item/mech_component/examine(mob/user) . = ..() if(ready_to_install()) - to_chat(user, "It is ready for installation.") + to_chat(user, SPAN_NOTICE("It is ready for installation.")) else show_missing_parts(user) @@ -54,7 +54,7 @@ /obj/item/mech_component/proc/install_component(var/obj/item/thing, var/mob/user) user.drop_from_inventory(thing) thing.forceMove(src) - user.visible_message("\The [user] installs \the [thing] in \the [src].") + user.visible_message(SPAN_NOTICE("\The [user] installs \the [thing] in \the [src].")) return 1 /obj/item/mech_component/proc/update_health() @@ -97,12 +97,12 @@ if(thing.isscrewdriver()) if(contents.len) var/obj/item/removed = pick(contents) - user.visible_message("\The [user] removes \the [removed] from \the [src].") + user.visible_message(SPAN_NOTICE("\The [user] removes \the [removed] from \the [src].")) removed.forceMove(user.loc) playsound(user.loc, 'sound/effects/pop.ogg', 50, 0) update_components() else - to_chat(user, "There is nothing to remove.") + to_chat(user, SPAN_WARNING("There is nothing to remove.")) return if(thing.iswelder()) repair_brute_generic(thing, user) @@ -119,28 +119,28 @@ if(!istype(WT)) return if(!brute_damage) - to_chat(user, "You inspect \the [src] but find nothing to weld.") + to_chat(user, SPAN_NOTICE("You inspect \the [src] but find nothing to weld.")) return if(!WT.isOn()) - to_chat(user, "Turn \the [WT] on, first.") + to_chat(user, SPAN_WARNING("Turn \the [WT] on, first.")) return if(WT.remove_fuel(0, user)) var/repair_value = 15 if(brute_damage) repair_brute_damage(repair_value) - to_chat(user, "You mend the damage to \the [src].") + to_chat(user, SPAN_NOTICE("You mend the damage to \the [src].")) playsound(user.loc, 'sound/items/welder.ogg', 25, 1) /obj/item/mech_component/proc/repair_burn_generic(var/obj/item/stack/cable_coil/CC, var/mob/user) if(!istype(CC)) return if(!burn_damage) - to_chat(user, "\The [src]'s wiring doesn't need replacing.") + to_chat(user, SPAN_NOTICE("\The [src]'s wiring doesn't need replacing.")) return var/needed_amount = 3 if(CC.get_amount() < needed_amount) - to_chat(user, "You need at least [needed_amount] unit\s of cable to repair this section.") + to_chat(user, SPAN_WARNING("You need at least [needed_amount] unit\s of cable to repair this section.")) return user.visible_message("\The [user] begins replacing the wiring of \the [src]...") @@ -150,6 +150,6 @@ return repair_burn_damage(25) - to_chat(user, "You mend the damage to \the [src]'s wiring.") + to_chat(user, SPAN_NOTICE("You mend the damage to \the [src]'s wiring.")) playsound(user.loc, 'sound/items/Deconstruct.ogg', 25, 1) return diff --git a/code/modules/heavy_vehicle/components/armor.dm b/code/modules/heavy_vehicle/components/armor.dm index 07c3009b486..0ad058d1b83 100644 --- a/code/modules/heavy_vehicle/components/armor.dm +++ b/code/modules/heavy_vehicle/components/armor.dm @@ -1,10 +1,10 @@ /obj/item/robot_parts/robot_component/armor/mech name = "exosuit armor plating" armor = list( - melee = ARMOR_MELEE_MAJOR, - bullet = ARMOR_BALLISTIC_PISTOL, - laser = ARMOR_LASER_HANDGUNS, - energy = ARMOR_ENERGY_MINOR, + melee = ARMOR_MELEE_MAJOR, + bullet = ARMOR_BALLISTIC_PISTOL, + laser = ARMOR_LASER_HANDGUNS, + energy = ARMOR_ENERGY_MINOR, bomb = ARMOR_BOMB_PADDED, bio = ARMOR_BIO_SHIELDED, rad = ARMOR_RAD_MINOR @@ -19,12 +19,12 @@ name = "radiation-proof armor plating" desc = "A fully enclosed radiation hardened shell designed to protect the pilot from radiation." armor = list( - melee = ARMOR_MELEE_RESISTANT, - bullet = ARMOR_BALLISTIC_PISTOL, - laser = ARMOR_LASER_HANDGUNS, - energy = ARMOR_ENERGY_MINOR, + melee = ARMOR_MELEE_RESISTANT, + bullet = ARMOR_BALLISTIC_PISTOL, + laser = ARMOR_LASER_HANDGUNS, + energy = ARMOR_ENERGY_MINOR, bomb = ARMOR_BOMB_PADDED, - bio = ARMOR_BIO_SHIELDED, + bio = ARMOR_BIO_SHIELDED, rad = ARMOR_RAD_SHIELDED ) origin_tech = list(TECH_MATERIAL = 3) @@ -33,12 +33,12 @@ name = "EM-shielded armor plating" desc = "A shielded plating that sorrounds the eletronics and protects them from electromagnetic radiation." armor = list( - melee = ARMOR_MELEE_RESISTANT , - bullet = ARMOR_BALLISTIC_SMALL, - laser = ARMOR_LASER_SMALL, - energy = ARMOR_ENERGY_SHIELDED, - bomb = ARMOR_BOMB_MINOR, - bio = ARMOR_BIO_SHIELDED, + melee = ARMOR_MELEE_RESISTANT , + bullet = ARMOR_BALLISTIC_SMALL, + laser = ARMOR_LASER_SMALL, + energy = ARMOR_ENERGY_SHIELDED, + bomb = ARMOR_BOMB_MINOR, + bio = ARMOR_BIO_SHIELDED, rad = ARMOR_RAD_SMALL ) origin_tech = list(TECH_MATERIAL = 3) @@ -47,11 +47,11 @@ name = "heavy combat plating" desc = "Plating designed to deflect incoming attacks and explosions." armor = list( - melee = ARMOR_MELEE_MAJOR, - bullet = ARMOR_BALLISTIC_RESISTANT, - laser = ARMOR_LASER_HANDGUNS, - energy = ARMOR_ENERGY_MINOR, - bomb = ARMOR_BOMB_RESISTANT, + melee = ARMOR_MELEE_MAJOR, + bullet = ARMOR_BALLISTIC_RESISTANT, + laser = ARMOR_LASER_HANDGUNS, + energy = ARMOR_ENERGY_MINOR, + bomb = ARMOR_BOMB_RESISTANT, bio = ARMOR_BIO_SHIELDED ) origin_tech = list(TECH_MATERIAL = 5) \ No newline at end of file diff --git a/code/modules/heavy_vehicle/components/arms.dm b/code/modules/heavy_vehicle/components/arms.dm index a8eac4e9756..b7d1dfabc51 100644 --- a/code/modules/heavy_vehicle/components/arms.dm +++ b/code/modules/heavy_vehicle/components/arms.dm @@ -18,7 +18,15 @@ /obj/item/mech_component/manipulators/show_missing_parts(var/mob/user) if(!motivator) - to_chat(user, "It is missing an actuator.") + to_chat(user, SPAN_WARNING("It is missing an actuator.")) + +/obj/item/mech_component/manipulators/Topic(href, href_list) + . = ..() + if(.) + return + switch(href_list["info"]) + if("actuator") + to_chat(usr, SPAN_NOTICE("An actuator can be created at a mechatronic fabricator.")) /obj/item/mech_component/manipulators/return_diagnostics(mob/user) ..() @@ -36,7 +44,7 @@ /obj/item/mech_component/manipulators/attackby(var/obj/item/thing, var/mob/user) if(istype(thing,/obj/item/robot_parts/robot_component/actuator)) if(motivator) - to_chat(user, "\The [src] already has an actuator installed.") + to_chat(user, SPAN_WARNING("\The [src] already has an actuator installed.")) return if(install_component(thing, user)) motivator = thing else diff --git a/code/modules/heavy_vehicle/components/body.dm b/code/modules/heavy_vehicle/components/body.dm index 229b8e130ae..bfef6f2e344 100644 --- a/code/modules/heavy_vehicle/components/body.dm +++ b/code/modules/heavy_vehicle/components/body.dm @@ -48,11 +48,23 @@ /obj/item/mech_component/chassis/show_missing_parts(var/mob/user) if(!cell) - to_chat(user, "It is missing a power cell.") + to_chat(user, SPAN_WARNING("It is missing a power cell.")) if(!diagnostics) - to_chat(user, "It is missing a diagnostics unit.") + to_chat(user, SPAN_WARNING("It is missing a diagnostics unit.")) if(!mech_armor) - to_chat(user, "It is missing armor plating.") + to_chat(user, SPAN_WARNING("It is missing armor plating.")) + +/obj/item/mech_component/chassis/Topic(href, href_list) + . = ..() + if(.) + return + switch(href_list["info"]) + if("cell") + to_chat(usr, SPAN_NOTICE("A power cell can be created at a mechatronic fabricator.")) + if("diagnostics") + to_chat(usr, SPAN_NOTICE("A diagnostics unit can be created at a mechatronic fabricator.")) + if("armor") + to_chat(usr, SPAN_NOTICE("Armor plating can be created at a mechatronic fabricator.")) /obj/item/mech_component/chassis/return_diagnostics(mob/user) ..() @@ -103,17 +115,17 @@ /obj/item/mech_component/chassis/attackby(var/obj/item/thing, var/mob/user) if(istype(thing,/obj/item/robot_parts/robot_component/diagnosis_unit)) if(diagnostics) - to_chat(user, "\The [src] already has a diagnostic system installed.") + to_chat(user, SPAN_WARNING("\The [src] already has a diagnostic system installed.")) return if(install_component(thing, user)) diagnostics = thing else if(istype(thing, /obj/item/cell)) if(cell) - to_chat(user, "\The [src] already has a cell installed.") + to_chat(user, SPAN_WARNING("\The [src] already has a cell installed.")) return if(install_component(thing,user)) cell = thing else if(istype(thing, /obj/item/robot_parts/robot_component/armor/mech)) if(mech_armor) - to_chat(user, "\The [src] already has mech_armor installed.") + to_chat(user, SPAN_WARNING("\The [src] already has mech_armor installed.")) return if(install_component(thing, user)) mech_armor = thing @@ -123,7 +135,7 @@ /obj/item/mech_component/chassis/MouseDrop_T(atom/dropping, mob/user) var/obj/machinery/portable_atmospherics/canister/C = dropping if(istype(C) && do_after(user, 5, src)) - to_chat(user, "You install the canister in the [src].") + to_chat(user, SPAN_NOTICE("You install the canister into \the [src].")) if(air_supply) air_supply.forceMove(get_turf(src)) air_supply = null diff --git a/code/modules/heavy_vehicle/components/frame.dm b/code/modules/heavy_vehicle/components/frame.dm index 63c333f09f9..edb807801cc 100644 --- a/code/modules/heavy_vehicle/components/frame.dm +++ b/code/modules/heavy_vehicle/components/frame.dm @@ -42,24 +42,49 @@ /obj/structure/heavy_vehicle_frame/examine(mob/user) . = ..() if(!arms) - to_chat(user, "It is missing some manipulators.") + to_chat(user, SPAN_WARNING("It is missing some manipulators.")) if(!legs) - to_chat(user, "It is missing a means of propulsion.") + to_chat(user, SPAN_WARNING("It is missing a means of propulsion.")) if(!head) - to_chat(user, "It is missing some sensors.") + to_chat(user, SPAN_WARNING("It is missing some sensors.")) if(!body) - to_chat(user, "It is missing a chassis.") + to_chat(user, SPAN_WARNING("It is missing a chassis.")) if(is_wired == FRAME_WIRED) - to_chat(user, "Its wiring is unadjusted.") + to_chat(user, SPAN_WARNING("Its wiring is unadjusted.")) else if(!is_wired) - to_chat(user, "It has not yet been wired.") + to_chat(user, SPAN_WARNING("It has not yet been wired.")) if(is_reinforced == FRAME_REINFORCED) - to_chat(user, "It has not had its internal reinforcement secured.") + to_chat(user, SPAN_WARNING("It has not had its internal reinforcement secured.")) else if(is_reinforced == FRAME_REINFORCED_SECURE) - to_chat(user, "It has not had its internal reinforcement welded in.") + to_chat(user, SPAN_WARNING("It has not had its internal reinforcement welded in.")) else if(!is_reinforced) - to_chat(user, "It does not have any internal reinforcement.") + to_chat(user, SPAN_WARNING("It does not have any internal reinforcement.")) +/obj/structure/heavy_vehicle_frame/Topic(href, href_list) + . = ..() + if(.) + return + switch(href_list["info"]) + if("manipulators") + to_chat(usr, SPAN_NOTICE("Manipulators, the arms of the exosuit, can be created at a mechatronic fabricator.")) + if("propulsion") + to_chat(usr, SPAN_NOTICE("Propulsion, the legs of the exosuit, can be created at a mechatronic fabricator.")) + if("sensors") + to_chat(usr, SPAN_NOTICE("Sensors, the head of the exosuit, can be created at a mechatronic fabricator.")) + if("chassis") + to_chat(usr, SPAN_NOTICE("A chassis, the body of the exosuit, can be created at a mechatronic fabricator.")) + if("wire") + if(!is_wired) + to_chat(usr, SPAN_NOTICE("The frame requires wiring between its components. This can be added with cable coil.")) + else if(is_wired == FRAME_WIRED) + to_chat(usr, SPAN_NOTICE("The wiring of the frame is messy, and requires a wirecutter to trim it for use.")) + if("reinforcement") + if(!is_reinforced) + to_chat(usr, SPAN_NOTICE("The frame requires reinforcement, this can be added with steel sheets.")) + else if(is_reinforced == FRAME_REINFORCED) + to_chat(usr, SPAN_NOTICE("The frame's reinforcement has been installed, now it must be wrenched into place.")) + else if(is_reinforced == FRAME_REINFORCED_SECURE) + to_chat(usr, SPAN_NOTICE("The frame's reinforcement has been installed and secured, now it must be welded into place.")) /obj/structure/heavy_vehicle_frame/update_icon() //As mech icons uses a caching system, any changes here, particularly to layers, must be reflected in /mob/living/heavy_vehicle/update_icon(). @@ -88,14 +113,14 @@ // Removing components. if(thing.iscrowbar()) if(is_reinforced == FRAME_REINFORCED) - user.visible_message("\The [user] crowbars \the reinforcement off \the [src].") + user.visible_message(SPAN_NOTICE("\The [user] crowbars the reinforcement off \the [src].")) is_reinforced = 0 return var/to_remove = input("Which component would you like to remove") as null|anything in list(arms, body, legs, head) if(!to_remove) - to_chat(user, "There are no components to remove..") + to_chat(user, SPAN_WARNING("There are no components to remove..")) return if(uninstall_component(to_remove, user)) @@ -116,25 +141,25 @@ // Check for basic components. if(!(arms && legs && head && body)) - to_chat(user, "There are still parts missing from \the [src].") + to_chat(user, SPAN_WARNING("There are still parts missing from \the [src].")) return // Check for wiring. if(is_wired < FRAME_WIRED_ADJUSTED) if(is_wired == FRAME_WIRED) - to_chat(user, "\The [src]'s wiring has not been adjusted!") + to_chat(user, SPAN_WARNING("\The [src]'s wiring has not been adjusted!")) else - to_chat(user, "\The [src] is not wired!") + to_chat(user, SPAN_WARNING("\The [src] is not wired!")) return // Check for basing metal internal plating. if(is_reinforced < FRAME_REINFORCED_WELDED) if(is_reinforced == FRAME_REINFORCED) - to_chat(user, "\The [src]'s internal reinforcement has not been secured!") + to_chat(user, SPAN_WARNING("\The [src]'s internal reinforcement has not been secured!")) else if(is_reinforced == FRAME_REINFORCED_SECURE) - to_chat(user, "\The [src]'s internal reinforcement has not been welded down!") + to_chat(user, SPAN_WARNING("\The [src]'s internal reinforcement has not been welded down!")) else - to_chat(user, "\The [src] has no internal reinforcement!") + to_chat(user, SPAN_WARNING("\The [src] has no internal reinforcement!")) return if(is_reinforced < FRAME_REINFORCED_WELDED || is_wired < FRAME_WIRED_ADJUSTED || !(arms && legs && head && body) || QDELETED(src) || QDELETED(user)) @@ -157,12 +182,12 @@ else if(thing.iscoil()) if(is_wired) - to_chat(user, "\The [src] has already been wired.") + to_chat(user, SPAN_WARNING("\The [src] has already been wired.")) return var/obj/item/stack/cable_coil/CC = thing if(CC.amount < 10) - to_chat(user, "You need at least ten units of cable to complete the exosuit.") + to_chat(user, SPAN_WARNING("You need at least ten units of cable to complete the exosuit.")) return user.visible_message("\The [user] begins wiring \the [src]...") @@ -189,12 +214,12 @@ // Installing metal. else if(istype(thing, /obj/item/stack/material)) var/obj/item/stack/material/M = thing - if(M.material && M.material.name == "steel") + if(M.material?.name == MATERIAL_STEEL) if(is_reinforced) - to_chat(user, "There is already metal reinforcement installed in \the [src].") + to_chat(user, SPAN_WARNING("There is already metal reinforcement installed in \the [src].")) return if(M.amount < 15) - to_chat(user, "You need at least fifteen sheets of steel to reinforce \the [src].") + to_chat(user, SPAN_WARNING("You need at least fifteen sheets of steel to reinforce \the [src].")) return visible_message("\The [user] reinforces \the [src] with \the [M].") playsound(user.loc, 'sound/items/Deconstruct.ogg', 50, 1) @@ -205,10 +230,10 @@ // Securing metal. else if(thing.iswrench()) if(!is_reinforced) - to_chat(user, "There is no metal to secure inside \the [src].") + to_chat(user, SPAN_WARNING("There is no metal to secure inside \the [src].")) return if(is_reinforced == FRAME_REINFORCED_WELDED) - to_chat(user, "\The [src]'s internal reinforcement has been welded in.") + to_chat(user, SPAN_WARNING("\The [src]'s internal reinforcement has been welded in.")) return visible_message("\The [user] [(is_reinforced == 2) ? "unsecures" : "secures"] the metal reinforcement in \the [src].") playsound(user.loc, thing.usesound, 100, 1) @@ -217,25 +242,25 @@ else if(thing.iswelder()) var/obj/item/weldingtool/WT = thing if(!is_reinforced) - to_chat(user, "There is no metal to secure inside \the [src].") + to_chat(user, SPAN_WARNING("There is no metal to secure inside \the [src].")) return if(is_reinforced == FRAME_REINFORCED) - to_chat(user, "The reinforcement inside \the [src] has not been secured.") + to_chat(user, SPAN_WARNING("The reinforcement inside \the [src] has not been secured.")) return if(!WT.isOn()) - to_chat(user, "Turn \the [WT] on, first.") + to_chat(user, SPAN_WARNING("Turn \the [WT] on, first.")) return if(WT.remove_fuel(1, user)) visible_message("\The [user] [(is_reinforced == 3) ? "unwelds the reinforcement from" : "welds the reinforcement into"] \the [src].") is_reinforced = (is_reinforced == FRAME_REINFORCED_WELDED) ? FRAME_REINFORCED_SECURE : FRAME_REINFORCED_WELDED playsound(user.loc, thing.usesound, 50, 1) else - to_chat(user, "Not enough fuel!") + to_chat(user, SPAN_WARNING("Not enough fuel!")) return // Installing basic components. else if(istype(thing,/obj/item/mech_component/manipulators)) if(arms) - to_chat(user, "\The [src] already has manipulators installed.") + to_chat(user, SPAN_WARNING("\The [src] already has manipulators installed.")) return if(install_component(thing, user)) if(arms) @@ -244,7 +269,7 @@ arms = thing else if(istype(thing,/obj/item/mech_component/propulsion)) if(legs) - to_chat(user, "\The [src] already has a propulsion system installed.") + to_chat(user, SPAN_WARNING("\The [src] already has a propulsion system installed.")) return if(install_component(thing, user)) if(legs) @@ -253,7 +278,7 @@ legs = thing else if(istype(thing,/obj/item/mech_component/sensors)) if(head) - to_chat(user, "\The [src] already has a sensor array installed.") + to_chat(user, SPAN_WARNING("\The [src] already has a sensor array installed.")) return if(install_component(thing, user)) if(head) @@ -262,7 +287,7 @@ head = thing else if(istype(thing,/obj/item/mech_component/chassis)) if(body) - to_chat(user, "\The [src] already has an outer chassis installed.") + to_chat(user, SPAN_WARNING("\The [src] already has an outer chassis installed.")) return if(install_component(thing, user)) if(body) @@ -276,7 +301,7 @@ /obj/structure/heavy_vehicle_frame/proc/install_component(var/obj/item/thing, var/mob/user) var/obj/item/mech_component/MC = thing if(istype(MC) && !MC.ready_to_install()) - if(user) to_chat(user, "\The [MC] is not ready to install.") + if(user) to_chat(user, SPAN_WARNING("\The [MC] is not ready to install.")) return 0 user.unEquip(thing) thing.forceMove(src) diff --git a/code/modules/heavy_vehicle/components/head.dm b/code/modules/heavy_vehicle/components/head.dm index 6cdcb81e42c..2148b199758 100644 --- a/code/modules/heavy_vehicle/components/head.dm +++ b/code/modules/heavy_vehicle/components/head.dm @@ -22,11 +22,23 @@ /obj/item/mech_component/sensors/show_missing_parts(var/mob/user) if(!radio) - to_chat(user, "It is missing a radio.") + to_chat(user, SPAN_WARNING("It is missing a radio.")) if(!camera) - to_chat(user, "It is missing a camera.") + to_chat(user, SPAN_WARNING("It is missing a camera.")) if(!software) - to_chat(user, "It is missing a software control module.") + to_chat(user, SPAN_WARNING("It is missing an exosuit control module.")) + +/obj/item/mech_component/sensors/Topic(href, href_list) + . = ..() + if(.) + return + switch(href_list["info"]) + if("radio") + to_chat(usr, SPAN_NOTICE("A radio can be created at a mechatronic fabricator.")) + if("camera") + to_chat(usr, SPAN_NOTICE("A camera can be created at a mechatronic fabricator.")) + if("module") + to_chat(usr, SPAN_NOTICE("An exosuit control module can be created at a mechatronic fabricator, while the software chips it uses can be printed at the circuit imprinter.")) /obj/item/mech_component/sensors/return_diagnostics(mob/user) ..() @@ -71,17 +83,17 @@ /obj/item/mech_component/sensors/attackby(var/obj/item/thing, var/mob/user) if(istype(thing, /obj/item/mech_component/control_module)) if(software) - to_chat(user, "\The [src] already has a control modules installed.") + to_chat(user, SPAN_WARNING("\The [src] already has a control modules installed.")) return if(install_component(thing, user)) software = thing else if(istype(thing,/obj/item/robot_parts/robot_component/radio)) if(radio) - to_chat(user, "\The [src] already has a radio installed.") + to_chat(user, SPAN_WARNING("\The [src] already has a radio installed.")) return if(install_component(thing, user)) radio = thing else if(istype(thing,/obj/item/robot_parts/robot_component/camera)) if(camera) - to_chat(user, "\The [src] already has a camera installed.") + to_chat(user, SPAN_WARNING("\The [src] already has a camera installed.")) return if(install_component(thing, user)) camera = thing else @@ -98,7 +110,15 @@ /obj/item/mech_component/control_module/examine(mob/user) . = ..() - to_chat(user, "It has [max_installed_software - LAZYLEN(installed_software)] empty slot\s remaining out of [max_installed_software].") + to_chat(user, SPAN_NOTICE("It has [max_installed_software - LAZYLEN(installed_software)] empty slot\s remaining out of [max_installed_software].")) + +/obj/item/mech_component/control_module/Topic(href, href_list) + . = ..() + if(.) + return + switch(href_list["info"]) + if("software") + to_chat(usr, SPAN_NOTICE("Software for \the [src] can be created at the circuit imprinter.")) /obj/item/mech_component/control_module/attackby(var/obj/item/thing, var/mob/user) if(istype(thing, /obj/item/circuitboard/exosystem)) @@ -114,10 +134,10 @@ /obj/item/mech_component/control_module/proc/install_software(var/obj/item/circuitboard/exosystem/software, var/mob/user) if(installed_software.len >= max_installed_software) if(user) - to_chat(user, "\The [src] can only hold [max_installed_software] software modules.") + to_chat(user, SPAN_WARNING("\The [src] can only hold [max_installed_software] software modules.")) return if(user) - to_chat(user, "You load \the [software] into \the [src]'s memory.") + to_chat(user, SPAN_NOTICE("You load \the [software] into \the [src]'s memory.")) user.unEquip(software) software.forceMove(src) update_software() diff --git a/code/modules/heavy_vehicle/components/legs.dm b/code/modules/heavy_vehicle/components/legs.dm index 7c1eb57071a..3245b615ae4 100644 --- a/code/modules/heavy_vehicle/components/legs.dm +++ b/code/modules/heavy_vehicle/components/legs.dm @@ -17,7 +17,15 @@ /obj/item/mech_component/propulsion/show_missing_parts(var/mob/user) if(!motivator) - to_chat(user, "It is missing a motivator.") + to_chat(user, SPAN_WARNING("It is missing an actuator.")) + +/obj/item/mech_component/propulsion/Topic(href, href_list) + . = ..() + if(.) + return + switch(href_list["info"]) + if("actuator") + to_chat(usr, SPAN_NOTICE("An actuator can be created at a mechatronic fabricator.")) /obj/item/mech_component/propulsion/return_diagnostics(mob/user) ..() @@ -35,7 +43,7 @@ /obj/item/mech_component/propulsion/attackby(var/obj/item/thing, var/mob/user) if(istype(thing,/obj/item/robot_parts/robot_component/actuator)) if(motivator) - to_chat(user, "\The [src] already has an actuator installed.") + to_chat(user, SPAN_WARNING("\The [src] already has an actuator installed.")) return motivator = thing install_component(thing, user) diff --git a/code/modules/research/designs/mechfab/mechs/designs_exosuits.dm b/code/modules/research/designs/mechfab/mechs/designs_exosuits.dm index 8eb85d4cb5d..65d483d2aff 100644 --- a/code/modules/research/designs/mechfab/mechs/designs_exosuits.dm +++ b/code/modules/research/designs/mechfab/mechs/designs_exosuits.dm @@ -39,7 +39,7 @@ materials = list(DEFAULT_WALL_MATERIAL = 5000) /datum/design/item/mechfab/exosuit/diagnosis_unit - name = "Diagnosis unit" + name = "Diagnostics Unit" build_path = /obj/item/robot_parts/robot_component/diagnosis_unit time = 10 materials = list(DEFAULT_WALL_MATERIAL = 5000) diff --git a/html/changelogs/geeves-exosuit_part_examine_tweak.yml b/html/changelogs/geeves-exosuit_part_examine_tweak.yml new file mode 100644 index 00000000000..49d8dadfa6b --- /dev/null +++ b/html/changelogs/geeves-exosuit_part_examine_tweak.yml @@ -0,0 +1,6 @@ +author: Geeves + +delete-after: True + +changes: + - rscadd: "Examining in-construction exosuit parts will now add hyperlinks to certain words, which can be clicked to provide some info on the steps to take to complete it." \ No newline at end of file From ef8afc41e62ddfa0aaaf3e19803085a23855eed9 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Wed, 24 Feb 2021 15:01:19 +0000 Subject: [PATCH 14/16] "[ci skip] Automatic Build - 2021.02.24.15.01.19" --- html/changelog.html | 9 ++++ html/changelogs/.all_changelog.yml | 10 +++++ .../changelogs/geeves-come_here_pogmobile.yml | 6 --- .../geeves-exosuit_part_examine_tweak.yml | 6 --- html/changelogs/mattatlas-notactuallytrue.yml | 44 ------------------- 5 files changed, 19 insertions(+), 56 deletions(-) delete mode 100644 html/changelogs/geeves-come_here_pogmobile.yml delete mode 100644 html/changelogs/geeves-exosuit_part_examine_tweak.yml delete mode 100644 html/changelogs/mattatlas-notactuallytrue.yml diff --git a/html/changelog.html b/html/changelog.html index b21385f5652..c73334110ea 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -40,6 +40,15 @@

        • Added cleaning grenade launchers to the exosuit equipment list in the mechfab.
        • Examining the equipment you can attach to exosuits will now show you to which hardpoints it can be attached, and which software it requires to function.
        • +
        • Fixes exosuits responding to their commands without invoking their names first.
        • +
        • Examining in-construction exosuit parts will now add hyperlinks to certain words, which can be clicked to provide some info on the steps to take to complete it.
        • +
        +

        MattAtlas updated:

        +
          +
        • Badges can now be attached to plate carriers.
        • +
        • Crossbows are no longer duplicated when attached to an RFD.
        • +
        • Fixed hardsuit weapon configuration.
        • +
        • Fixed riot armguards worn sprite.

        WickedCybs updated:

          diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 836197d46e6..597589898de 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18482,6 +18482,16 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. mechfab. - rscadd: Examining the equipment you can attach to exosuits will now show you to which hardpoints it can be attached, and which software it requires to function. + - bugfix: Fixes exosuits responding to their commands without invoking their names + first. + - rscadd: Examining in-construction exosuit parts will now add hyperlinks to certain + words, which can be clicked to provide some info on the steps to take to complete + it. + MattAtlas: + - bugfix: Badges can now be attached to plate carriers. + - bugfix: Crossbows are no longer duplicated when attached to an RFD. + - bugfix: Fixed hardsuit weapon configuration. + - bugfix: Fixed riot armguards worn sprite. WickedCybs: - tweak: Revised some fluff descriptions and resistances to a few pieces of Tajaran gear. diff --git a/html/changelogs/geeves-come_here_pogmobile.yml b/html/changelogs/geeves-come_here_pogmobile.yml deleted file mode 100644 index 5070a7c7935..00000000000 --- a/html/changelogs/geeves-come_here_pogmobile.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - bugfix: "Fixes exosuits responding to their commands without invoking their names first." \ No newline at end of file diff --git a/html/changelogs/geeves-exosuit_part_examine_tweak.yml b/html/changelogs/geeves-exosuit_part_examine_tweak.yml deleted file mode 100644 index 49d8dadfa6b..00000000000 --- a/html/changelogs/geeves-exosuit_part_examine_tweak.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - rscadd: "Examining in-construction exosuit parts will now add hyperlinks to certain words, which can be clicked to provide some info on the steps to take to complete it." \ No newline at end of file diff --git a/html/changelogs/mattatlas-notactuallytrue.yml b/html/changelogs/mattatlas-notactuallytrue.yml deleted file mode 100644 index 206aa680e84..00000000000 --- a/html/changelogs/mattatlas-notactuallytrue.yml +++ /dev/null @@ -1,44 +0,0 @@ -################################ -# Example Changelog File -# -# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. -# -# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) -# When it is, any changes listed below will disappear. -# -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscadd (general adding of nice things) -# rscdel (general deleting of nice things) -# imageadd -# imagedel -# maptweak -# spellcheck (typo fixes) -# experiment -# balance -# admin -# backend -# security -# refactor -################################# - -# Your name. -author: MattAtlas - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. -# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. -changes: - - bugfix: "Badges can now be attached to plate carriers." - - bugfix: "Crossbows are no longer duplicated when attached to an RFD." - - bugfix: "Fixed hardsuit weapon configuration." - - bugfix: "Fixed riot armguards worn sprite." From 824b47d91bfb43881e913b3b0e2764d1b8eebe15 Mon Sep 17 00:00:00 2001 From: Geeves Date: Wed, 24 Feb 2021 17:01:28 +0200 Subject: [PATCH 15/16] Plasma Cutter Improvements (#11231) --- code/game/machinery/constructable_frame.dm | 4 +-- code/game/objects/items.dm | 3 ++ code/game/objects/items/weapons/tools.dm | 4 +++ code/game/objects/structures/girders.dm | 12 +++++--- code/game/objects/structures/grille.dm | 6 ++-- code/game/turfs/simulated/wall_attacks.dm | 15 ++++------ code/modules/mining/mine_turfs.dm | 6 +++- .../modules/projectiles/guns/energy/mining.dm | 28 +++++++++++++++++++ .../geeves-plasma_cutter_improvements.yml | 8 ++++++ 9 files changed, 67 insertions(+), 19 deletions(-) create mode 100644 html/changelogs/geeves-plasma_cutter_improvements.yml diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index f63951e3ffe..e56fda1ff8c 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -94,9 +94,9 @@ qdel(src) else if(istype(P, /obj/item/gun/energy/plasmacutter)) var/obj/item/gun/energy/plasmacutter/PC = P - if(!PC.power_supply) - to_chat(user, SPAN_WARNING("\The [src] doesn't have a power supply installed!")) + if(PC.check_power_and_message(user)) return + PC.use_resource(1) playsound(get_turf(src), PC.fire_sound, 75, TRUE) to_chat(user, SPAN_NOTICE("You dismantle the blueprint.")) new /obj/item/stack/material/steel(get_turf(src), 2) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 1e22261e75a..46704e8d9c7 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -875,3 +875,6 @@ modules/mob/living/carbon/human/life.dm if you die, you will be zoomed out. . += "Dismemberment: [edge ? "likely to dismember" : "unlikely to dismember"]
          " . += "Penetration: [armor_penetration]
          " . += "Throw Force: [throwforce]
          " + +/obj/item/proc/use_resource(var/mob/user, var/use_amount) + return \ No newline at end of file diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 255529192e6..5dd1f8c3791 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -465,6 +465,10 @@ to_chat(M, SPAN_NOTICE("You need more welding fuel to complete this task.")) return 0 +/obj/item/weldingtool/use_resource(mob/user, var/use_amount) + if(get_fuel() >= use_amount) + reagents.remove_reagent(/decl/reagent/fuel, use_amount) + //Returns whether or not the welding tool is currently on. /obj/item/weldingtool/proc/isOn() return src.welding diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 94a80e4afbd..3bfb2ba1d97 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -87,10 +87,14 @@ reset_girder() else if(istype(W, /obj/item/gun/energy/plasmacutter)) - to_chat(user, "Now slicing apart the girder...") - if(do_after(user,30/W.toolspeed)) - if(!src) return - to_chat(user, "You slice apart the girder!") + var/obj/item/gun/energy/plasmacutter/PC = W + to_chat(user, SPAN_NOTICE("You start lining up \the [PC] to the joints of \the [src]...")) + if(do_after(user, 2 SECONDS)) + if(!src) + return + playsound(loc, PC.fire_sound, 100, 1) + to_chat(user, SPAN_NOTICE("You blast apart the girder!")) + W.use_resource(user, 1) dismantle() else if(istype(W, /obj/item/melee/energy)) diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index 9f437346e4a..13091df3b39 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -102,10 +102,10 @@ qdel(src) else if(istype(W, /obj/item/gun/energy/plasmacutter)) var/obj/item/gun/energy/plasmacutter/PC = W - if(!PC.power_supply) - to_chat(user, SPAN_WARNING("\The [src] doesn't have a power supply installed!")) + if(PC.check_power_and_message(user)) return - playsound(get_turf(src), PC.fire_sound, 100, TRUE) + PC.use_resource(user, 1) + playsound(loc, PC.fire_sound, 100, TRUE) new /obj/item/stack/rods(get_turf(src), destroyed ? 1 : 2) qdel(src) else if((W.isscrewdriver()) && (istype(loc, /turf/simulated) || anchored)) diff --git a/code/game/turfs/simulated/wall_attacks.dm b/code/game/turfs/simulated/wall_attacks.dm index dddcf20ddcb..c4e4478f9e0 100644 --- a/code/game/turfs/simulated/wall_attacks.dm +++ b/code/game/turfs/simulated/wall_attacks.dm @@ -204,10 +204,9 @@ cut_delay *= 0.7 else if(istype(W, /obj/item/gun/energy/plasmacutter)) var/obj/item/gun/energy/plasmacutter/PC = W - if(!PC.power_supply) - to_chat(user, SPAN_WARNING("\The [src] doesn't have a power supply installed!")) + if(PC.check_power_and_message(user)) return - dismantle_sound = "zapping and melting" + dismantle_sound = PC.fire_sound dismantle_verb = "slicing" cut_delay *= 0.8 else if(istype(W,/obj/item/melee/energy)) @@ -243,10 +242,7 @@ cut_delay *= 1.5 if(dismantle_verb) - to_chat(user, SPAN_NOTICE("You begin [dismantle_verb] through the outer plating.")) - if(dismantle_sound) - playsound(src, dismantle_sound, 100, 1) if(cut_delay<0) cut_delay = 1 @@ -254,14 +250,15 @@ if(!do_after(user,cut_delay/W.toolspeed)) return - //This prevents runtime errors if someone clicks the same wall more than once if (!istype(src, /turf/simulated/wall)) return - to_chat(user, SPAN_NOTICE("You remove the outer plating.")) + if(dismantle_sound) + playsound(src, dismantle_sound, 100, 1) + W.use_resource(user, 1) dismantle_wall() - user.visible_message(SPAN_WARNING("The wall was torn open by [user]!")) + user.visible_message(SPAN_WARNING("The wall was torn open by \the [user]!"), SPAN_NOTICE("You remove the outer plating.")) return //Reinforced dismantling. diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 26052d55879..b37a4586b1e 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -129,11 +129,15 @@ var/list/mineral_can_smooth_with = list( GetDrilled() /turf/simulated/mineral/bullet_act(var/obj/item/projectile/Proj) + if(istype(Proj, /obj/item/projectile/beam/plasmacutter)) + var/obj/item/projectile/beam/plasmacutter/PC_beam = Proj + . = PC_beam.pass_check(src) + // Emitter blasts if(istype(Proj, /obj/item/projectile/beam/emitter)) emitter_blasts_taken++ - if(emitter_blasts_taken > 2) // 3 blasts per tile + if(emitter_blasts_taken >= 3) GetDrilled() /turf/simulated/mineral/CollidedWith(AM) diff --git a/code/modules/projectiles/guns/energy/mining.dm b/code/modules/projectiles/guns/energy/mining.dm index 8d04e38e907..b07e6a64e21 100644 --- a/code/modules/projectiles/guns/energy/mining.dm +++ b/code/modules/projectiles/guns/energy/mining.dm @@ -7,6 +7,7 @@ icon = 'icons/obj/mining_contained.dmi' icon_state = "plasma" item_state = "plasma" + usesound = 'sound/weapons/plasma_cutter.ogg' fire_sound = 'sound/weapons/plasma_cutter.ogg' slot_flags = SLOT_BELT|SLOT_BACK accuracy = 1 @@ -49,6 +50,15 @@ else ..() +/obj/item/gun/energy/plasmacutter/proc/check_power_and_message(var/mob/user, var/use_amount = 1) + if(!power_supply) + to_chat(user, SPAN_WARNING("\The [src] doesn't have a power supply installed!")) + return TRUE + if(!power_supply.check_charge(charge_cost * use_amount)) + to_chat(user, SPAN_WARNING("\The [src] doesn't have enough power to do this!")) + return TRUE + return FALSE + /obj/item/gun/energy/plasmacutter/mounted name = "mounted plasma cutter" self_recharge = TRUE @@ -65,12 +75,21 @@ range = 5 pass_flags = PASSTABLE + var/mineral_passes = 2 // amount of mineral turfs it passes through before ending + muzzle_type = /obj/effect/projectile/muzzle/plasma_cutter tracer_type = /obj/effect/projectile/tracer/plasma_cutter impact_type = /obj/effect/projectile/impact/plasma_cutter maiming = TRUE maim_rate = 1 +/obj/item/projectile/beam/plasmacutter/proc/pass_check(var/turf/simulated/mineral/mine_turf) + if(mineral_passes <= 0) + return null // the projectile stops + mineral_passes-- + on_impact(mine_turf) + return PROJECTILE_CONTINUE // the projectile tunnels deeper + /obj/item/projectile/beam/plasmacutter/on_impact(var/atom/A) if(istype(A, /turf/simulated/mineral)) var/turf/simulated/mineral/M = A @@ -81,3 +100,12 @@ M.emitter_blasts_taken += 2 M.emitter_blasts_taken += 1 . = ..() + +/obj/item/gun/energy/plasmacutter/use_resource(mob/user, var/use_amount) + if(use_external_power) + var/obj/item/cell/external = get_external_power_supply() + if(external) + external.use(use_amount * charge_cost) + return + if(power_supply) + power_supply.use(use_amount * charge_cost) \ No newline at end of file diff --git a/html/changelogs/geeves-plasma_cutter_improvements.yml b/html/changelogs/geeves-plasma_cutter_improvements.yml new file mode 100644 index 00000000000..6caa9407793 --- /dev/null +++ b/html/changelogs/geeves-plasma_cutter_improvements.yml @@ -0,0 +1,8 @@ +author: Geeves + +delete-after: True + +changes: + - bugfix: "Using a plasma cutter to cut down walls, grilles, and girders, now properly plays the sound and uses its charge." + - rscadd: "Using welding tools on walls will now drain their fuel." + - rscadd: "Plasma cutters beams can now hit three asteroid walls per shot, making them more useful for mining." From dd6bee3a0ce5ffa98172421483ce9e132f172578 Mon Sep 17 00:00:00 2001 From: AuroraBuildBot Date: Wed, 24 Feb 2021 15:02:13 +0000 Subject: [PATCH 16/16] "[ci skip] Automatic Build - 2021.02.24.15.02.13" --- html/changelog.html | 3 +++ html/changelogs/.all_changelog.yml | 5 +++++ html/changelogs/geeves-plasma_cutter_improvements.yml | 8 -------- 3 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 html/changelogs/geeves-plasma_cutter_improvements.yml diff --git a/html/changelog.html b/html/changelog.html index c73334110ea..71ad0008758 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -42,6 +42,9 @@
        • Examining the equipment you can attach to exosuits will now show you to which hardpoints it can be attached, and which software it requires to function.
        • Fixes exosuits responding to their commands without invoking their names first.
        • Examining in-construction exosuit parts will now add hyperlinks to certain words, which can be clicked to provide some info on the steps to take to complete it.
        • +
        • Using a plasma cutter to cut down walls, grilles, and girders, now properly plays the sound and uses its charge.
        • +
        • Using welding tools on walls will now drain their fuel.
        • +
        • Plasma cutters beams can now hit three asteroid walls per shot, making them more useful for mining.

        MattAtlas updated:

          diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 597589898de..fa621ab275a 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -18487,6 +18487,11 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - rscadd: Examining in-construction exosuit parts will now add hyperlinks to certain words, which can be clicked to provide some info on the steps to take to complete it. + - bugfix: Using a plasma cutter to cut down walls, grilles, and girders, now properly + plays the sound and uses its charge. + - rscadd: Using welding tools on walls will now drain their fuel. + - rscadd: Plasma cutters beams can now hit three asteroid walls per shot, making + them more useful for mining. MattAtlas: - bugfix: Badges can now be attached to plate carriers. - bugfix: Crossbows are no longer duplicated when attached to an RFD. diff --git a/html/changelogs/geeves-plasma_cutter_improvements.yml b/html/changelogs/geeves-plasma_cutter_improvements.yml deleted file mode 100644 index 6caa9407793..00000000000 --- a/html/changelogs/geeves-plasma_cutter_improvements.yml +++ /dev/null @@ -1,8 +0,0 @@ -author: Geeves - -delete-after: True - -changes: - - bugfix: "Using a plasma cutter to cut down walls, grilles, and girders, now properly plays the sound and uses its charge." - - rscadd: "Using welding tools on walls will now drain their fuel." - - rscadd: "Plasma cutters beams can now hit three asteroid walls per shot, making them more useful for mining."