From 20308b54dde13ea1a01d02a2fc32953f305650d2 Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sat, 1 Feb 2020 11:48:55 +0800 Subject: [PATCH 1/3] exploit fix --- .../projectiles/guns/energy/kinetic_accelerator.dm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 1495ff61ba..40715cca4d 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -24,6 +24,7 @@ var/list/modkits = list() var/recharge_timerid + var/yeetdelay = 0 //exploit fix /obj/item/gun/energy/kinetic_accelerator/premiumka name = "premium accelerator" @@ -85,9 +86,10 @@ M.uninstall(src, FALSE) /obj/item/gun/energy/kinetic_accelerator/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/borg/upgrade/modkit)) + if(istype(I, /obj/item/borg/upgrade/modkit) && yeetdelay < world.time) var/obj/item/borg/upgrade/modkit/MK = I MK.install(src, user) + yeetdelay = world.time + 20 else ..() @@ -283,7 +285,8 @@ . += "Occupies [cost]% of mod capacity." /obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user) - if(istype(A, /obj/item/gun/energy/kinetic_accelerator)) + var/obj/item/gun/energy/kinetic_accelerator/K = A + if(istype(K) && K.yeetdelay < world.time) install(A, user) else ..() @@ -296,7 +299,7 @@ /obj/item/borg/upgrade/modkit/proc/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) . = TRUE - if(src in KA.modkits) // Sanity check to prevent installing the same modkit twice thanks to occasional click/lag delays. + if(src in KA.modkits || KA.yeetdelay < world.time) // Sanity check to prevent installing the same modkit twice thanks to occasional click/lag delays. return if(minebot_upgrade) if(minebot_exclusive && !istype(KA.loc, /mob/living/simple_animal/hostile/mining_drone)) @@ -382,7 +385,7 @@ var/old = KA.overheat_time KA.overheat_time = max(0, KA.overheat_time - modifier) decreased = old - KA.overheat_time - + /obj/item/borg/upgrade/modkit/cooldown/uninstall(obj/item/gun/energy/kinetic_accelerator/KA) KA.overheat_time += decreased From fc70b88b0671a2dd3c78bf15278efa56ee0dcceb Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sat, 1 Feb 2020 11:51:15 +0800 Subject: [PATCH 2/3] actually we only need it here --- .../projectiles/guns/energy/kinetic_accelerator.dm | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 40715cca4d..42c00f1127 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -86,10 +86,9 @@ M.uninstall(src, FALSE) /obj/item/gun/energy/kinetic_accelerator/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/borg/upgrade/modkit) && yeetdelay < world.time) + if(istype(I, /obj/item/borg/upgrade/modkit)) var/obj/item/borg/upgrade/modkit/MK = I MK.install(src, user) - yeetdelay = world.time + 20 else ..() @@ -285,8 +284,7 @@ . += "Occupies [cost]% of mod capacity." /obj/item/borg/upgrade/modkit/attackby(obj/item/A, mob/user) - var/obj/item/gun/energy/kinetic_accelerator/K = A - if(istype(K) && K.yeetdelay < world.time) + if(istype(A, /obj/item/gun/energy/kinetic_accelerator)) install(A, user) else ..() @@ -299,7 +297,7 @@ /obj/item/borg/upgrade/modkit/proc/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) . = TRUE - if(src in KA.modkits || KA.yeetdelay < world.time) // Sanity check to prevent installing the same modkit twice thanks to occasional click/lag delays. + if(src in KA.modkits && KA.yeetdelay < world.time) // Sanity check to prevent installing the same modkit twice thanks to occasional click/lag delays. return if(minebot_upgrade) if(minebot_exclusive && !istype(KA.loc, /mob/living/simple_animal/hostile/mining_drone)) @@ -324,6 +322,7 @@ to_chat(user, "You install the modkit.") playsound(loc, 'sound/items/screwdriver.ogg', 100, 1) KA.modkits += src + KA.yeetdelay = world.time + 20 else to_chat(user, "The modkit you're trying to install would conflict with an already installed modkit. Use a crowbar to remove existing modkits.") else From 3c8dcbbcd20180972af4cc1f90363d39f2997e1a Mon Sep 17 00:00:00 2001 From: Seris02 Date: Sat, 1 Feb 2020 16:02:30 +0800 Subject: [PATCH 3/3] merp --- .../projectiles/guns/energy/kinetic_accelerator.dm | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 42c00f1127..6cd567ce16 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -24,7 +24,6 @@ var/list/modkits = list() var/recharge_timerid - var/yeetdelay = 0 //exploit fix /obj/item/gun/energy/kinetic_accelerator/premiumka name = "premium accelerator" @@ -297,8 +296,8 @@ /obj/item/borg/upgrade/modkit/proc/install(obj/item/gun/energy/kinetic_accelerator/KA, mob/user) . = TRUE - if(src in KA.modkits && KA.yeetdelay < world.time) // Sanity check to prevent installing the same modkit twice thanks to occasional click/lag delays. - return + if(src in KA.modkits) // Sanity check to prevent installing the same modkit twice thanks to occasional click/lag delays. + return FALSE if(minebot_upgrade) if(minebot_exclusive && !istype(KA.loc, /mob/living/simple_animal/hostile/mining_drone)) to_chat(user, "The modkit you're trying to install is only rated for minebot use.") @@ -318,11 +317,10 @@ if(KA.get_remaining_mod_capacity() >= cost) if(.) if(!user.transferItemToLoc(src, KA)) - return + return FALSE to_chat(user, "You install the modkit.") playsound(loc, 'sound/items/screwdriver.ogg', 100, 1) KA.modkits += src - KA.yeetdelay = world.time + 20 else to_chat(user, "The modkit you're trying to install would conflict with an already installed modkit. Use a crowbar to remove existing modkits.") else