diff --git a/code/modules/clothing/spacesuits/rig/modules/combat.dm b/code/modules/clothing/spacesuits/rig/modules/combat.dm
index 1be87880272..05d3ae5fffa 100644
--- a/code/modules/clothing/spacesuits/rig/modules/combat.dm
+++ b/code/modules/clothing/spacesuits/rig/modules/combat.dm
@@ -269,7 +269,7 @@
interface_name = "thermal drill"
interface_desc = "A potent drill that can pierce rock walls over long distances."
- gun_type = /obj/item/gun/energy/vaurca/mountedthermaldrill
+ gun_type = /obj/item/gun/energy/vaurca/thermaldrill/mounted
category = MODULE_UTILITY
diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm
index 3f26328e2e5..9edd7c56b86 100644
--- a/code/modules/projectiles/guns/energy.dm
+++ b/code/modules/projectiles/guns/energy.dm
@@ -29,6 +29,8 @@
var/self_recharge = 0 //if set, the weapon will recharge itself
var/use_external_power = 0 //if set, the weapon will look for an external power source to draw from, otherwise it recharges magically
var/recharge_time = 4
+ /// Multiplies by charge cost to determine how much charge should be returned
+ var/recharge_multiplier = 1
var/charge_tick = 0
//vars passed to turrets
@@ -92,7 +94,7 @@
if(!external || !external.use(charge_cost)) //Take power from the borg...
return 0
- power_supply.give(charge_cost) //... to recharge the shot
+ power_supply.give(charge_cost * recharge_multiplier) //... to recharge the shot
update_maptext()
update_icon()
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 2099cb2783b..22167482a34 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -385,7 +385,8 @@
/obj/item/gun/energy/vaurca/thermaldrill
name = "thermal drill"
- desc = "Pierce the heavens? Son, there won't be any heavens when you're through with it."
+ desc = "A rare and immensely potent drill produced by the K'lax Hive, possessing a self-charging isotropic phoron-accelerated core."
+ desc_extended = "The latest iteration of the infamous K'laxan Thermal Drill, the original design dating back millennia. Produced on Tret and sold primarily to Hephaestus Industries, each of these drills has a self-charging isotropic phoron-accelerated core and is far more expensive than its traditional counterpart as a result. This is a price many seem willing to tolerate when accounting for the potency of the Thermal Drill and the increased yields facilities equipped with one begin to see. A burst of concentrated energy from the Thermal Drill tears through rock and xenoflaura alike as if both were mere paper. The few independent miners that have obtained this tool almost invariably treat it as a prized possession."
icon = 'icons/obj/vaurca_items.dmi'
icon_state = "thermaldrill"
item_state = "thermaldrill"
@@ -394,37 +395,40 @@
fire_sound = 'sound/magic/lightningbolt.ogg'
slot_flags = SLOT_BACK
w_class = ITEMSIZE_LARGE
- accuracy = 0 // Overwrite just in case.
force = 15
projectile_type = /obj/item/projectile/beam/thermaldrill
max_shots = 90
- sel_mode = 1
burst = 10
burst_delay = 1
fire_delay = 20
- self_recharge = 1
+ self_recharge = TRUE
recharge_time = 1
- charge_meter = 1
+ recharge_multiplier = 5
charge_cost = 50
- can_turret = 1
+ can_turret = TRUE
turret_sprite_set = "thermaldrill"
+ var/needs_wielding = TRUE
is_wieldable = TRUE
firemodes = list(
list(mode_name="2 second burst", burst=10, burst_delay = 1, fire_delay = 20, fire_delay_wielded = 20),
list(mode_name="4 second burst", burst=20, burst_delay = 1, fire_delay = 40, fire_delay_wielded = 40),
list(mode_name="6 second burst", burst=30, burst_delay = 1, fire_delay = 60, fire_delay_wielded = 60),
- list(mode_name="point-burst auto", can_autofire = TRUE, burst = 1, fire_delay = 1, fire_delay_wielded = 1, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(1.0, 1.0, 1.0, 1.0, 1.2))
- )
+ list(mode_name="point-burst auto", can_autofire = TRUE, burst = 3, fire_delay = 3, fire_delay_wielded = 3, burst_accuracy = list(0,-1,-1,-2,-2,-2,-3,-3), dispersion = list(1.0, 1.0, 1.0, 1.0, 1.2))
+ )
needspin = FALSE
/obj/item/gun/energy/vaurca/thermaldrill/special_check(var/mob/user)
+ var/turf/current_turf = get_turf(user)
+ if(isStationLevel(current_turf.z))
+ to_chat(user, SPAN_DANGER("\The [src] cannot be used on the ship!"))
+ return FALSE
if(is_charging)
to_chat(user, SPAN_DANGER("\The [src] is already charging!"))
return FALSE
- if(!wielded)
+ if(needs_wielding && !wielded)
to_chat(user, SPAN_DANGER("You cannot fire this weapon with just one hand!"))
return FALSE
if(can_autofire)
@@ -435,48 +439,17 @@
is_charging = FALSE
return FALSE
is_charging = FALSE
- if(user.get_active_hand() != src)
+ if(needs_wielding && user.get_active_hand() != src)
return
msg_admin_attack("[key_name_admin(user)] shot with \a [src.type] [key_name_admin(src)]'s target (JMP)")
return ..()
-/obj/item/gun/energy/vaurca/mountedthermaldrill
+/obj/item/gun/energy/vaurca/thermaldrill/mounted
name = "mounted thermal drill"
- desc = "Pierce the heavens? Son, there won't be any heavens when you're through with it."
- icon = 'icons/obj/vaurca_items.dmi'
- icon_state = "thermaldrill"
- item_state = "thermaldrill"
- has_item_ratio = FALSE
- origin_tech = list(TECH_COMBAT = 6, TECH_PHORON = 8)
- fire_sound = 'sound/magic/lightningbolt.ogg'
- slot_flags = SLOT_BACK
- w_class = ITEMSIZE_LARGE
- force = 15
- projectile_type = /obj/item/projectile/beam/thermaldrill
- max_shots = 90
- sel_mode = 1
- burst = 30
- burst_delay = 1
- fire_delay = 20
- self_recharge = 1
- recharge_time = 1
- charge_meter = 1
- use_external_power = 1
+ needs_wielding = FALSE
+ use_external_power = TRUE
charge_cost = 25
-/obj/item/gun/energy/vaurca/mountedthermaldrill/special_check(var/mob/user)
- if(is_charging)
- to_chat(user, SPAN_WARNING("\The [src] is already charging!"))
- return FALSE
- user.visible_message(SPAN_DANGER("\The [user] begins charging \the [src]!"), SPAN_DANGER("You begin charging \the [src]!"), SPAN_DANGER("You hear a low pulsing roar!"))
- is_charging = TRUE
- if(!do_after(user, 2 SECONDS))
- is_charging = FALSE
- return FALSE
- is_charging = FALSE
- msg_admin_attack("[key_name_admin(user)] shot with \a [src.type] [key_name_admin(src)]'s target (JMP)",ckey=key_name(user),ckey_target=key_name(src))
- return ..()
-
/obj/item/gun/energy/vaurca/tachyon
name = "tachyon carbine"
desc = "A Vaurcan carbine that fires a beam of concentrated faster than light particles, capable of passing through most forms of matter."
diff --git a/code/modules/projectiles/pins.dm b/code/modules/projectiles/pins.dm
index 0124d3af927..77c84be5674 100644
--- a/code/modules/projectiles/pins.dm
+++ b/code/modules/projectiles/pins.dm
@@ -229,8 +229,8 @@ Pins Below.
/obj/item/device/firing_pin/away_site
name = "away site firing pin"
- desc = "This access locked firing pin allows weapons to be fired only when the user is not on-station."
- fail_message = "USER ON STATION LEVEL."
+ desc = "This access locked firing pin allows weapons to be fired only when the user is not on-ship."
+ fail_message = "USER ON SHIP LEVEL."
/obj/item/device/firing_pin/away_site/pin_auth(mob/living/user)
var/turf/T = get_turf(src)
diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm
index d6a96280d28..3a254cc8741 100644
--- a/code/modules/projectiles/projectile/beams.dm
+++ b/code/modules/projectiles/projectile/beams.dm
@@ -364,25 +364,18 @@
/obj/item/projectile/beam/thermaldrill
name = "thermal drill"
icon_state = "gauss"
- damage = 2
+ damage = 15
no_attack_log = TRUE
muzzle_type = /obj/effect/projectile/muzzle/solar
tracer_type = /obj/effect/projectile/tracer/solar
impact_type = /obj/effect/projectile/impact/solar
-/obj/item/projectile/beam/thermaldrill/on_impact(var/atom/A)
- if(isturf(A))
- if(istype(A, /turf/simulated/mineral))
- if(prob(75)) //likely because its a mining tool
- var/turf/simulated/mineral/M = A
- if(prob(33))
- M.GetDrilled(1)
- else if(!M.emitter_blasts_taken)
- M.emitter_blasts_taken += 2
- else if(prob(66))
- M.emitter_blasts_taken += 2
- ..()
+/obj/item/projectile/beam/thermaldrill/on_impact(var/atom/hit_atom)
+ if(istype(hit_atom, /turf/simulated/mineral))
+ var/turf/simulated/mineral/mineral = hit_atom
+ mineral.GetDrilled(TRUE)
+ return ..()
diff --git a/html/changelogs/geeves-thermal_drill_buff.yml b/html/changelogs/geeves-thermal_drill_buff.yml
new file mode 100644
index 00000000000..06e377c2035
--- /dev/null
+++ b/html/changelogs/geeves-thermal_drill_buff.yml
@@ -0,0 +1,7 @@
+author: Geeves, Connorjg1
+
+delete-after: True
+
+changes:
+ - tweak: "Buffed the vaurcaesian hand-held thermal drill to fire more shots in auto mode, deal more damage, destroy mineral walls in one blast, but it can only be used on non-ship Z-levels."
+ - tweak: "Gave the vaurcaesian hand-held thermal drill a new description."