diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm
index c0e09c0dd33..43bfc7b75d5 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -224,6 +224,10 @@
user << "There's no points left on [src]."
..()
+/obj/item/weapon/card/mining_point_card/examine()
+ ..()
+ usr << "There's [points] points on the card."
+
/**********************Jaunter**********************/
/obj/item/device/wormhole_jaunter
@@ -310,6 +314,8 @@
..()
/obj/item/weapon/resonator/afterattack(atom/target, mob/user, proximity_flag)
+ if(target in user.contents)
+ return
if(proximity_flag)
CreateResonance(target)
@@ -336,7 +342,7 @@
var/datum/gas_mixture/environment = proj_turf.return_air()
var/pressure = environment.return_pressure()
if(pressure < 50)
- name = "strong resonance"
+ name = "strong resonance field"
resonance_damage = 60
spawn(50)
playsound(src,'sound/effects/sparks4.ogg',50,1)
@@ -415,7 +421,7 @@
health += 10
user << "You repair some of the armor on [src]."
return
- if(istype(I, /obj/item/device/analyzer))
+ if(istype(I, /obj/item/device/mining_scanner))
user << "You instruct [src] to drop any collected ore."
DropOre()
return
@@ -429,6 +435,10 @@
del src
return
+/mob/living/simple_animal/hostile/mining_drone/New()
+ ..()
+ SetCollectBehavior()
+
/mob/living/simple_animal/hostile/mining_drone/attack_hand(mob/living/carbon/human/M)
if(M.a_intent == "help")
switch(search_objects)
@@ -511,11 +521,11 @@
if(istype(target, /mob/living/simple_animal))
var/mob/living/simple_animal/M = target
if(M.stat == DEAD)
+ M.faction = "lazarus"
M.revive()
if(istype(target, /mob/living/simple_animal/hostile))
var/mob/living/simple_animal/hostile/H = M
H.friends += user
- H.attack_same = 1
loaded = 0
user.visible_message("[user] injects [M] with [src], reviving it.")
playsound(src,'sound/effects/refill.ogg',50,1)
@@ -536,7 +546,7 @@
/**********************Mining Scanner**********************/
/obj/item/device/mining_scanner
desc = "A scanner that checks surrounding rock for useful minerals, it can also be used to stop gibtonite detonations."
- name = "analyzer"
+ name = "mining scanner"
icon_state = "mining"
item_state = "analyzer"
w_class = 2.0
@@ -552,8 +562,16 @@
spawn(40)
cooldown = 0
var/client/C = user.client
- for(var/turf/simulated/mineral/M in range(7, user))
+ var/list/L = list()
+ var/turf/simulated/mineral/M
+ for(M in range(7, user))
if(M.scan_state)
+ L += M
+ if(!L.len)
+ user << "[src] reports that nothing was detected nearby."
+ return
+ else
+ for(M in L)
var/turf/T = get_turf(M)
var/image/I = image('icons/turf/walls.dmi', loc = T, icon_state = M.scan_state, layer = 18)
C.images += I
diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm
index 4e201f664fe..ff88b8781f0 100644
--- a/code/modules/mining/ores_coins.dm
+++ b/code/modules/mining/ores_coins.dm
@@ -7,6 +7,16 @@
var/points = 0 //How many points this ore gets you from the ore redemption machine
var/refined_type = null //What this ore defaults to being refined into
+/obj/item/weapon/ore/attackby(obj/item/I as obj, mob/user as mob)
+ if(istype(I, /obj/item/weapon/weldingtool))
+ var/obj/item/weapon/weldingtool/W = I
+ if(W.remove_fuel(15))
+ new refined_type(get_turf(src.loc))
+ del(src)
+ else
+ user << "Not enough fuel to smelt [src]."
+ ..()
+
/obj/item/weapon/ore/uranium
name = "Uranium ore"
icon_state = "Uranium ore"
@@ -45,6 +55,15 @@
points = 10
refined_type = /obj/item/stack/sheet/mineral/plasma
+/obj/item/weapon/ore/plasma/attackby(obj/item/I as obj, mob/user as mob)
+ if(istype(I, /obj/item/weapon/weldingtool))
+ var/obj/item/weapon/weldingtool/W = I
+ if(W.welding)
+ user << "You can't hit a high enough temperature to smelt [src] properly."
+ else
+ ..()
+
+
/obj/item/weapon/ore/silver
name = "Silver ore"
icon_state = "Silver ore"
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 a3d60e5b35f..f471def57f9 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -61,15 +61,15 @@
projectilesound = 'sound/weapons/pierce.ogg'
ranged = 1
ranged_message = "stares"
- ranged_cooldown_cap = 14
+ ranged_cooldown_cap = 20
throw_message = "does nothing against the hard shell of"
vision_range = 2
speed = 3
maxHealth = 200
health = 200
harm_intent_damage = 5
- melee_damage_lower = 15
- melee_damage_upper = 15
+ melee_damage_lower = 12
+ melee_damage_upper = 12
attacktext = "bites into"
a_intent = "harm"
attack_sound = 'sound/weapons/bladeslice.ogg'
@@ -135,6 +135,7 @@
/obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron, /obj/item/weapon/ore/clown)
var/alerted = 0
var/ore_points_gained = 0
+ var/chase_time = 100
/mob/living/simple_animal/hostile/asteroid/goldgrub/GiveTarget(var/new_target)
target = new_target
@@ -167,7 +168,7 @@
/mob/living/simple_animal/hostile/asteroid/goldgrub/proc/Burrow()//Begin the chase to kill the goldgrub in time
if(!alerted)
alerted = 1
- spawn(100)
+ spawn(chase_time)
if(alerted)
visible_message("The [src.name] buries into the ground, vanishing from sight!")
del(src)
@@ -190,7 +191,7 @@
icon_dead = "Hivelord_dead"
icon_gib = "syndicate_gib"
mouse_opacity = 2
- move_to_delay = 12
+ move_to_delay = 14
ranged = 1
vision_range = 5
aggro_vision_range = 9
@@ -199,25 +200,26 @@
maxHealth = 75
health = 75
harm_intent_damage = 5
- melee_damage_lower = 2
- melee_damage_upper = 2
+ melee_damage_lower = 0
+ melee_damage_upper = 0
attacktext = "lashes out at"
throw_message = "falls right through the strange body of the"
ranged_cooldown = 0
ranged_cooldown_cap = 0
environment_smash = 0
- retreat_distance = 5
- minimum_distance = 5
+ retreat_distance = 3
+ minimum_distance = 3
pass_flags = PASSTABLE
/mob/living/simple_animal/hostile/asteroid/hivelord/OpenFire(var/the_target)
var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood(src.loc)
A.GiveTarget(target)
+ A.friends = friends
+ A.faction = faction
return
/mob/living/simple_animal/hostile/asteroid/hivelord/AttackingTarget()
OpenFire()
- ..()
/mob/living/simple_animal/hostile/asteroid/hivelordbrood
name = "hivelord brood"