mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-07-11 15:15:32 +01:00
* map stuff first get this out of my changes * Update vorestation.dme * rest of it * Better Bags * Update ore_bag.dm * Gets rid of bag override * edits * Less Jank * aaa * this doesnt work * LOL WHY * The future is NOW old man * bye bye * no hard refs~ * Update dog_sleeper.dm * Update dog_sleeper.dm
This commit is contained in:
@@ -402,13 +402,6 @@ GLOBAL_LIST_EMPTY(mining_overlay_cache)
|
||||
to_chat(user, span_notice("You dug a hole."))
|
||||
GetDrilled()
|
||||
|
||||
else if(istype(W,/obj/item/storage/bag/ore))
|
||||
var/obj/item/storage/bag/ore/S = W
|
||||
if(S.collection_mode)
|
||||
for(var/obj/item/ore/O in contents)
|
||||
O.attackby(W,user)
|
||||
return
|
||||
|
||||
else if(istype(W,/obj/item/storage/bag/fossils))
|
||||
var/obj/item/storage/bag/fossils/S = W
|
||||
if(S.collection_mode)
|
||||
@@ -497,7 +490,7 @@ GLOBAL_LIST_EMPTY(mining_overlay_cache)
|
||||
next_rock += S.excavation_amount
|
||||
while(next_rock > 50)
|
||||
next_rock -= 50
|
||||
var/obj/item/ore/O = new(src)
|
||||
var/obj/item/ore/archeology_debris/O = new(src)
|
||||
geologic_data.UpdateNearbyArtifactInfo(src)
|
||||
O.geologic_data = geologic_data
|
||||
|
||||
@@ -547,7 +540,7 @@ GLOBAL_LIST_EMPTY(mining_overlay_cache)
|
||||
next_rock += P.excavation_amount
|
||||
while(next_rock > 50)
|
||||
next_rock -= 50
|
||||
var/obj/item/ore/O = new(src)
|
||||
var/obj/item/ore/archeology_debris/O = new(src)
|
||||
geologic_data.UpdateNearbyArtifactInfo(src)
|
||||
O.geologic_data = geologic_data
|
||||
return
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
var/datum/geosample/geologic_data
|
||||
var/material
|
||||
|
||||
/obj/item/ore/archeology_debris
|
||||
name = "rocky debris"
|
||||
desc = "Leftover rocky debris from digging."
|
||||
|
||||
/obj/item/ore/uranium
|
||||
name = "pitchblende"
|
||||
icon_state = "ore_uranium"
|
||||
|
||||
@@ -33,16 +33,20 @@
|
||||
. = ..()
|
||||
AddElement(/datum/element/climbable)
|
||||
|
||||
/obj/structure/ore_box/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if (istype(W, /obj/item/ore))
|
||||
/obj/structure/ore_box/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/ore))
|
||||
var/obj/item/ore/ore = W
|
||||
stored_ore[ore.material]++
|
||||
user.remove_from_mob(W)
|
||||
qdel(ore)
|
||||
return
|
||||
|
||||
else if (istype(W, /obj/item/storage/bag/ore))
|
||||
var/obj/item/storage/bag/ore/S = W
|
||||
S.hide_from(user)
|
||||
if(istype(W, /obj/item/dogborg/sleeper/compactor/supply))
|
||||
var/obj/item/dogborg/sleeper/compactor/supply/borg_sleeper = W
|
||||
W = borg_sleeper.ore_bag
|
||||
|
||||
if(istype(W, /obj/item/ore_bag))
|
||||
var/obj/item/ore_bag/S = W
|
||||
for(var/ore in S.stored_ore)
|
||||
if(S.stored_ore[ore] > 0)
|
||||
var/ore_amount = S.stored_ore[ore] // How many ores does the satchel have?
|
||||
@@ -50,6 +54,7 @@
|
||||
S.stored_ore[ore] = 0 // Set the value of the ore in the satchel to 0.
|
||||
S.current_capacity = 0 // Set the amount of ore in the satchel to 0.
|
||||
to_chat(user, span_notice("You empty the satchel into the box."))
|
||||
return
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
EQUIPMENT("Jump Boots", /obj/item/clothing/shoes/bhop, 2500),
|
||||
EQUIPMENT("Mini-Translocator", /obj/item/perfect_tele/one_beacon, 1200),
|
||||
EQUIPMENT("Survival Equipment - Insulated Poncho", /obj/random/thermalponcho, 750),
|
||||
EQUIPMENT("Mining Satchel of Holding", /obj/item/storage/bag/ore/holding, 1500),
|
||||
EQUIPMENT("Mining Satchel of Holding", /obj/item/ore_bag/holding, 1500),
|
||||
EQUIPMENT("Industrial Equipment - Sheet-Snatcher", /obj/item/storage/bag/sheetsnatcher, 500),
|
||||
EQUIPMENT("Sheet Snatcher of Holding", /obj/item/storage/bag/sheetsnatcher/holding, 1000),
|
||||
EQUIPMENT("Advanced Ore Scanner", /obj/item/mining_scanner/advanced, 500),
|
||||
|
||||
@@ -43,8 +43,7 @@
|
||||
var/medsensor = TRUE //Does belly sprite come with patient ok/dead light?
|
||||
var/obj/item/healthanalyzer/med_analyzer = null
|
||||
var/ore_storage = FALSE
|
||||
var/max_ore_storage = 500
|
||||
var/current_capacity = 0
|
||||
var/obj/item/ore_bag/sleeper/ore_bag //Used by supply compactor
|
||||
flags = NOBLUDGEON
|
||||
|
||||
/obj/item/dogborg/sleeper/Initialize(mapload)
|
||||
@@ -58,11 +57,17 @@
|
||||
config_flags = EXPERIMENT_CONFIG_ALWAYS_ACTIVE|EXPERIMENT_CONFIG_SILENT_FAIL,\
|
||||
experiment_signals = destructive_signals, \
|
||||
)
|
||||
if(ore_storage)
|
||||
ore_bag = new(null) //We don't need it inside, just need a reference to it.
|
||||
. = ..()
|
||||
med_analyzer = new /obj/item/healthanalyzer
|
||||
|
||||
/obj/item/dogborg/sleeper/Destroy()
|
||||
go_out()
|
||||
if(ore_bag)
|
||||
QDEL_NULL(ore_bag)
|
||||
if(med_analyzer)
|
||||
QDEL_NULL(med_analyzer)
|
||||
. = ..()
|
||||
|
||||
/obj/item/dogborg/sleeper/Exit(atom/movable/O)
|
||||
@@ -75,11 +80,11 @@
|
||||
var/datum/gas_mixture/belly_air/air = new(1000)
|
||||
return air
|
||||
|
||||
/obj/item/dogborg/sleeper/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity)
|
||||
/obj/item/dogborg/sleeper/afterattack(var/atom/movable/target, mob/living/silicon/user, proximity_flag, click_parameters)
|
||||
hound = loc
|
||||
if(!istype(target))
|
||||
return
|
||||
if(!proximity)
|
||||
if(!proximity_flag)
|
||||
return
|
||||
if(target.anchored)
|
||||
return
|
||||
@@ -156,7 +161,7 @@
|
||||
return
|
||||
user.visible_message(span_warning("[hound.name] is ingesting [H.name] into their [src.name]."), span_notice("You start ingesting [H] into your [src]..."))
|
||||
if(!patient && !H.buckled && do_after (user, 50, H))
|
||||
if(!proximity)
|
||||
if(!proximity_flag)
|
||||
return //If they moved away, you can't eat them.
|
||||
if(patient)
|
||||
return //If you try to eat two people at once, you can only eat one.
|
||||
@@ -291,6 +296,11 @@
|
||||
)
|
||||
|
||||
var/datum/component/experiment_handler/handler = get_experiment_handler()
|
||||
var/current_capacity = 0
|
||||
var/max_ore_storage = 0
|
||||
if(ore_storage)
|
||||
current_capacity = ore_bag.current_capacity
|
||||
max_ore_storage = ore_bag.max_storage_space
|
||||
var/list/data = list(
|
||||
"our_patient" = patient_data,
|
||||
"eject_port" = eject_port,
|
||||
|
||||
@@ -50,49 +50,26 @@
|
||||
injection_chems = list(REAGENT_ID_GLUCOSE,REAGENT_ID_INAPROVALINE,REAGENT_ID_TRICORDRAZINE)
|
||||
max_item_count = 20
|
||||
ore_storage = TRUE
|
||||
var/list/stored_ore = list(
|
||||
ORE_SAND = 0,
|
||||
ORE_HEMATITE = 0,
|
||||
ORE_CARBON = 0,
|
||||
ORE_COPPER = 0,
|
||||
ORE_TIN = 0,
|
||||
ORE_VOPAL = 0,
|
||||
ORE_PAINITE = 0,
|
||||
ORE_QUARTZ = 0,
|
||||
ORE_BAUXITE = 0,
|
||||
ORE_PHORON = 0,
|
||||
ORE_SILVER = 0,
|
||||
ORE_GOLD = 0,
|
||||
ORE_MARBLE = 0,
|
||||
ORE_URANIUM = 0,
|
||||
ORE_DIAMOND = 0,
|
||||
ORE_PLATINUM = 0,
|
||||
ORE_LEAD = 0,
|
||||
ORE_MHYDROGEN = 0,
|
||||
ORE_VERDANTIUM = 0,
|
||||
ORE_RUTILE = 0)
|
||||
medsensor = FALSE
|
||||
|
||||
/obj/item/dogborg/sleeper/compactor/supply/Entered(atom/movable/thing, atom/OldLoc)
|
||||
. = ..()
|
||||
if(istype(thing, /obj/item/ore))
|
||||
var/obj/item/ore/ore = thing
|
||||
stored_ore[ore.material]++
|
||||
current_capacity++
|
||||
qdel(ore)
|
||||
|
||||
/obj/structure/ore_box/attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(istype(W, /obj/item/dogborg/sleeper/compactor/supply))
|
||||
var/obj/item/dogborg/sleeper/compactor/supply/S = W
|
||||
for(var/ore in S.stored_ore)
|
||||
if(S.stored_ore[ore] > 0)
|
||||
var/ore_amount = S.stored_ore[ore] // How many ores does the satchel have?
|
||||
stored_ore[ore] += ore_amount // Add the ore to the machine.
|
||||
S.stored_ore[ore] = 0 // Set the value of the ore in the satchel to 0.
|
||||
S.current_capacity = 0 // Set the amount of ore in the satchel to 0.
|
||||
to_chat(user, span_notice("You empty the satchel into the box."))
|
||||
/obj/item/dogborg/sleeper/compactor/supply/afterattack(atom/movable/target, mob/living/silicon/user, proximity_flag, click_parameters)
|
||||
if(!proximity_flag)
|
||||
return
|
||||
..()
|
||||
|
||||
if(isturf(target))
|
||||
if(ore_bag.gather_all(target, user, TRUE))
|
||||
user.visible_message(span_warning("[hound.name]'s [src.name] groans lightly as ore slips inside."), span_notice("Your [src.name] groans lightly as ore slips inside."))
|
||||
playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises)
|
||||
return
|
||||
if(istype(target, /obj/item/ore) && !istype(target, /obj/item/ore/slag) && !istype(target, /obj/item/ore/archeology_debris))
|
||||
var/turf_check = isturf(target.loc) //get_turf intentionally not used here due to clicking ore in a backpack or other weirdness.
|
||||
if(turf_check)
|
||||
if(ore_bag.gather_all(target.loc, user, TRUE))
|
||||
user.visible_message(span_warning("[hound.name]'s [src.name] groans lightly as ore slips inside."), span_notice("Your [src.name] groans lightly as ore slips inside."))
|
||||
playsound(src, gulpsound, vol = 60, vary = 1, falloff = 0.1, preference = /datum/preference/toggle/eating_noises)
|
||||
return
|
||||
. = ..()
|
||||
|
||||
|
||||
/obj/item/dogborg/sleeper/compactor/brewer
|
||||
name = "Brew Belly"
|
||||
|
||||
@@ -378,6 +378,13 @@
|
||||
if(tracker.tracking)
|
||||
tracker.tracking = FALSE
|
||||
tracker.toggle_tracking()
|
||||
if(istype(O, /obj/item/dogborg/sleeper)) //gross
|
||||
var/obj/item/dogborg/sleeper/our_compactor = O
|
||||
if(our_compactor.ore_storage)
|
||||
if(O in get_all_held_items())
|
||||
our_compactor.ore_bag.equipped(src)
|
||||
else
|
||||
our_compactor.ore_bag.dropped(src)
|
||||
if(sight_mode & BORGANOMALOUS)
|
||||
var/obj/item/dogborg/pounce/pounce = has_upgrade_module(/obj/item/dogborg/pounce)
|
||||
if(pounce)
|
||||
|
||||
@@ -744,7 +744,6 @@
|
||||
src.modules += new /obj/item/borg/sight/material(src)
|
||||
src.modules += new /obj/item/tool/wrench/cyborg(src)
|
||||
src.modules += new /obj/item/tool/screwdriver/cyborg(src)
|
||||
src.modules += new /obj/item/storage/bag/ore(src)
|
||||
src.modules += new /obj/item/pickaxe/borgdrill(src)
|
||||
src.modules += new /obj/item/storage/bag/sheetsnatcher/borg(src)
|
||||
src.modules += new /obj/item/gripper/miner(src)
|
||||
@@ -933,7 +932,7 @@
|
||||
..()
|
||||
src.modules += new /obj/item/borg/sight/material(src)
|
||||
src.modules += new /obj/item/pickaxe/borgdrill(src)
|
||||
src.modules += new /obj/item/storage/bag/ore(src)
|
||||
src.modules += new /obj/item/ore_bag(src)
|
||||
src.modules += new /obj/item/storage/bag/sheetsnatcher/borg(src)
|
||||
src.emag += new /obj/item/pickaxe/diamonddrill(src)
|
||||
|
||||
|
||||
@@ -46,19 +46,6 @@
|
||||
if(!module)
|
||||
return
|
||||
|
||||
//Borgs and drones can use their mining bags ~automagically~ if they're deployed in a slot. Only mining bags, as they're optimized for mass use.
|
||||
if(istype(module_state_1, /obj/item/storage/bag/ore) || istype(module_state_2, /obj/item/storage/bag/ore) || istype(module_state_3, /obj/item/storage/bag/ore))
|
||||
var/obj/item/storage/bag/ore/B = null
|
||||
if(istype(module_state_1, /obj/item/storage/bag/ore)) //First orebag has priority, if they for some reason have multiple.
|
||||
B = module_state_1
|
||||
else if(istype(module_state_2, /obj/item/storage/bag/ore))
|
||||
B = module_state_2
|
||||
else if(istype(module_state_3, /obj/item/storage/bag/ore))
|
||||
B = module_state_3
|
||||
var/turf/tile = loc
|
||||
if(isturf(tile))
|
||||
B.gather_all(tile, src, 1) //Shhh, unless the bag fills, don't spam the borg's chat with stuff that's going on every time they move!
|
||||
|
||||
if(scrubbing && isturf(loc))
|
||||
var/turf/tile = loc
|
||||
tile.wash(CLEAN_SCRUB)
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
|
||||
var/datum/effect/effect/system/ion_trail_follow/ion_trail = null
|
||||
var/obj/item/shield_projector/shields = null
|
||||
var/obj/item/storage/bag/ore/my_storage = null
|
||||
var/obj/item/ore_bag/my_storage = null
|
||||
|
||||
var/last_search = 0
|
||||
var/search_cooldown = 5 SECONDS
|
||||
@@ -74,7 +74,7 @@
|
||||
ion_trail.set_up(src)
|
||||
ion_trail.start()
|
||||
|
||||
my_storage = new /obj/item/storage/bag/ore(src)
|
||||
my_storage = new /obj/item/ore_bag(src)
|
||||
shields = new /obj/item/shield_projector/rectangle/automatic/drone(src)
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -123,7 +123,7 @@
|
||||
var/turf/simulated/mineral/M = T
|
||||
M.GetDrilled(TRUE)
|
||||
if(firer)
|
||||
var/obj/item/storage/bag/ore/orebag = locate(/obj/item/storage/bag/ore) in firer
|
||||
var/obj/item/ore_bag/orebag = locate(/obj/item/ore_bag) in firer
|
||||
if(orebag)
|
||||
for(var/turf/T in RANGE_TURFS(2, target_turf))
|
||||
orebag.gather_all(T, firer, TRUE)
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
// req_tech = list(TECH_BLUESPACE = 2, TECH_MATERIAL = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GOLD = 1000, MAT_DIAMOND = 500, MAT_URANIUM = 250) // Less expensive since it can only hold ores
|
||||
build_path = /obj/item/storage/bag/ore/holding
|
||||
build_path = /obj/item/ore_bag/holding
|
||||
category = list(
|
||||
RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_BLUESPACE
|
||||
)
|
||||
|
||||
@@ -121,8 +121,8 @@
|
||||
var/turf/simulated/mineral/T = item_to_sample
|
||||
T.geologic_data.UpdateNearbyArtifactInfo(T)
|
||||
geo_data = T.geologic_data
|
||||
else if(istype(item_to_sample, /obj/item/ore))
|
||||
var/obj/item/ore/O = item_to_sample
|
||||
else if(istype(item_to_sample, /obj/item/ore/archeology_debris))
|
||||
var/obj/item/ore/archeology_debris/O = item_to_sample
|
||||
geo_data = O.geologic_data
|
||||
|
||||
if(geo_data)
|
||||
|
||||
@@ -242,8 +242,8 @@
|
||||
var/data = " - Mundane object: [scanned_item.desc ? scanned_item.desc : "No information on record."]<br>"
|
||||
var/datum/geosample/G
|
||||
switch(scanned_item.type)
|
||||
if(/obj/item/ore)
|
||||
var/obj/item/ore/O = scanned_item
|
||||
if(/obj/item/ore/archeology_debris)
|
||||
var/obj/item/ore/archeology_debris/O = scanned_item
|
||||
if(O.geologic_data)
|
||||
G = O.geologic_data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user