diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm
index 491f18d616a..b8422fa80e1 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -529,12 +529,13 @@
item_state = "resonator"
desc = "A handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It can also be activated without a target to create a field at the user's location, to act as a delayed time trap. It's more effective in a vacuum."
w_class = 3
- force = 8
+ force = 15
+
throwforce = 10
var/cooldown = 0
var/fieldsactive = 0
- var/burst_time = 50
- var/fieldlimit = 3
+ var/burst_time = 30
+ var/fieldlimit = 4
origin_tech = "magnets=2;combat=2"
/obj/item/weapon/resonator/upgraded
@@ -543,7 +544,7 @@
icon_state = "resonator_u"
item_state = "resonator_u"
origin_tech = "magnets=3;combat=3"
- fieldlimit = 5
+ fieldlimit = 6
/obj/item/weapon/resonator/proc/CreateResonance(target, creator)
var/turf/T = get_turf(target)
@@ -593,7 +594,7 @@
var/pressure = environment.return_pressure()
if(pressure < 50)
name = "strong resonance field"
- resonance_damage = 50
+ resonance_damage = 60
spawn(timetoburst)
playsound(src,'sound/weapons/resonator_blast.ogg',50,1)
if(creator)
@@ -645,6 +646,7 @@
melee_damage_lower = 15
melee_damage_upper = 15
environment_smash = 0
+ check_friendly_fire = 1
attacktext = "drills"
attack_sound = 'sound/weapons/circsawhit.ogg'
ranged = 1
@@ -810,7 +812,7 @@
/obj/item/device/mining_scanner
desc = "A scanner that checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Requires you to wear mesons to function properly."
- name = "mining scanner"
+ name = "manual mining scanner"
icon_state = "mining1"
item_state = "analyzer"
w_class = 2
@@ -841,16 +843,22 @@
qdel(src)
/obj/item/device/t_scanner/adv_mining_scanner
- desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Requires you to wear mesons to function properly."
- name = "advanced mining scanner"
+ desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Requires you to wear mesons to function properly. This one has an extended range."
+ name = "advanced automatic mining scanner"
icon_state = "mining0"
item_state = "analyzer"
w_class = 2
flags = CONDUCT
slot_flags = SLOT_BELT
var/cooldown = 0
+ var/range = 7
origin_tech = "engineering=3;magnets=3"
+/obj/item/device/t_scanner/adv_mining_scanner/lesser
+ name = "automatic mining scanner"
+ desc = "A scanner that automatically checks surrounding rock for useful minerals; it can also be used to stop gibtonite detonations. Requires you to wear mesons to function properly."
+ range = 4
+
/obj/item/device/t_scanner/adv_mining_scanner/scan()
if(!cooldown)
cooldown = 1
@@ -860,7 +868,7 @@
var/list/mobs = recursive_mob_check(t, 1,0,0)
if(!mobs.len)
return
- mineral_scan_pulse(mobs, t)
+ mineral_scan_pulse(mobs, t, range)
/proc/mineral_scan_pulse(list/mobs, turf/T, range = world.view)
var/list/minerals = list()
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
index 56f4ccee605..ce8967828fa 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -455,8 +455,8 @@
if(istype(target, /obj/item/clothing/suit/space/hardsuit/mining) || istype(target, /obj/item/clothing/head/helmet/space/hardsuit/mining))
var/obj/item/clothing/C = target
var/list/current_armor = C.armor
- if(current_armor.["melee"] < 80)
- current_armor.["melee"] = min(current_armor.["melee"] + 10, 80)
+ if(current_armor.["melee"] < 50)
+ current_armor.["melee"] = min(current_armor.["melee"] + 10, 50)
user << "You strengthen [target], improving its resistance against melee attacks."
qdel(src)
else
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index 0070be79669..f959070c1bf 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -2,6 +2,10 @@
#define SAWN_OFF 1
#define SAWN_SAWING -1
+ #define WEAPON_LIGHT 1
+ #define WEAPON_MEDIUM 2
+ #define WEAPON_HEAVY 3
+
/obj/item/weapon/gun
name = "gun"
desc = "It's a gun. It's pretty terrible, though."
@@ -33,7 +37,7 @@
var/burst_size = 1 //how large a burst is
var/fire_delay = 0 //rate of fire for burst firing and semi auto
var/semicd = 0 //cooldown handler
- var/heavy_weapon = 0
+ var/weapon_weight = WEAPON_LIGHT
var/unique_rename = 0 //allows renaming with a pen
var/unique_reskin = 0 //allows one-time reskinning
@@ -119,7 +123,7 @@
else
user.visible_message("[user] fires [src]!", "You fire [src]!", "You hear a [istype(src, /obj/item/weapon/gun/energy) ? "laser blast" : "gunshot"]!")
- if(heavy_weapon)
+ if(weapon_weight == WEAPON_MEDIUM)
if(user.get_inactive_hand())
if(prob(15))
if(user.drop_item())
@@ -164,7 +168,8 @@
user.drop_item()
return
-
+ if(weapon_weight == WEAPON_HEAVY && user.get_inactive_hand())
+ user << "You need both hands free to fire \the [src]!"
process_fire(target,user,1,params)
@@ -177,7 +182,6 @@
return 1
-
/obj/item/weapon/gun/proc/handle_pins(mob/living/user)
if(pin)
if(pin.pin_auth(user) || pin.emagged)
@@ -198,7 +202,7 @@ obj/item/weapon/gun/proc/newshot()
if(semicd)
return
- if(heavy_weapon)
+ if(weapon_weight)
if(user.get_inactive_hand())
recoil = 4 //one-handed kick
else
diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm
index e1eae1a20f8..c1b102f08a5 100644
--- a/code/modules/projectiles/guns/energy/nuclear.dm
+++ b/code/modules/projectiles/guns/energy/nuclear.dm
@@ -36,7 +36,7 @@
slot_flags = null
w_class = 5
ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser)
- heavy_weapon = 1
+ weapon_weight = WEAPON_MEDIUM
can_flashlight = 0
trigger_guard = TRIGGER_GUARD_NONE
ammo_x_offset = 2
diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm
index 2c3c7e417a6..180cea97a22 100644
--- a/code/modules/projectiles/guns/energy/special.dm
+++ b/code/modules/projectiles/guns/energy/special.dm
@@ -93,6 +93,7 @@
needs_permit = 0 // Aparently these are safe to carry? I'm sure Golliaths would disagree.
var/overheat_time = 16
unique_rename = 1
+ weapon_weight = WEAPON_HEAVY
origin_tech = "combat=2;powerstorage=1"
/obj/item/weapon/gun/energy/kinetic_accelerator/super
diff --git a/code/modules/projectiles/guns/medbeam.dm b/code/modules/projectiles/guns/medbeam.dm
index 25c641108d3..419e9fdcb25 100644
--- a/code/modules/projectiles/guns/medbeam.dm
+++ b/code/modules/projectiles/guns/medbeam.dm
@@ -14,7 +14,7 @@
var/datum/beam/current_beam = null
var/mounted = 0 //Denotes if this is a handheld or mounted version
- heavy_weapon = 1
+ weapon_weight = WEAPON_MEDIUM
/obj/item/weapon/gun/medbeam/New()
..()
diff --git a/code/modules/projectiles/guns/projectile/saw.dm b/code/modules/projectiles/guns/projectile/saw.dm
index d7c77413341..941b891c208 100644
--- a/code/modules/projectiles/guns/projectile/saw.dm
+++ b/code/modules/projectiles/guns/projectile/saw.dm
@@ -7,7 +7,7 @@
slot_flags = 0
origin_tech = "combat=5;materials=1;syndicate=2"
mag_type = /obj/item/ammo_box/magazine/mm556x45
- heavy_weapon = 1
+ weapon_weight = WEAPON_MEDIUM
fire_sound = 'sound/weapons/Gunshot_smg.ogg'
var/cover_open = 0
can_suppress = 0
diff --git a/code/modules/projectiles/guns/projectile/sniper.dm b/code/modules/projectiles/guns/projectile/sniper.dm
index fe91327295f..30fce1f3b33 100644
--- a/code/modules/projectiles/guns/projectile/sniper.dm
+++ b/code/modules/projectiles/guns/projectile/sniper.dm
@@ -5,7 +5,7 @@
icon_state = "sniper"
item_state = "sniper"
recoil = 2
- heavy_weapon = 1
+ weapon_weight = WEAPON_MEDIUM
mag_type = /obj/item/ammo_box/magazine/sniper_rounds
fire_delay = 40
origin_tech = "combat=8"