diff --git a/code/datums/diseases/advance/symptoms/stimulant.dm b/code/datums/diseases/advance/symptoms/stimulant.dm index a3c16a4eaca..0f5729e9842 100644 --- a/code/datums/diseases/advance/symptoms/stimulant.dm +++ b/code/datums/diseases/advance/symptoms/stimulant.dm @@ -30,7 +30,7 @@ Bonus var/mob/living/M = A.affected_mob switch(A.stage) if(5) - if (M.reagents.get_reagent_amount("ephedrine") < 30) + if (M.reagents.get_reagent_amount("ephedrine") < 10) M.reagents.add_reagent("ephedrine", 10) else if(prob(SYMPTOM_ACTIVATION_PROB * 5)) diff --git a/code/game/asteroid.dm b/code/game/asteroid.dm index 6e9ac7205b5..994f08d87cb 100644 --- a/code/game/asteroid.dm +++ b/code/game/asteroid.dm @@ -89,7 +89,7 @@ proc/make_mining_asteroid_secret() walltypes = list(/turf/simulated/mineral/random/high_chance=1) floortypes = list(/turf/simulated/floor/plating/asteroid/airless, /turf/simulated/floor/beach/sand) treasureitems = list(/obj/mecha/working/ripley/mining=1, /obj/item/weapon/pickaxe/drill/diamonddrill=2,/obj/item/weapon/gun/energy/kinetic_accelerator=1, - /obj/item/weapon/resonator=1, /obj/item/weapon/pickaxe/jackhammer=5) + /obj/item/weapon/resonator=1, /obj/item/weapon/pickaxe/drill/jackhammer=5) fluffitems = list(/obj/effect/decal/cleanable/blood=3,/obj/effect/decal/remains/human=1,/obj/item/clothing/under/overalls=1, /obj/item/weapon/reagent_containers/food/snacks/grown/chili=1,/obj/item/weapon/tank/internals/oxygen/red=2) diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm index 38b006fbce0..454bbb5c8e8 100644 --- a/code/game/objects/items/devices/flashlight.dm +++ b/code/game/objects/items/devices/flashlight.dm @@ -259,6 +259,12 @@ obj/item/device/flashlight/lamp/bananalamp item_state = "torch" on_damage = 10 +/obj/item/device/flashlight/lantern + name = "lantern" + icon_state = "lantern" + desc = "A mining lantern." + brightness_on = 6 // luminosity when on + /obj/item/device/flashlight/slime gender = PLURAL diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 86514fd7b29..e22fa305c5d 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -153,6 +153,25 @@ R.module.rebuild() return 1 +/obj/item/borg/upgrade/ddrill + name = "mining cyborg diamond drill" + desc = "A diamond drill replacement for the mining module's standard drill." + icon_state = "cyborg_upgrade3" + require_module = 1 + +/obj/item/borg/upgrade/ddrill/action(var/mob/living/silicon/robot/R) + if(..()) return 0 + + if(!istype(R.module, /obj/item/weapon/robot_module/miner)) + R << "Upgrade mounting error! No suitable hardpoint detected!" + usr << "There's no mounting point for the module!" + return 0 + else + for(var/obj/item/weapon/pickaxe/drill/cyborg/D in R.module.modules) + qdel(D) + R.module.modules += new /obj/item/weapon/pickaxe/drill/diamonddrill(src) + R.module.rebuild() + return 1 /obj/item/borg/upgrade/syndicate/ name = "illegal equipment module" diff --git a/code/game/objects/items/weapons/clown_items.dm b/code/game/objects/items/weapons/clown_items.dm index 51872a33139..3baa458a85f 100644 --- a/code/game/objects/items/weapons/clown_items.dm +++ b/code/game/objects/items/weapons/clown_items.dm @@ -2,6 +2,7 @@ * Contains: * Soap * Bike Horns + * Air Horns */ /* @@ -82,16 +83,23 @@ throw_range = 7 attack_verb = list("HONKED") var/spam_flag = 0 + var/honksound = 'sound/items/bikehorn.ogg' /obj/item/weapon/bikehorn/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob) - playsound(loc, 'sound/items/bikehorn.ogg', 50, 1, -1) //plays instead of tap.ogg! + playsound(loc, honksound, 50, 1, -1) //plays instead of tap.ogg! return ..() /obj/item/weapon/bikehorn/attack_self(mob/user as mob) if(spam_flag == 0) spam_flag = 1 - playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1) + playsound(src.loc, honksound, 50, 1) src.add_fingerprint(user) spawn(20) spam_flag = 0 return + +/obj/item/weapon/bikehorn/airhorn + name = "air horn" + desc = "Damn son, where'd you find this?" + icon_state = "air_horn" + honksound = 'sound/items/AirHorn.ogg' diff --git a/code/game/objects/items/weapons/gift_wrappaper.dm b/code/game/objects/items/weapons/gift_wrappaper.dm index aff93a5b31e..5c0f7722a70 100644 --- a/code/game/objects/items/weapons/gift_wrappaper.dm +++ b/code/game/objects/items/weapons/gift_wrappaper.dm @@ -34,7 +34,7 @@ /obj/item/weapon/storage/backpack/holding, /obj/item/weapon/storage/belt/champion, /obj/item/weapon/soap/deluxe, - /obj/item/weapon/pickaxe/silver, + /obj/item/weapon/pickaxe/diamond, /obj/item/weapon/pen/invisible, /obj/item/weapon/lipstick/random, /obj/item/weapon/grenade/smokebomb, diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index 2a26329b210..b31555a50ff 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -138,17 +138,17 @@ new /obj/item/weapon/reagent_containers/hypospray/medipen( src ) /obj/item/weapon/storage/box/medipens/utility - name = "medipens kit" - desc = "A box with several utility medipens for the economical miner." + name = "stimpack value kit" + desc = "A box with several stimpack medipens for the economical miner." icon_state = "syringe" /obj/item/weapon/storage/box/medipens/utility/New() ..() - new /obj/item/weapon/reagent_containers/hypospray/medipen/leporazine( src ) - new /obj/item/weapon/reagent_containers/hypospray/medipen/leporazine( src ) - new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack( src ) - new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack( src ) - new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack( src ) + new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src) + new /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack(src) /obj/item/weapon/storage/box/beakers name = "box of beakers" diff --git a/code/game/objects/structures/false_walls.dm b/code/game/objects/structures/false_walls.dm index 7e25264fb9c..a0fd026a4cf 100644 --- a/code/game/objects/structures/false_walls.dm +++ b/code/game/objects/structures/false_walls.dm @@ -118,7 +118,17 @@ else user << "You can't reach, close it first!" - if(istype(W, /obj/item/weapon/pickaxe/plasmacutter) || istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill) || istype(W, /obj/item/weapon/melee/energy/blade)) + if(istype(W, /obj/item/weapon/pickaxe/plasmacutter) || istype(W, /obj/item/weapon/melee/energy/blade)) + dismantle(user) + + if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + if(!D.bcell.use(300)) + user << "Your jackhammer doesn't have enough power to break through that wall." + D.update_charge() + return + D.update_charge() + D.playDigSound() dismantle(user) /obj/structure/falsewall/proc/dismantle(mob/user) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 4768a2941a2..ce1be5ec1f6 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -39,9 +39,15 @@ new /obj/item/stack/sheet/metal(get_turf(src)) qdel(src) - else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) - user << "You drill through the girder!" + else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + if(!D.bcell.use(D.drillcost)) + D.update_charge() + return + D.update_charge() + user << "You smash through the girder!" new /obj/item/stack/sheet/metal(get_turf(src)) + D.playDigSound() qdel(src) else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced)) @@ -273,12 +279,18 @@ transfer_fingerprints_to(R) qdel(src) - else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) - user << "You drill through the girder!" - if(do_after(user, 5)) - var/obj/effect/decal/remains/human/R = new (get_turf(src)) - transfer_fingerprints_to(R) - qdel(src) + + else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + if(!D.bcell.use(D.drillcost)) + D.update_charge() + return + D.update_charge() + user << "Your jackhammer smashes through the girder!" + var/obj/effect/decal/remains/human/R = new (get_turf(src)) + transfer_fingerprints_to(R) + D.playDigSound() + qdel(src) /obj/structure/cultgirder/blob_act() if(prob(40)) diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 87b694983c7..e2334ffde6f 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -54,15 +54,18 @@ "You slice apart the [name]!") Dismantle(1) - else if(istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) - user.visible_message("[user] begins to drill apart the [name]!", \ - "You begin to drill apart the [name]!") - if(do_after(user,5)) - if(!src.loc) - return - user.visible_message("[user] destroys the [name]!", \ - "You destroy the [name]!") - qdel(src) + else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + if(!D.bcell.use(D.drillcost)) + D.update_charge() + return + D.update_charge() + if(!src.loc) + return + user.visible_message("[user] destroys the [name]!", \ + "You destroy the [name]!") + D.playDigSound() + qdel(src) else if(istype(W, /obj/item/weapon/weldingtool) && !anchored) playsound(loc, 'sound/items/Welder.ogg', 40, 1) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 96178d35462..e31c001280a 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -212,16 +212,20 @@ /turf/simulated/wall/proc/try_destroy(obj/item/weapon/W as obj, mob/user as mob, turf/T as turf) - if (istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) - user << "You begin to drill though the wall." - if(do_after(user, slicing_duration*0.6)) // diamond drill is faster than welding tool slicing - if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) - return 1 - if( user.loc == T && user.get_active_hand() == W ) - user << "Your drill tears though the last of the reinforced plating." - dismantle_wall() - visible_message("The wall was drilled through by [user]!", "You hear the grinding of metal.") - return 1 + if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + if(!D.bcell.use(400)) + D.update_charge() + user << "Your jackhammer doesn't have enough power to break through that wall." + return + D.update_charge() + if( !istype(src, /turf/simulated/wall) || !user || !W || !T ) + return 1 + if( user.loc == T && user.get_active_hand() == W ) + D.playDigSound() + dismantle_wall() + visible_message("[user] smashes through the wall with [W]!", "You hear the grinding of metal.") + return 1 else if( istype(W, /obj/item/weapon/melee/energy/blade) ) var/obj/item/weapon/melee/energy/blade/EB = W EB.spark_system.start() diff --git a/code/game/turfs/simulated/walls_reinforced.dm b/code/game/turfs/simulated/walls_reinforced.dm index d657f200d19..aeb3c507dfa 100644 --- a/code/game/turfs/simulated/walls_reinforced.dm +++ b/code/game/turfs/simulated/walls_reinforced.dm @@ -32,13 +32,22 @@ if(istype(W, /obj/item/weapon/melee/energy/blade)) user << "This wall is too thick to slice through. You will need to find a different path." return 1 - else if (istype(W, /obj/item/weapon/pickaxe/drill/diamonddrill)) - user << "You begin to drill though the wall." - if(do_after(user, 200)) + else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) + var/obj/item/weapon/pickaxe/drill/jackhammer/D = W + if(!D.powered) + return 1 + user << "You begin to smash though the reinforced wall." + if(do_after(user, 50)) if( !istype(src, /turf/simulated/wall/r_wall) || !user || !W || !T ) return 1 if( user.loc == T && user.get_active_hand() == W ) - user << "Your drill tears though the last of the reinforced plating." + if(!D.bcell.use(800)) + user << "Your jackhammer doesn't have enough power to break through that wall." + D.update_charge() + return 1 + D.update_charge() + D.playDigSound() + user << "Your jackhammer smashes though the last of the reinforced plating." dismantle_wall() return 1 else if(istype(W, /obj/item/stack/sheet/metal) && d_state) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 463ea5426d7..77e6f2ffe24 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -94,11 +94,12 @@ //Mining hardsuit /obj/item/clothing/head/helmet/space/hardsuit/mining name = "mining hardsuit helmet" - desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating for wildlife encounters." + desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating for wildlife encounters and dual floodlights." icon_state = "hardsuit0-mining" item_state = "mining_helm" item_color = "mining" armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50) + brightness_on = 7 /obj/item/clothing/suit/space/hardsuit/mining icon_state = "hardsuit-mining" diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index e610a351aa1..c9ef68af849 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -126,6 +126,7 @@ armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100) strip_delay = 130 flags = HEADCOVERSEYES | BLOCKHAIR | HEADCOVERSMOUTH | STOPSPRESSUREDMAGE | THICKMATERIAL + brightness_on = 7 /obj/item/clothing/head/helmet/space/hardsuit/ert/sec desc = "Standard issue security helmet for the ERT." diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 6f82f8176d9..ffa167b835b 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -229,24 +229,24 @@ anchored = 1.0 var/obj/item/weapon/card/id/inserted_id var/list/prize_list = list( - new /datum/data/mining_equipment("Stimpack MediPen", /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, 50), - new /datum/data/mining_equipment("Leporazine MediPen", /obj/item/weapon/reagent_containers/hypospray/medipen/leporazine, 50), - new /datum/data/mining_equipment("MediPen Bundle", /obj/item/weapon/storage/box/medipens/utility, 200), + new /datum/data/mining_equipment("Stimpack", /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack, 50), + new /datum/data/mining_equipment("Stimpack Bundle", /obj/item/weapon/storage/box/medipens/utility, 200), new /datum/data/mining_equipment("Whiskey", /obj/item/weapon/reagent_containers/food/drinks/bottle/whiskey, 100), new /datum/data/mining_equipment("Cigar", /obj/item/clothing/mask/cigarette/cigar/havana, 150), new /datum/data/mining_equipment("Soap", /obj/item/weapon/soap/nanotrasen, 200), new /datum/data/mining_equipment("Jaunter", /obj/item/device/wormhole_jaunter, 250), - new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 300), - new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 400), - new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 450), - new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone/, 500), - new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 650), - new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 650), - new /datum/data/mining_equipment("Sonic Jackhammer", /obj/item/weapon/pickaxe/jackhammer, 800), + new /datum/data/mining_equipment("Laser Pointer", /obj/item/device/laser_pointer, 300), + new /datum/data/mining_equipment("Alien Toy", /obj/item/clothing/mask/facehugger/toy, 300), + new /datum/data/mining_equipment("Air Horn", /obj/item/weapon/bikehorn/airhorn, 350), + new /datum/data/mining_equipment("Advanced Scanner", /obj/item/device/t_scanner/adv_mining_scanner, 400), + new /datum/data/mining_equipment("Mining Drone", /mob/living/simple_animal/hostile/mining_drone, 500), + new /datum/data/mining_equipment("Kinetic Accelerator", /obj/item/weapon/gun/energy/kinetic_accelerator, 500), + new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 500), new /datum/data/mining_equipment("Lazarus Injector", /obj/item/weapon/lazarus_injector, 1000), - new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack/carbondioxide/mining, 2000), - new /datum/data/mining_equipment("Space Cash", /obj/item/weapon/spacecash/c1000, 5000), - new /datum/data/mining_equipment("Point Card", /obj/item/weapon/card/mining_point_card, 500), + new /datum/data/mining_equipment("Diamond Pickaxe", /obj/item/weapon/pickaxe/diamond, 1500), + new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack/carbondioxide/mining, 1800), + new /datum/data/mining_equipment("Space Cash", /obj/item/weapon/spacecash/c1000, 2000), + new /datum/data/mining_equipment("Point Transfer Card", /obj/item/weapon/card/mining_point_card, 500), ) /datum/data/mining_equipment/ @@ -342,12 +342,15 @@ ..() /obj/machinery/mineral/equipment_vendor/proc/RedeemVoucher(obj/item/weapon/mining_voucher/voucher, mob/redeemer) - var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in list("Mining Drill", "Kinetic Accelerator", "Mining Drone", "Advanced Scanner") + var/selection = input(redeemer, "Pick your equipment", "Mining Voucher Redemption") as null|anything in list("Mining Drill", "Resonator", "Kinetic Accelerator", "Advanced Scanner") if(!selection || !Adjacent(redeemer) || voucher.gc_destroyed || voucher.loc != redeemer) return switch(selection) if("Mining Drill") new /obj/item/weapon/pickaxe/drill(src.loc) + new /obj/item/weapon/stock_parts/cell/high(src.loc) + if("Resonator") + new /obj/item/weapon/resonator(src.loc) if("Kinetic Accelerator") new /obj/item/weapon/gun/energy/kinetic_accelerator(src.loc) if("Mining Drone") @@ -378,7 +381,7 @@ /**********************Mining Point Card**********************/ /obj/item/weapon/card/mining_point_card - name = "mining point card" + name = "mining points card" desc = "A small card preloaded with mining points. Swipe your ID card over it to transfer the points, then discard." icon_state = "data" var/points = 500 @@ -468,7 +471,7 @@ 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 = 10 + force = 15 throwforce = 10 var/cooldown = 0 @@ -504,16 +507,16 @@ return if(istype(proj_turf, /turf/simulated/mineral)) var/turf/simulated/mineral/M = proj_turf - playsound(src,'sound/weapons/resonator_blast.ogg',50,1) - M.gets_drilled(creator) - spawn(5) + spawn(50) + playsound(src,'sound/weapons/resonator_blast.ogg',50,1) + M.gets_drilled(creator) qdel(src) else var/datum/gas_mixture/environment = proj_turf.return_air() var/pressure = environment.return_pressure() if(pressure < 50) name = "strong resonance field" - resonance_damage = 45 + resonance_damage = 50 spawn(50) playsound(src,'sound/weapons/resonator_blast.ogg',50,1) if(creator) @@ -788,7 +791,7 @@ /obj/item/device/t_scanner/adv_mining_scanner/scan() if(!cooldown) cooldown = 1 - spawn(80) + spawn(60) cooldown = 0 var/turf/t = get_turf(src) var/list/mobs = recursive_mob_check(t, 1,0,0) diff --git a/code/modules/mining/mine_items.dm b/code/modules/mining/mine_items.dm index 917f30a33b3..b04ec323d3c 100644 --- a/code/modules/mining/mine_items.dm +++ b/code/modules/mining/mine_items.dm @@ -31,7 +31,6 @@ new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/device/mining_scanner(src) new /obj/item/weapon/storage/bag/ore(src) - new /obj/item/device/flashlight/lantern(src) new /obj/item/weapon/shovel(src) new /obj/item/weapon/pickaxe(src) new /obj/item/clothing/glasses/meson(src) @@ -39,7 +38,6 @@ /**********************Shuttle Computer**************************/ - /obj/machinery/computer/shuttle/mining name = "Mining Shuttle Console" desc = "Used to call and send the mining shuttle." @@ -48,15 +46,7 @@ shuttleId = "mining" possible_destinations = "mining_home;mining_away" -/******************************Lantern*******************************/ - -/obj/item/device/flashlight/lantern - name = "lantern" - icon_state = "lantern" - desc = "A mining lantern." - brightness_on = 6 // luminosity when on - -/*****************************Pickaxe********************************/ +/*********************Pickaxe & Drills**************************/ /obj/item/weapon/pickaxe name = "pickaxe" @@ -64,89 +54,125 @@ icon_state = "pickaxe" flags = CONDUCT slot_flags = SLOT_BELT - force = 15.0 + force = 15 throwforce = 10.0 item_state = "pickaxe" w_class = 4.0 m_amt = 3750 //one sheet, but where can you make them? - var/digspeed = 40 //moving the delay to an item var so R&D can make improved picks. --NEO + var/digspeed = 40 var/list/digsound = list('sound/effects/picaxe1.ogg','sound/effects/picaxe2.ogg','sound/effects/picaxe3.ogg') origin_tech = "materials=1;engineering=1" attack_verb = list("hit", "pierced", "sliced", "attacked") + var/powered = 1 //used to check for drill charge when mining /obj/item/weapon/pickaxe/proc/playDigSound() playsound(src, pick(digsound),20,1) -/obj/item/weapon/pickaxe/silver - name = "silver pickaxe" - icon_state = "spickaxe" - item_state = "spickaxe" - digspeed = 30 - origin_tech = "materials=3" - desc = "This makes no metallurgic sense." +/obj/item/weapon/pickaxe/diamond + name = "diamond-tipped pickaxe" + icon_state = "dpickaxe" + item_state = "dpickaxe" + digspeed = 20 //mines twice as fast as a normal pickaxe, bought from mining vendor + origin_tech = "materials=4;engineering=3" + desc = "A pickaxe with a diamond pick head. Extremely robust at cracking rock walls and digging up dirt." /obj/item/weapon/pickaxe/drill - name = "mining drill" // Can dig sand as well! + name = "mining drill" icon_state = "handdrill" item_state = "jackhammer" - digspeed = 30 + digspeed = 25 //available from roundstart, faster than a pickaxe but needs recharging or cell replacements digsound = list('sound/weapons/drill.ogg') hitsound = 'sound/weapons/drill.ogg' origin_tech = "materials=2;powerstorage=3;engineering=2" - desc = "Yours is the drill that will pierce through the rock walls." + desc = "An electric mining drill for the especially scrawny." + var/drillcost = 125 + var/obj/item/weapon/stock_parts/cell/high/bcell = null + powered = 0 -/obj/item/weapon/pickaxe/drill/diamonddrill //When people ask about the badass leader of the mining tools, they are talking about ME! making it a child of drill to stop copypasta - name = "diamond mining drill" +/obj/item/weapon/pickaxe/drill/New() //this one starts with a cell pre-installed. + ..() + bcell = new(src) + update_charge() + return + +/obj/item/weapon/pickaxe/drill/proc/update_charge() + if(bcell && bcell.charge >= drillcost) + powered = 1 + else + powered = 0 + update_icon() + +/obj/item/weapon/pickaxe/drill/update_icon() + if(!bcell) + icon_state = "[initial(icon_state)]-nocell" + else if(bcell.charge < drillcost) + icon_state = "[initial(icon_state)]-empty" + else + icon_state = "[initial(icon_state)]" + +/obj/item/weapon/pickaxe/drill/attackby(obj/item/weapon/W, mob/user) + if(istype(W, /obj/item/weapon/stock_parts/cell)) + if(bcell) + user << "[src] already has a cell." + else + user.drop_item() + W.loc = src + bcell = W + user << "You install a cell in [src]." + update_charge() + else if(istype(W, /obj/item/weapon/screwdriver)) + if(bcell) + bcell.updateicon() + bcell.loc = get_turf(src.loc) + bcell = null + user << "You remove the cell from [src]." + update_charge() + return + ..() + return + +/obj/item/weapon/pickaxe/drill/examine(mob/user) + ..() + if(bcell) + user <<"The [src.name] is [round(bcell.percent())]% charged." + if(!bcell) + user <<"The [src.name] does not have a power source installed." + +/obj/item/weapon/pickaxe/drill/cyborg + name = "cyborg mining drill" + +/obj/item/weapon/pickaxe/drill/diamonddrill + name = "diamond-tipped mining drill" icon_state = "diamonddrill" - digspeed = 5 //Digs through walls, girders, and can dig up sand + digspeed = 10 origin_tech = "materials=6;powerstorage=4;engineering=5" desc = "Yours is the drill that will pierce the heavens!" + drillcost = 150 -/obj/item/weapon/pickaxe/jackhammer +/obj/item/weapon/pickaxe/drill/jackhammer name = "sonic jackhammer" icon_state = "jackhammer" item_state = "jackhammer" - digspeed = 15 //faster than drill, but cannot dig + digspeed = 5 //the epitome of powertools. high power consumption, extremely fast mining, laughs at puny walls origin_tech = "materials=3;powerstorage=2;engineering=2" digsound = list('sound/weapons/sonic_jackhammer.ogg') hitsound = 'sound/weapons/sonic_jackhammer.ogg' - desc = "Cracks rocks with sonic blasts, perfect for clearing large areas of rock." - -/obj/item/weapon/pickaxe/jackhammer/borgdrill // making it a parrent of jackhammer to prevent copypasta - name = "cyborg mining drill" - desc = "" - -/obj/item/weapon/pickaxe/gold - name = "golden pickaxe" - icon_state = "gpickaxe" - item_state = "gpickaxe" - digspeed = 20 - origin_tech = "materials=4" - desc = "This makes no metallurgic sense." + desc = "Cracks rocks with sonic blasts, and doubles as a demolition power tool for smashing walls.." + drillcost = 200 /obj/item/weapon/pickaxe/plasmacutter name = "plasma cutter" icon_state = "plasmacutter" item_state = "gun" - w_class = 3.0 //it is smaller than the pickaxe + w_class = 3 //it is smaller than the pickaxe damtype = "fire" - digspeed = 20 //Can slice though normal walls, all girders, or be used in reinforced wall deconstruction/ light thermite on fire + throwforce = 8 + digspeed = 30 //Mines slightly faster than a normal pickaxe, but doubles as an unlimited-ammo welding tool. digsound = list('sound/weapons/plasma_cutter.ogg') hitsound = 'sound/weapons/plasma_cutter.ogg' origin_tech = "materials=4;plasmatech=3;engineering=3" desc = "A rock cutter that uses bursts of hot plasma. You could use it to cut limbs off of xenos! Or, you know, mine stuff." -/obj/item/weapon/pickaxe/diamond - name = "diamond pickaxe" - icon_state = "dpickaxe" - item_state = "dpickaxe" - digspeed = 10 - origin_tech = "materials=6;engineering=4" - desc = "A pickaxe with a diamond pick head, this is just like minecraft." - - - - /*****************************Shovel********************************/ @@ -185,7 +211,3 @@ density = 1 icon_opened = "miningcaropen" icon_closed = "miningcar" - - - - diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index b9f0a945e3c..1bebab91a97 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -22,10 +22,10 @@ ..() switch(severity) if(3.0) - if (prob(75)) + if(prob(75)) src.gets_drilled(null, 1) if(2.0) - if (prob(90)) + if(prob(90)) src.gets_drilled(null, 1) if(1.0) src.gets_drilled(null, 1) @@ -37,22 +37,22 @@ var/turf/T if((istype(get_step(src, NORTH), /turf/simulated/floor)) || (istype(get_step(src, NORTH), /turf/space)) || (istype(get_step(src, NORTH), /turf/simulated/shuttle/floor))) T = get_step(src, NORTH) - if (T) + if(T) T.overlays += image('icons/turf/walls.dmi', "rock_side_s") if((istype(get_step(src, SOUTH), /turf/simulated/floor)) || (istype(get_step(src, SOUTH), /turf/space)) || (istype(get_step(src, SOUTH), /turf/simulated/shuttle/floor))) T = get_step(src, SOUTH) - if (T) + if(T) T.overlays += image('icons/turf/walls.dmi', "rock_side_n", layer=6) if((istype(get_step(src, EAST), /turf/simulated/floor)) || (istype(get_step(src, EAST), /turf/space)) || (istype(get_step(src, EAST), /turf/simulated/shuttle/floor))) T = get_step(src, EAST) - if (T) + if(T) T.overlays += image('icons/turf/walls.dmi', "rock_side_w", layer=6) if((istype(get_step(src, WEST), /turf/simulated/floor)) || (istype(get_step(src, WEST), /turf/space)) || (istype(get_step(src, WEST), /turf/simulated/shuttle/floor))) T = get_step(src, WEST) - if (T) + if(T) T.overlays += image('icons/turf/walls.dmi', "rock_side_e", layer=6) - if (mineralName && mineralAmt && spread && spreadChance) + if(mineralName && mineralAmt && spread && spreadChance) for(var/dir in cardinal) if(prob(spreadChance)) var/turf/T = get_step(src, dir) @@ -78,10 +78,10 @@ /turf/simulated/mineral/random/New() ..() - if (prob(mineralChance)) + if(prob(mineralChance)) var/mName = pickweight(mineralSpawnChanceList) //temp mineral name - if (mName) + if(mName) var/turf/simulated/mineral/M switch(mName) if("Uranium") @@ -383,18 +383,22 @@ /turf/simulated/mineral/attackby(var/obj/item/weapon/pickaxe/P as obj, mob/user as mob) - if (!user.IsAdvancedToolUser()) + if(!user.IsAdvancedToolUser()) usr << "You don't have the dexterity to do this!" return - if (istype(P, /obj/item/weapon/pickaxe)) + if(istype(P, /obj/item/weapon/pickaxe)) var/turf/T = user.loc - if (!( istype(T, /turf) )) + if(!( istype(T, /turf) )) return + + if(!P.powered) + return + /* - if (istype(W, /obj/item/weapon/pickaxe/radius)) + if(istype(W, /obj/item/weapon/pickaxe/radius)) var/turf/T = user.loc - if (!( istype(T, /turf) )) + if(!( istype(T, /turf) )) return */ //Watch your tabbing, microwave. --NEO @@ -406,6 +410,20 @@ P.playDigSound() if(do_after(user,P.digspeed)) + if(istype(P, /obj/item/weapon/pickaxe/drill)) + var/obj/item/weapon/pickaxe/drill/D = P + if(isrobot(user)) + var/mob/living/silicon/robot/R = user + if(R && R.cell) + if(!R.cell.use(D.drillcost)) + D.update_charge() + return + else + if(!D.bcell.use(D.drillcost)) + user << "Your drill ran out of power." + D.update_charge() + return + D.update_charge() user << "You finish cutting into the rock." gets_drilled(user) else @@ -413,22 +431,22 @@ return /turf/simulated/mineral/proc/gets_drilled() - if ((src.mineralName != "") && (src.mineralAmt > 0) && (src.mineralAmt < 11)) + if((src.mineralName != "") && (src.mineralAmt > 0) && (src.mineralAmt < 11)) var/i for (i=0;iThis area has already been dug." return user << "You start digging." playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) //FUCK YO RUSTLE I GOT'S THE DIGS SOUND HERE - sleep(40) - if ((user.loc == T && user.get_active_hand() == W)) + sleep(15) + if((user.loc == T && user.get_active_hand() == W)) user << "You dug a hole." gets_dug() return - if ((istype(W,/obj/item/weapon/pickaxe/drill))) - var/turf/T = user.loc - if (!( istype(T, /turf) )) - return - - if (dug) - user << "This area has already been dug." - return - - user << "You start digging." - playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) //FUCK YO RUSTLE I GOT'S THE DIGS SOUND HERE - - sleep(30) - if ((user.loc == T && user.get_active_hand() == W)) - user << "You dug a hole." - gets_dug() - - if ((istype(W,/obj/item/weapon/pickaxe/drill/diamonddrill)) || (istype(W,/obj/item/weapon/pickaxe/jackhammer/borgdrill))) - var/turf/T = user.loc - if (!( istype(T, /turf) )) - return - - if (dug) - user << "This area has already been dug." - return - - user << "You start digging." - playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) //FUCK YO RUSTLE I GOT'S THE DIGS SOUND HERE - - sleep(0) - if ((user.loc == T && user.get_active_hand() == W)) - user << "You dug a hole." - gets_dug() - if(istype(W,/obj/item/weapon/storage/bag/ore)) var/obj/item/weapon/storage/bag/ore/S = W if(S.collection_mode == 1) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 20fb3cb23ab..9d073d4fe8a 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -668,8 +668,6 @@ /datum/species/proc/movement_delay(var/mob/living/carbon/human/H) var/mspeed = 0 - if(H.status_flags & GOTTAGOFAST) - mspeed -= 1 var/hasjetpack = 0 if(istype(H.back, /obj/item/weapon/tank/jetpack)) @@ -703,6 +701,9 @@ mspeed += speedmod + if(H.status_flags & GOTTAGOFAST) + mspeed = 0 + return mspeed ////////////////// diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 5458b66ba5f..1c2cdff1c0c 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -219,14 +219,11 @@ /obj/item/weapon/robot_module/miner/New() ..() - var/mob/living/silicon/robot/R = loc modules += new /obj/item/borg/sight/meson(src) emag = new /obj/item/borg/stun(src) modules += new /obj/item/weapon/storage/bag/ore(src) - if(R.emagged) - modules += new /obj/item/weapon/pickaxe/drill/diamonddrill(src) - else - modules += new /obj/item/weapon/pickaxe/jackhammer/borgdrill(src) + modules += new /obj/item/weapon/pickaxe/drill/cyborg(src) + modules += new /obj/item/weapon/shovel(src) modules += new /obj/item/device/flashlight/lantern(src) modules += new /obj/item/weapon/storage/bag/sheetsnatcher/borg(src) modules += new /obj/item/device/t_scanner/adv_mining_scanner(src) @@ -235,7 +232,7 @@ /obj/item/weapon/robot_module/miner/on_emag() ..() - for(var/obj/item/weapon/pickaxe/jackhammer/borgdrill/D in modules) + for(var/obj/item/weapon/pickaxe/drill/cyborg/D in modules) qdel(D) modules += new /obj/item/weapon/pickaxe/drill/diamonddrill(src) rebuild() diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 8a0afbfe290..23a60af6e1b 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -91,17 +91,12 @@ else usr << "It is spent." -/obj/item/weapon/reagent_containers/hypospray/medipen/leporazine //basilisks - name = "leporazine medipen" - desc = "A rapid way to regulate your body's temperature in the event of a hardsuit malfunction at the cost of some shortness of breath." - icon_state = "lepopen" - list_reagents = list("leporazine" = 9, "lexorin" = 1) - /obj/item/weapon/reagent_containers/hypospray/medipen/stimpack //goliath kiting - name = "ephedrine medipen" - desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor at the cost of some shortness of breath." + name = "stimpack medipen" + desc = "A rapid way to stimulate your body's adrenaline, allowing for freer movement in restrictive armor as well as a ." icon_state = "stimpen" - list_reagents = list("ephedrine" = 9, "lexorin" = 1) + volume = 20 + list_reagents = list("ephedrine" = 10, "coffee" = 10) /obj/item/weapon/reagent_containers/hypospray/medipen/morphine name = "morphine medipen" diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index 50aaac4afb1..67bb730f7fb 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -126,16 +126,6 @@ datum/design/proc/CalcReliability(var/list/temp_techs) /////////////////Mining////////////////// ///////////////////////////////////////// -/datum/design/jackhammer - name = "Sonic Jackhammer" - desc = "Cracks rocks with sonic blasts, perfect for killing cave lizards." - id = "jackhammer" - req_tech = list("materials" = 3, "powerstorage" = 2, "engineering" = 2) - build_type = PROTOLATHE - materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500) - build_path = /obj/item/weapon/pickaxe/jackhammer - category = list("Mining Designs") - /datum/design/drill name = "Mining Drill" desc = "Yours is the drill that will pierce through the rock walls." @@ -152,32 +142,32 @@ datum/design/proc/CalcReliability(var/list/temp_techs) id = "plasmacutter" req_tech = list("materials" = 4, "plasmatech" = 3, "engineering" = 3) build_type = PROTOLATHE - materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500) + materials = list("$metal" = 5000, "$glass" = 1000, "$gold" = 500, "$plasma" = 500) reliability = 79 build_path = /obj/item/weapon/pickaxe/plasmacutter category = list("Mining Designs") -/datum/design/pick_diamond - name = "Diamond Pickaxe" - desc = "A pickaxe with a diamond pick head, this is just like minesim 2554!." - id = "pick_diamond" - req_tech = list("materials" = 6) - build_type = PROTOLATHE - materials = list("$diamond" = 3000) - build_path = /obj/item/weapon/pickaxe/diamond - category = list("Mining Designs") - /datum/design/drill_diamond - name = "Diamond Mining Drill" + name = "Diamond-Tipped Mining Drill" desc = "Yours is the drill that will pierce the heavens!" id = "drill_diamond" req_tech = list("materials" = 6, "powerstorage" = 4, "engineering" = 4) build_type = PROTOLATHE - materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed. + materials = list("$metal" = 6000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed. reliability = 79 build_path = /obj/item/weapon/pickaxe/drill/diamonddrill category = list("Mining Designs") +/datum/design/jackhammer + name = "Sonic Jackhammer" + desc = "Essentially a handheld planet-cracker. Can drill through walls with ease as well, but has high power cost for doing so." + id = "jackhammer" + req_tech = list("materials" = 6, "powerstorage" = 6, "engineering" = 5, "magnets" = 6) + build_type = PROTOLATHE + materials = list("$metal" = 8000, "$glass" = 1500, "$silver" = 2000, "$diamond" = 6000) + build_path = /obj/item/weapon/pickaxe/drill/jackhammer + category = list("Mining Designs") + ///////////////////////////////////////// //////////////Blue Space///////////////// ///////////////////////////////////////// diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index e8e53971da7..d71c753df2a 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -599,7 +599,7 @@ ///////////////////////////////////////// /datum/design/borg_upgrade_reset - name = "Cyborg Upgrade Module (Reset Module)" + name = "Cyborg Upgrade (Reset Module)" id = "borg_upgrade_reset" build_type = MECHFAB build_path = /obj/item/borg/upgrade/reset @@ -608,7 +608,7 @@ category = list("Cyborg Upgrade Modules") /datum/design/borg_upgrade_rename - name = "Cyborg Upgrade Module (Rename Module)" + name = "Cyborg Upgrade (Rename Module)" id = "borg_upgrade_rename" build_type = MECHFAB build_path = /obj/item/borg/upgrade/rename @@ -617,7 +617,7 @@ category = list("Cyborg Upgrade Modules") /datum/design/borg_upgrade_restart - name = "Cyborg Upgrade Module (Restart Module)" + name = "Cyborg Upgrade (Restart Module)" id = "borg_upgrade_restart" build_type = MECHFAB build_path = /obj/item/borg/upgrade/restart @@ -626,7 +626,7 @@ category = list("Cyborg Upgrade Modules") /datum/design/borg_upgrade_vtec - name = "Cyborg Upgrade Module (VTEC Module)" + name = "Cyborg Upgrade (VTEC Module)" id = "borg_upgrade_vtec" build_type = MECHFAB build_path = /obj/item/borg/upgrade/vtec @@ -636,7 +636,7 @@ category = list("Cyborg Upgrade Modules") /datum/design/borg_upgrade_disablercooler - name = "Cyborg Upgrade Module (Rapid Disabler Cooling Module)" + name = "Cyborg Upgrade (Rapid Disabler Cooling Module)" id = "borg_upgrade_disablercooler" build_type = MECHFAB build_path = /obj/item/borg/upgrade/disablercooler @@ -646,18 +646,28 @@ category = list("Cyborg Upgrade Modules") /datum/design/borg_upgrade_jetpack - name = "Cyborg Upgrade Module (Mining Jetpack)" + name = "Cyborg Upgrade (Mining Jetpack)" id = "borg_upgrade_jetpack" build_type = MECHFAB build_path = /obj/item/borg/upgrade/jetpack req_tech = list("engineering" = 4, "power" = 4) - materials = list("$metal"=10000,"$plasma"=12000,"$uranium" = 10000) + materials = list("$metal"=10000, "$plasma"=5000, "$uranium" = 6000) + construction_time = 120 + category = list("Cyborg Upgrade Modules") + +/datum/design/borg_upgrade_diamonddrill + name = "Cyborg Upgrade (Diamond Drill)" + id = "borg_upgrade_diamonddrill" + build_type = MECHFAB + build_path = /obj/item/borg/upgrade/ddrill + req_tech = list("engineering" = 5, "materials" = 5) + materials = list("$metal"=10000, "$diamond"=8000) construction_time = 120 category = list("Cyborg Upgrade Modules") /datum/design/borg_syndicate_module - name = "Borg Illegal Weapons Upgrade" - desc = "Allows for the construction of illegal upgrades for cyborgs" + name = "Cyborg Illegal Upgrades Module" + desc = "Allows for the construction of restricted upgrades for cyborgs" id = "borg_syndicate_module" build_type = MECHFAB req_tech = list("combat" = 4, "syndicate" = 3) diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index dbb4e8b1265..f4332bfb6c8 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ