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/machinery/recharger.dm b/code/game/machinery/recharger.dm
index cf92f21046f..d29a4546ae7 100644
--- a/code/game/machinery/recharger.dm
+++ b/code/game/machinery/recharger.dm
@@ -12,7 +12,7 @@
/obj/machinery/recharger/attackby(obj/item/weapon/G, mob/user)
if(istype(user,/mob/living/silicon))
return
- if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton))
+ if(istype(G, /obj/item/weapon/gun/energy) || istype(G, /obj/item/weapon/melee/baton) || istype(G, /obj/item/weapon/pickaxe/drill))
if(charging)
return
@@ -87,6 +87,16 @@
icon_state = "recharger2"
else
icon_state = "recharger3"
+ if(istype(charging, /obj/item/weapon/pickaxe/drill))
+ var/obj/item/weapon/pickaxe/drill/D = charging
+ if(D.bcell)
+ if(D.bcell.give(D.bcell.chargerate))
+ icon_state = "recharger1"
+ use_power(200)
+ else
+ icon_state = "recharger2"
+ else
+ icon_state = "recharger3"
/obj/machinery/recharger/emp_act(severity)
diff --git a/code/game/objects/items/devices/flashlight.dm b/code/game/objects/items/devices/flashlight.dm
index 54a87565e31..14409f8c738 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..b7ab6bf02d5 100644
--- a/code/game/objects/items/robot/robot_upgrades.dm
+++ b/code/game/objects/items/robot/robot_upgrades.dm
@@ -153,6 +153,27 @@
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)
+ for(var/obj/item/weapon/shovel/S in R.module.modules)
+ qdel(S)
+ 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..1f0a51cc022 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,26 @@
throw_range = 7
attack_verb = list("HONKED")
var/spam_flag = 0
+ var/honksound = 'sound/items/bikehorn.ogg'
+ var/cooldowntime = 20
/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!
+ if(!spam_flag)
+ 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)
+ if(!spam_flag)
spam_flag = 1
- playsound(src.loc, 'sound/items/bikehorn.ogg', 50, 1)
+ playsound(src.loc, honksound, 50, 1)
src.add_fingerprint(user)
- spawn(20)
+ spawn(cooldowntime)
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/AirHorn2.ogg'
+ cooldowntime = 50
\ No newline at end of file
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..dc59f65b72c 100644
--- a/code/modules/mining/equipment_locker.dm
+++ b/code/modules/mining/equipment_locker.dm
@@ -229,24 +229,23 @@
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("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, 750),
+ new /datum/data/mining_equipment("Resonator", /obj/item/weapon/resonator, 800),
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, 1200),
+ new /datum/data/mining_equipment("Jetpack", /obj/item/weapon/tank/jetpack/carbondioxide/mining, 1500),
+ 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,14 +341,19 @@
..()
/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", "Kinetic Accelerator", "Resonator", "Mining Drone", "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("Kinetic Accelerator")
new /obj/item/weapon/gun/energy/kinetic_accelerator(src.loc)
+ new /obj/item/weapon/screwdriver(src.loc)
+ if("Resonator")
+ new /obj/item/weapon/resonator(src.loc)
+ new /obj/item/weapon/screwdriver(src.loc)
if("Mining Drone")
new /mob/living/simple_animal/hostile/mining_drone(src.loc)
new /obj/item/weapon/weldingtool/hugetank(src.loc)
@@ -378,7 +382,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,22 +472,45 @@
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 = 8
throwforce = 10
var/cooldown = 0
+ var/fieldsactive = 0
+ var/burst_time = 50
+ var/fieldlimit = 3
/obj/item/weapon/resonator/proc/CreateResonance(var/target, var/creator)
- if(cooldown <= 0)
+ if(fieldsactive < fieldlimit)
playsound(src,'sound/weapons/resonator_fire.ogg',50,1)
- new /obj/effect/resonance(get_turf(target), creator)
- cooldown = 1
- spawn(20)
- cooldown = 0
+ new /obj/effect/resonance(get_turf(target), creator, burst_time)
+ fieldsactive++
+ spawn(50)
+ fieldsactive--
/obj/item/weapon/resonator/attack_self(mob/user as mob)
CreateResonance(src, user)
..()
+/obj/item/weapon/resonator/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if(istype(W, /obj/item/weapon/screwdriver))
+ if(burst_time == 50)
+ burst_time = 30
+ user << "You set the resonator's fields to detonate after 3 seconds."
+ else
+ burst_time = 50
+ user << "You set the resonator's fields to detonate after 5 seconds."
+
+ else if(istype(W, /obj/item/stack))
+ var/obj/item/stack/S = W
+
+ if(istype(S, /obj/item/stack/sheet/mineral/diamond))
+ if(fieldlimit < 8)
+ fieldlimit++
+ user << "You upgrade [src]'s field generator with diamonds."
+ S.use(1)
+ else
+ user << "The [src.name]'s field generator is at the limit."
+
/obj/item/weapon/resonator/afterattack(atom/target, mob/user, proximity_flag)
if(proximity_flag)
if(!check_allowed_items(target, 1)) return
@@ -498,23 +525,23 @@
mouse_opacity = 0
var/resonance_damage = 20
-/obj/effect/resonance/New(loc, var/creator = null)
+/obj/effect/resonance/New(loc, var/creator = null, var/timetoburst)
var/turf/proj_turf = get_turf(src)
if(!istype(proj_turf))
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(timetoburst)
+ 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
- spawn(50)
+ resonance_damage = 50
+ spawn(timetoburst)
playsound(src,'sound/weapons/resonator_blast.ogg',50,1)
if(creator)
for(var/mob/living/L in src.loc)
@@ -788,7 +815,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..1d746d9068a 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)
+ playsound(src, pick(digsound),50,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 = 30 //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 //80 mineral walls by default
+ 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 //it's a fast drill with a relatively low power cost. what more could you ask for?
origin_tech = "materials=6;powerstorage=4;engineering=5"
desc = "Yours is the drill that will pierce the heavens!"
+ drillcost = 150 //66 mineral walls by default, but very quickly
-/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 in some cases such as wall deconstruction
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..ca2f5d206dd 100644
--- a/code/modules/mining/mine_turfs.dm
+++ b/code/modules/mining/mine_turfs.dm
@@ -391,6 +391,9 @@
var/turf/T = user.loc
if (!( istype(T, /turf) ))
return
+
+ if(!P.powered)
+ return
/*
if (istype(W, /obj/item/weapon/pickaxe/radius))
var/turf/T = user.loc
@@ -406,6 +409,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
@@ -536,46 +553,31 @@
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)
+ sleep(20)
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)))
+ if ((istype(W, /obj/item/weapon/pickaxe)))
+ var/obj/item/weapon/pickaxe/P = W
var/turf/T = user.loc
if (!( istype(T, /turf) ))
return
if (dug)
- user << "This area has already been 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)
+ sleep(P.digspeed)
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 7e9beb74f84..f5bb1b34008 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules.dm
@@ -234,27 +234,17 @@
/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)
modules += new /obj/item/weapon/gun/energy/kinetic_accelerator(src)
fix_modules()
-/obj/item/weapon/robot_module/miner/on_emag()
- ..()
- for(var/obj/item/weapon/pickaxe/jackhammer/borgdrill/D in modules)
- qdel(D)
- modules += new /obj/item/weapon/pickaxe/drill/diamonddrill(src)
- rebuild()
-
/obj/item/weapon/robot_module/syndicate
name = "syndicate robot module"
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 acb15e44f7c..0e62f7f61b7 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs.dm
@@ -397,6 +397,7 @@
name = "Goliath tentacle"
icon = 'icons/mob/animal.dmi'
icon_state = "Goliath_tentacle"
+ var/latched = 0
/obj/effect/goliath_tentacle/New()
var/turftype = get_turf(src)
@@ -423,15 +424,15 @@
/obj/effect/goliath_tentacle/proc/Trip()
for(var/mob/living/M in src.loc)
- M.Weaken(5)
- visible_message("The [src.name] knocks [M.name] down!")
- qdel(src)
-
-/obj/effect/goliath_tentacle/Crossed(AM as mob|obj)
- if(isliving(AM))
- Trip()
- return
- ..()
+ M.Stun(5)
+ M.adjustBruteLoss(rand(10,15))
+ latched = 1
+ visible_message("The [src.name] grabs hold of [M.name]!")
+ if(!latched)
+ qdel(src)
+ else
+ spawn(50)
+ qdel(src)
/mob/living/simple_animal/hostile/asteroid/goliath/Die()
var/obj/item/asteroid/goliath_hide/G = new /obj/item/asteroid/goliath_hide(src.loc)
diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm
index 8a0afbfe290..16b8d2a05d2 100644
--- a/code/modules/reagents/reagent_containers/hypospray.dm
+++ b/code/modules/reagents/reagent_containers/hypospray.dm
@@ -91,17 +91,13 @@
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
+ amount_per_transfer_from_this = 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 7a2f2dab5d7..d6eb361625b 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/////////////////
/////////////////////////////////////////
@@ -297,6 +287,16 @@ datum/design/proc/CalcReliability(var/list/temp_techs)
build_path = /obj/item/clothing/mask/gas/welding
category = list("Equipement")
+/datum/design/air_horn
+ name = "Air Horn"
+ desc = "Damn son, where'd you find this?"
+ id = "air_horn"
+ req_tech = list("materials" = 2, "engineering" = 2)
+ build_type = PROTOLATHE
+ materials = list("$metal" = 4000, "$bananium" = 1000)
+ build_path = /obj/item/weapon/bikehorn/airhorn
+ category = list("Equipement")
+
/datum/design/mesons
name = "Optical Meson Scanners"
desc = "Used by engineering and mining staff to see basic structural and terrain layouts through walls, regardless of lighting condition."
diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm
index e8e53971da7..b04f53bdff7 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"=3750)
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/html/changelogs/Paprka-miening.yml b/html/changelogs/Paprka-miening.yml
new file mode 100644
index 00000000000..ea9ac9ca75d
--- /dev/null
+++ b/html/changelogs/Paprka-miening.yml
@@ -0,0 +1,9 @@
+author: Paprka
+
+delete-after: True
+
+changes:
+ - tweak: "Goliath tentacles no longer stun you if you cross them. They will only stun you if you don't move away from them in time. They can do up to 15 damage now, in addition to stunning you."
+ - tweak: "Changed a lot of mining gear and prices. The resonator can now have up to 3 fields active at once, but the fields need to detonate before they crush rocks. Tweak the time before the fields detonate with a screwdriver and upgrade the amount of fields at once with sheets of diamond."
+ - tweak: "Overhauled straight mining tools. The sonic jackhammer is now the wall-crushing tool, the diamond drill simply mines really fast. Borgs can now get upgraded with the diamond mining tool with only a single sheet of diamond and an upgrade module, they don't need illegal tech modules."
+ - tweak: "Mining drills and the sonic jackhammer now draw power when they drill down mineral walls. They can be recharged using any type of weapon recharger or by replacing the cell using a screwdriver on them."
\ No newline at end of file
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index dbb4e8b1265..d0ed0ed12f4 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/sound/items/AirHorn2.ogg b/sound/items/AirHorn2.ogg
new file mode 100644
index 00000000000..37ee8640af9
Binary files /dev/null and b/sound/items/AirHorn2.ogg differ