diff --git a/code/game/machinery/recharger.dm b/code/game/machinery/recharger.dm
index 8f3d33fafbb..c3398d2ad10 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -90,17 +90,6 @@
icon_state = "recharger2"
else
icon_state = "recharger3"
- if(istype(charging, /obj/item/weapon/pickaxe/drill))
- var/obj/item/weapon/pickaxe/drill/D = charging
- if(D.bcell)
- if(D.bcell.give(D.bcell.chargerate))
- icon_state = "recharger1"
- use_power(200)
- else
- icon_state = "recharger2"
- else
- icon_state = "recharger3"
-
/obj/machinery/recharger/emp_act(severity)
if(stat & (NOPOWER|BROKEN) || !anchored)
diff --git a/code/game/machinery/rechargestation.dm b/code/game/machinery/rechargestation.dm
index 1d1e828514d..0172b209fc4 100644
--- a/code/game/machinery/rechargestation.dm
+++ b/code/game/machinery/rechargestation.dm
@@ -157,14 +157,6 @@
F.broken = 0
F.times_used = 0
F.icon_state = "flash"
- // Mining
- if(istype(O, /obj/item/weapon/pickaxe/drill/cyborg))
- var/obj/item/weapon/pickaxe/drill/cyborg/D = O
- if(D.bcell.charge < D.bcell.maxcharge)
- D.bcell.charge = min(D.bcell.charge + recharge_speed, D.bcell.maxcharge)
- D.update_icon()
- if(D.warned)
- D.warned = 0
// Security
if(istype(O,/obj/item/weapon/gun/energy/gun/advtaser/cyborg))
var/obj/item/weapon/gun/energy/gun/advtaser/cyborg/T = O
diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm
index a6898f61098..f16ea230382 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -171,7 +171,7 @@
qdel(D)
for(var/obj/item/weapon/shovel/S in R.module.modules)
qdel(S)
- R.module.modules += new /obj/item/weapon/pickaxe/drill/diamonddrill(R.module)
+ R.module.modules += new /obj/item/weapon/pickaxe/drill/cyborg/diamond(R.module)
R.module.rebuild()
return 1
diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm
index b39486a9742..bec3ccaf087 100644
--- a/code/game/objects/structures/false_walls.dm
+++ b/code/game/objects/structures/false_walls.dm
@@ -123,10 +123,6 @@
if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
- if(!D.bcell.use(300))
- user << "Your [D.name] doesn't have enough power to break through the [name]."
- return
- D.update_icon()
D.playDigSound()
dismantle(user)
diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm
index 1a8f43b7b7a..985665278de 100644
--- a/code/game/objects/structures/girders.dm
+++ b/code/game/objects/structures/girders.dm
@@ -50,10 +50,6 @@
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
- if(!D.bcell.use(D.drillcost))
- user << "Your [D.name] doesn't have enough power to break through the [name]!"
- return
- D.update_icon()
user << "You smash through the girder!"
new /obj/item/stack/sheet/metal(get_turf(src))
D.playDigSound()
@@ -307,9 +303,6 @@
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
- if(!D.bcell.use(D.drillcost))
- return
- D.update_icon()
user << "Your jackhammer smashes through the girder!"
var/obj/effect/decal/remains/human/R = new (get_turf(src))
transfer_fingerprints_to(R)
diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm
index 86ec583212d..60989279c54 100644
--- a/code/game/objects/structures/statues.dm
+++ b/code/game/objects/structures/statues.dm
@@ -56,10 +56,6 @@
else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
- if(!D.bcell.use(D.drillcost))
- user << "Your [D.name] doesn't have enough power to break through the [name]!"
- return
- D.update_icon()
if(!src.loc)
return
user.visible_message("[user] destroys the [name]!", \
diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm
index 62f5324dc59..2acd66e25ac 100644
--- a/code/game/turfs/simulated/walls.dm
+++ b/code/game/turfs/simulated/walls.dm
@@ -207,10 +207,6 @@
/turf/simulated/wall/proc/try_destroy(obj/item/weapon/W as obj, mob/user as mob, turf/T as turf)
if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
- if(!D.bcell.use(400))
- user << "Your [D.name] doesn't have enough power to break through the [name]!"
- return
- D.update_icon()
if( !istype(src, /turf/simulated/wall) || !user || !W || !T )
return 1
if( user.loc == T && user.get_active_hand() == W )
diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/walls_reinforced.dm
index be6281e25fe..301809bc8a2 100644
--- a/code/game/turfs/simulated/walls_reinforced.dm
+++ b/code/game/turfs/simulated/walls_reinforced.dm
@@ -31,15 +31,11 @@
/turf/simulated/wall/r_wall/try_destroy(obj/item/weapon/W as obj, mob/user as mob, turf/T as turf)
if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer))
var/obj/item/weapon/pickaxe/drill/jackhammer/D = W
- if(!D.bcell.use(800))
- user << "Your [D.name] doesn't have enough power to break through the [name]."
- return 1
user << "You begin to smash though the [name]..."
if(do_after(user, 50))
if( !istype(src, /turf/simulated/wall/r_wall) || !user || !W || !T )
return 1
if( user.loc == T && user.get_active_hand() == W )
- D.update_icon()
D.playDigSound()
visible_message("[user] smashes through the [name] with the [D.name]!", "You hear the grinding of metal.")
dismantle_wall()
diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm
index e420be8f389..3ba4b0cdea6 100644
--- a/code/modules/mining/mine_items.dm
+++ b/code/modules/mining/mine_items.dm
@@ -74,94 +74,38 @@
name = "mining drill"
icon_state = "handdrill"
item_state = "jackhammer"
- digspeed = 25 //available from roundstart, faster than a pickaxe but needs recharging or cell replacements
+ digspeed = 25 //available from roundstart, faster than a pickaxe.
digsound = list('sound/weapons/drill.ogg')
hitsound = 'sound/weapons/drill.ogg'
origin_tech = "materials=2;powerstorage=3;engineering=2"
desc = "An electric mining drill for the especially scrawny."
- var/drillcost = 15 //666 mineral walls by default
- var/obj/item/weapon/stock_parts/cell/high/bcell = null
-
-/obj/item/weapon/pickaxe/drill/New() //this one starts with a cell pre-installed.
- ..()
- bcell = new(src)
- return
-
-/obj/item/weapon/pickaxe/drill/update_icon()
- if(!bcell)
- icon_state = "[initial(icon_state)]-nocell"
- else if(bcell.charge < drillcost)
- icon_state = "[initial(icon_state)]-empty"
- else
- icon_state = "[initial(icon_state)]"
-
-/obj/item/weapon/pickaxe/drill/attackby(obj/item/weapon/W, mob/user)
- if(istype(W, /obj/item/weapon/stock_parts/cell))
- if(bcell)
- user << "[src] already has a cell."
- else
- user.drop_item()
- W.loc = src
- bcell = W
- user << "You install a cell in [src]."
- update_icon()
- else
- ..()
-
-/obj/item/weapon/pickaxe/drill/attack_self(mob/user)
- if(bcell)
- bcell.updateicon()
- bcell.loc = get_turf(src.loc)
- bcell = null
- user << "You remove the cell from [src]."
- update_icon()
- else
- user << "There is no cell in [src]."
-
-/obj/item/weapon/pickaxe/drill/examine(mob/user)
- ..()
- if(bcell)
- user <<"The [src.name] is [round(bcell.percent())]% charged."
- if(!bcell)
- user <<"The [src.name] does not have a power source installed."
/obj/item/weapon/pickaxe/drill/cyborg
name = "cyborg mining drill"
desc = "An integrated electric mining drill."
- var/warned = 0
-
-/obj/item/weapon/pickaxe/drill/cyborg/attack_self(mob/user)
- return //can't remove the drill's cell
-
-/obj/item/weapon/pickaxe/drill/cyborg/proc/use_robot_power(var/mob/living/silicon/robot/R)
- if(!bcell.use(drillcost))
- if(!warned)
- usr << "Drill internal battery depleted, power will be drawn from user's power supply."
- playsound(src, 'sound/weapons/smg_empty_alarm.ogg',50,1)
- warned = 1
- if(!R.cell.use(drillcost))
- R << "You don't have enough charge to drill!"
- return 0
- return 1
+ flags = NODROP
/obj/item/weapon/pickaxe/drill/diamonddrill
name = "diamond-tipped mining drill"
icon_state = "diamonddrill"
- digspeed = 10 //it's a fast drill with a relatively low power cost. what more could you ask for?
+ digspeed = 10
origin_tech = "materials=6;powerstorage=4;engineering=5"
desc = "Yours is the drill that will pierce the heavens!"
- drillcost = 25 //400 mineral walls by default, but very quickly
+
+/obj/item/weapon/pickaxe/drill/cyborg/diamond //This is the BORG version!
+ name = "diamond-tipped cyborg mining drill" //To inherit the NODROP flag, and easier to change borg specific drill mechanics.
+ icon_state = "diamonddrill"
+ digspeed = 10
/obj/item/weapon/pickaxe/drill/jackhammer
name = "sonic jackhammer"
icon_state = "jackhammer"
item_state = "jackhammer"
- digspeed = 5 //the epitome of powertools. high power consumption, extremely fast mining, laughs at puny walls
+ digspeed = 5 //the epitome of powertools. extremely fast mining, laughs at puny walls
origin_tech = "materials=3;powerstorage=2;engineering=2"
digsound = list('sound/weapons/sonic_jackhammer.ogg')
hitsound = 'sound/weapons/sonic_jackhammer.ogg'
desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls."
- drillcost = 30 //333 mineral walls by default, but very quickly
/*****************************Shovel********************************/
diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm
index c8469966af4..451271a5f5e 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -414,16 +414,6 @@
if (!( istype(T, /turf) ))
return
- if(istype(P, /obj/item/weapon/pickaxe/drill))
- var/obj/item/weapon/pickaxe/drill/D = P
- if(isrobot(user))
- var/obj/item/weapon/pickaxe/drill/cyborg/RD = D
- if(!RD.use_robot_power(user))
- return
- else if(!D.bcell.use(D.drillcost))
- user << "Your [D.name] doesn't have enough charge!"
- return
-
if(last_act+P.digspeed > world.time)//prevents message spam
return
last_act = world.time
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 5b5533a9c28..2368fbfc3c3 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -171,7 +171,7 @@ datum/design/proc/CalcReliability(var/list/temp_techs)
/datum/design/jackhammer
name = "Sonic Jackhammer"
- desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well, but has high power cost for doing so."
+ desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well."
id = "jackhammer"
req_tech = list("materials" = 6, "powerstorage" = 6, "engineering" = 5, "magnets" = 6)
build_type = PROTOLATHE
diff --git a/html/changelogs/Gun-Hog-Drill-Power-Removal.yml b/html/changelogs/Gun-Hog-Drill-Power-Removal.yml
new file mode 100644
index 00000000000..46167330a9e
--- /dev/null
+++ b/html/changelogs/Gun-Hog-Drill-Power-Removal.yml
@@ -0,0 +1,8 @@
+
+author: Gun Hog
+
+delete-after: True
+
+changes:
+ - rscdel: "The power mechanic for mining drills and the jackhammer has been removed. They no longer require cells or recharging."
+ - bugfix: "The diamond drill upgrade for mining cyborgs has been fixed."