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"