diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index d8a3a15db92..54b5db3418e 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -440,14 +440,23 @@ )) -/obj/item/storage/belt/mining/vendor - contents = newlist(/obj/item/survivalcapsule) +/obj/item/storage/belt/mining/vendor/PopulateContents() + new /obj/item/survivalcapsule(src) /obj/item/storage/belt/mining/alt icon_state = "explorer2" inhand_icon_state = "explorer2" worn_icon_state = "explorer2" +/obj/item/storage/belt/mining/healing/PopulateContents() + for(var/i in 1 to 2) + new /obj/item/reagent_containers/hypospray/medipen/survival/luxury(src) + for(var/i in 1 to 2) + new /obj/item/reagent_containers/hypospray/medipen/survival(src) + for(var/i in 1 to 2) + var/obj/item/organ/internal/monster_core/core = new /obj/item/organ/internal/monster_core/regenerative_core/legion(src) + core.preserve() + /obj/item/storage/belt/mining/primitive name = "hunter's belt" desc = "A versatile belt, woven from sinew." diff --git a/code/game/objects/items/storage/boxes/job_boxes.dm b/code/game/objects/items/storage/boxes/job_boxes.dm index 3adf6a6b1c6..7296aab3d6d 100644 --- a/code/game/objects/items/storage/boxes/job_boxes.dm +++ b/code/game/objects/items/storage/boxes/job_boxes.dm @@ -259,6 +259,31 @@ var/plush_path = /obj/effect/spawner/random/entertainment/plushie new plush_path(src) +/obj/item/storage/box/survival/mining/bonus + mask_type = null + internal_type = /obj/item/tank/internals/emergency_oxygen/double + +/obj/item/storage/box/survival/mining/bonus/PopulateContents() + ..() + new /obj/item/gps/mining(src) + new /obj/item/t_scanner/adv_mining_scanner(src) + +/obj/item/storage/box/miner_modkits + name = "miner modkit/trophy box" + desc = "Contains every modkit and trophy in the game." + +/obj/item/storage/box/miner_modkits/Initialize(mapload) + . = ..() + atom_storage.set_holdable(list(/obj/item/borg/upgrade/modkit, /obj/item/crusher_trophy)) + atom_storage.numerical_stacking = TRUE + +/obj/item/storage/box/miner_modkits/PopulateContents() + for(var/trophy in subtypesof(/obj/item/crusher_trophy)) + new trophy(src) + for(var/modkit in subtypesof(/obj/item/borg/upgrade/modkit)) + for(var/i in 1 to 10) //minimum cost ucrrently is 20, and 2 pkas, so lets go with that + new modkit(src) + /obj/item/storage/box/skillchips name = "box of skillchips" desc = "Contains one copy of every skillchip" diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index b1bec010151..d738cfca4c4 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -72,6 +72,11 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE glass_colour_type = /datum/client_colour/glass_colour/green +/obj/item/clothing/glasses/hud/health/night/meson + name = "night vision meson health scanner HUD" + desc = "Truly combat ready." + vision_flags = SEE_TURFS + /obj/item/clothing/glasses/hud/health/night/science name = "night vision medical science scanner HUD" desc = "An clandestine medical science heads-up display that allows operatives to find \ diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm index 1f5c18e715c..4c76521f719 100644 --- a/code/modules/jobs/job_types/shaft_miner.dm +++ b/code/modules/jobs/job_types/shaft_miner.dm @@ -41,7 +41,7 @@ /obj/item/knife/combat/survival = 1, /obj/item/mining_voucher = 1, /obj/item/suit_voucher = 1, - /obj/item/stack/marker_beacon/ten = 1 + /obj/item/stack/marker_beacon/ten = 1, ) //SKYRAT EDIT: Suit_Voucher is an addition, one line up belt = /obj/item/modular_computer/pda/shaftminer ears = /obj/item/radio/headset/headset_cargo/mining @@ -69,21 +69,57 @@ /obj/item/mining_voucher = 1, /obj/item/stack/marker_beacon/ten = 1, /obj/item/t_scanner/adv_mining_scanner/lesser = 1, - ) + ) glasses = /obj/item/clothing/glasses/meson mask = /obj/item/clothing/mask/gas/explorer internals_slot = ITEM_SLOT_SUITSTORE -/datum/outfit/job/miner/equipped/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) +/datum/outfit/job/miner/equipped/post_equip(mob/living/carbon/human/miner, visualsOnly = FALSE) ..() if(visualsOnly) return - if(istype(H.wear_suit, /obj/item/clothing/suit/hooded)) - var/obj/item/clothing/suit/hooded/S = H.wear_suit - S.ToggleHood() + if(istype(miner.wear_suit, /obj/item/clothing/suit/hooded)) + var/obj/item/clothing/suit/hooded/explorer_suit = miner.wear_suit + explorer_suit.ToggleHood() /datum/outfit/job/miner/equipped/mod name = "Shaft Miner (Equipment + MODsuit)" back = /obj/item/mod/control/pre_equipped/mining suit = null mask = /obj/item/clothing/mask/gas/explorer + +/datum/outfit/job/miner/equipped/combat + name = "Shaft Miner (Combat-Ready)" + glasses = /obj/item/clothing/glasses/hud/health/night/meson + gloves = /obj/item/clothing/gloves/bracer + accessory = /obj/item/clothing/accessory/talisman + backpack_contents = list( + /obj/item/storage/box/miner_modkits = 1, + /obj/item/gun/energy/recharge/kinetic_accelerator = 2, + /obj/item/kinetic_crusher/compact = 1, + /obj/item/resonator/upgraded = 1, + ) + box = /obj/item/storage/box/survival/mining/bonus + l_pocket = /obj/item/modular_computer/pda/shaftminer + r_pocket = /obj/item/extinguisher/mini + belt = /obj/item/storage/belt/mining/healing + +/datum/outfit/job/miner/equipped/combat/post_equip(mob/living/carbon/human/miner, visualsOnly = FALSE) + . = ..() + if(visualsOnly) + return + var/list/miner_contents = miner.get_all_contents() + var/obj/item/clothing/suit/hooded/explorer/explorer_suit = locate() in miner_contents + if(explorer_suit) + for(var/i in 1 to 3) + var/obj/item/stack/sheet/animalhide/goliath_hide/plating = new() + explorer_suit.attackby(plating) + for(var/i in 1 to 3) + var/obj/item/stack/sheet/animalhide/goliath_hide/plating = new() + explorer_suit.hood.attackby(plating) + for(var/obj/item/gun/energy/recharge/kinetic_accelerator/accelerator in miner_contents) + var/obj/item/knife/combat/survival/knife = new(accelerator) + accelerator.bayonet = knife + var/obj/item/flashlight/seclite/flashlight = new() + var/datum/component/seclite_attachable/light_component = accelerator.GetComponent(/datum/component/seclite_attachable) + light_component.add_light(flashlight) diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index 325c05f3912..aeb16f097f7 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -169,6 +169,10 @@ if(light_on) . += "[icon_state]_lit" +/obj/item/kinetic_crusher/compact //for admins + name = "compact kinetic crusher" + w_class = WEIGHT_CLASS_NORMAL + //destablizing force /obj/projectile/destabilizer name = "destabilizing force"