From e829213938b5bfc7e1d2d1f31fee02befa6285f4 Mon Sep 17 00:00:00 2001 From: KorPhaeron Date: Mon, 28 Mar 2016 06:30:26 -0500 Subject: [PATCH] Mining Balance --- code/modules/mining/equipment_locker.dm | 26 ++++++++++++------- .../simple_animal/hostile/mining_mobs.dm | 4 +-- code/modules/projectiles/gun.dm | 14 ++++++---- .../projectiles/guns/energy/nuclear.dm | 2 +- .../projectiles/guns/energy/special.dm | 1 + code/modules/projectiles/guns/medbeam.dm | 2 +- .../projectiles/guns/projectile/saw.dm | 2 +- .../projectiles/guns/projectile/sniper.dm | 2 +- 8 files changed, 33 insertions(+), 20 deletions(-) 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"