diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm index 3c77018fa22..28657c7e6de 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -77,7 +77,7 @@ /area/ruin/powered/greed) "p" = ( /obj/structure/table/wood/poker, -/obj/item/stack/ore/gold, +/obj/item/ore/gold, /turf/open/floor/engine/cult, /area/ruin/powered/greed) "q" = ( diff --git a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm index 80a374c00e3..e5de6294f9d 100644 --- a/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm +++ b/_maps/RandomRuins/SpaceRuins/TheDerelict.dmm @@ -701,9 +701,9 @@ /turf/open/floor/plasteel, /area/ruin/space/derelict/solar_control) "cn" = ( -/obj/item/stack/ore/iron, -/obj/item/stack/ore/iron, -/obj/item/stack/ore/iron, +/obj/item/ore/iron, +/obj/item/ore/iron, +/obj/item/ore/iron, /turf/template_noop, /area/template_noop) "co" = ( @@ -747,7 +747,7 @@ }, /area/ruin/space/derelict/gravity_generator) "cv" = ( -/obj/item/stack/ore/slag, +/obj/item/ore/slag, /turf/open/floor/plasteel/airless{ icon_state = "damaged4" }, @@ -818,7 +818,7 @@ /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/gravity_generator) "cI" = ( -/obj/item/stack/ore/slag, +/obj/item/ore/slag, /turf/template_noop, /area/template_noop) "cJ" = ( @@ -1933,7 +1933,7 @@ /turf/open/floor/plasteel/airless, /area/ruin/space/derelict/bridge/access) "gh" = ( -/obj/item/stack/ore/slag, +/obj/item/ore/slag, /turf/open/floor/plating/airless, /area/ruin/space/derelict/singularity_engine) "gi" = ( diff --git a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm index 10ee8b2a861..76197719333 100644 --- a/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm +++ b/_maps/RandomRuins/SpaceRuins/crashedclownship.dmm @@ -27,11 +27,11 @@ /area/ruin/unpowered) "i" = ( /obj/structure/closet/crate, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, /turf/open/floor/mineral/bananium/airless, /area/ruin/unpowered) "j" = ( @@ -39,7 +39,7 @@ icon_state = "crateopen"; opened = 1 }, -/obj/item/stack/ore/bananium, +/obj/item/ore/bananium, /turf/open/floor/mineral/bananium/airless, /area/ruin/unpowered) "k" = ( @@ -84,7 +84,7 @@ /turf/open/floor/plating/asteroid/airless, /area/ruin/unpowered) "p" = ( -/obj/item/stack/ore/bananium, +/obj/item/ore/bananium, /turf/open/floor/mineral/bananium/airless, /area/ruin/unpowered) "q" = ( @@ -148,10 +148,10 @@ /area/ruin/unpowered) "y" = ( /obj/structure/closet/crate, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, /turf/open/floor/mineral/bananium/airless, /area/ruin/unpowered) "z" = ( diff --git a/_maps/RandomRuins/SpaceRuins/oldstation.dmm b/_maps/RandomRuins/SpaceRuins/oldstation.dmm index 441de627915..c1a18d879ad 100644 --- a/_maps/RandomRuins/SpaceRuins/oldstation.dmm +++ b/_maps/RandomRuins/SpaceRuins/oldstation.dmm @@ -43,9 +43,9 @@ /obj/item/stack/sheet/mineral/gold{ amount = 15 }, -/obj/item/stack/ore/bluespace_crystal, -/obj/item/stack/ore/bluespace_crystal, -/obj/item/stack/ore/bluespace_crystal, +/obj/item/ore/bluespace_crystal, +/obj/item/ore/bluespace_crystal, +/obj/item/ore/bluespace_crystal, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/ancientstation/hivebot) "ak" = ( @@ -4435,12 +4435,12 @@ /area/ruin/space/has_grav/ancientstation/deltacorridor) "lr" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/bluespace_crystal, +/obj/item/ore/bluespace_crystal, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/rnd) "ls" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/bluespace_crystal/refined, +/obj/item/ore/bluespace_crystal/refined, /turf/open/floor/plasteel/white, /area/ruin/space/has_grav/ancientstation/rnd) "lt" = ( diff --git a/_maps/RandomRuins/SpaceRuins/onehalf.dmm b/_maps/RandomRuins/SpaceRuins/onehalf.dmm index 0adc8fd8644..f9e61815c4c 100644 --- a/_maps/RandomRuins/SpaceRuins/onehalf.dmm +++ b/_maps/RandomRuins/SpaceRuins/onehalf.dmm @@ -190,7 +190,7 @@ /area/ruin/space/has_grav/onehalf/drone_bay) "aF" = ( /obj/structure/disposalpipe/trunk, -/obj/item/stack/ore/diamond, +/obj/item/ore/diamond, /turf/open/floor/plating/airless, /area/ruin/space/has_grav/onehalf/drone_bay) "aG" = ( @@ -1125,7 +1125,7 @@ /area/ruin/space/has_grav/onehalf/bridge) "cZ" = ( /obj/structure/table/reinforced, -/obj/item/stack/ore/bluespace_crystal, +/obj/item/ore/bluespace_crystal, /obj/item/coin/plasma, /turf/open/floor/plasteel, /area/ruin/space/has_grav/onehalf/bridge) diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm index 4cc888fa062..9277b95a794 100644 --- a/_maps/RandomZLevels/moonoutpost19.dmm +++ b/_maps/RandomZLevels/moonoutpost19.dmm @@ -361,7 +361,7 @@ }, /area/awaymission/moonoutpost19/syndicate) "aS" = ( -/obj/item/stack/ore/iron{ +/obj/item/ore/iron{ pixel_x = 7; pixel_y = -6 }, @@ -1770,8 +1770,8 @@ }, /area/awaymission/moonoutpost19/syndicate) "dv" = ( -/obj/item/stack/ore/iron, -/obj/item/stack/ore/iron{ +/obj/item/ore/iron, +/obj/item/ore/iron{ pixel_x = -7; pixel_y = -4 }, @@ -1822,7 +1822,7 @@ }, /area/awaymission/moonoutpost19/syndicate) "dz" = ( -/obj/item/stack/ore/iron{ +/obj/item/ore/iron{ pixel_x = -3; pixel_y = 9 }, @@ -1969,7 +1969,7 @@ }, /area/awaymission/moonoutpost19/main) "dN" = ( -/obj/item/stack/ore/iron{ +/obj/item/ore/iron{ pixel_x = -7; pixel_y = -4 }, diff --git a/_maps/RandomZLevels/spacebattle.dmm b/_maps/RandomZLevels/spacebattle.dmm index cdf59c563f1..f957ba259a9 100644 --- a/_maps/RandomZLevels/spacebattle.dmm +++ b/_maps/RandomZLevels/spacebattle.dmm @@ -1993,11 +1993,11 @@ /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) "gT" = ( -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, -/obj/item/stack/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, +/obj/item/ore/bananium, /obj/structure/closet/crate, /turf/open/floor/plating, /area/awaymission/spacebattle/cruiser) diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index ba35685d8da..a43e549507f 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -34719,7 +34719,7 @@ /turf/open/floor/plasteel, /area/quartermaster/miningdock) "bHz" = ( -/obj/item/stack/ore/iron, +/obj/item/ore/iron, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -35985,8 +35985,8 @@ /turf/open/floor/plasteel, /area/quartermaster/miningdock) "bKk" = ( -/obj/item/stack/ore/silver, -/obj/item/stack/ore/silver, +/obj/item/ore/silver, +/obj/item/ore/silver, /obj/effect/turf_decal/stripes/line{ dir = 10 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index f35f7c15170..53a64abc3c0 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -12002,7 +12002,7 @@ /turf/open/floor/mineral/titanium/blue, /area/shuttle/mining) "azj" = ( -/obj/item/stack/ore/iron, +/obj/item/ore/iron, /obj/effect/turf_decal/stripes/line{ dir = 9 }, @@ -13401,8 +13401,8 @@ /turf/open/floor/plasteel/dark, /area/engine/engineering) "aBS" = ( -/obj/item/stack/ore/silver, -/obj/item/stack/ore/silver, +/obj/item/ore/silver, +/obj/item/ore/silver, /obj/effect/turf_decal/stripes/line{ dir = 10 }, @@ -13481,7 +13481,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/item/stack/ore/glass, +/obj/item/ore/glass, /turf/open/floor/plasteel/floorgrime, /area/quartermaster/warehouse) "aCc" = ( @@ -17795,8 +17795,8 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/item/stack/ore/glass, -/obj/item/stack/ore/iron, +/obj/item/ore/glass, +/obj/item/ore/iron, /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/quartermaster/storage) @@ -78904,7 +78904,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/item/stack/ore/slag, +/obj/item/ore/slag, /turf/open/floor/plating, /area/maintenance/aft) "diS" = ( diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm index 489d1bc1506..9bbb42b2b5e 100644 --- a/_maps/map_files/OmegaStation/OmegaStation.dmm +++ b/_maps/map_files/OmegaStation/OmegaStation.dmm @@ -470,7 +470,7 @@ name = "Asteroid" }) "aaW" = ( -/obj/item/stack/ore/iron, +/obj/item/ore/iron, /turf/open/floor/plating/asteroid, /area/ruin/unpowered{ name = "Asteroid" @@ -948,7 +948,7 @@ }) "abS" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/glass, +/obj/item/ore/glass, /turf/open/floor/plating/astplate, /area/ruin/unpowered{ name = "Asteroid" @@ -3094,7 +3094,7 @@ }) "afM" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/iron, +/obj/item/ore/iron, /obj/structure/barricade/wooden, /turf/open/floor/plating/astplate, /area/ruin/unpowered{ @@ -3551,8 +3551,8 @@ /area/shuttle/supply) "agE" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/silver, -/obj/item/stack/ore/iron, +/obj/item/ore/silver, +/obj/item/ore/iron, /turf/open/floor/plating/astplate, /area/ruin/unpowered{ name = "Asteroid" @@ -5320,7 +5320,7 @@ /area/shuttle/supply) "ajQ" = ( /obj/effect/decal/cleanable/dirt, -/obj/item/stack/ore/iron, +/obj/item/ore/iron, /turf/open/floor/plating/astplate, /area/ruin/unpowered{ name = "Asteroid" diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 40915cbf68a..43fc70f0165 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -7663,7 +7663,7 @@ /obj/item/ammo_box/a357, /obj/item/tank/internals/plasma/full, /obj/item/disk/fakenucleardisk, -/obj/item/stack/ore/diamond, +/obj/item/ore/diamond, /obj/item/gun/energy/disabler, /turf/open/floor/plasteel/vault{ dir = 4 diff --git a/code/datums/components/material_container.dm b/code/datums/components/material_container.dm index 7190b084a47..c6acb7d78da 100644 --- a/code/datums/components/material_container.dm +++ b/code/datums/components/material_container.dm @@ -113,7 +113,7 @@ return (total_amount - total_amount_saved) return FALSE -/datum/component/material_container/proc/insert_stack(obj/item/stack/S, amt, multiplier = 1) +/datum/component/material_container/proc/insert_stack(obj/item/stack/S, amt) if(isnull(amt)) amt = S.amount @@ -131,7 +131,7 @@ if(!amt) return FALSE - last_inserted_id = insert_materials(S,amt * multiplier) + last_inserted_id = insert_materials(S,amt) last_inserted_type = S.type S.use(amt) last_amount_inserted = amt @@ -141,7 +141,7 @@ if(!I) return FALSE if(istype(I, /obj/item/stack)) - return insert_stack(I, stack_amt, multiplier) + return insert_stack(I, stack_amt) var/material_amount = get_item_material_amount(I) if(!material_amount || !has_space(material_amount)) diff --git a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm index ebb688a0ab8..5ff7b0f6f2a 100644 --- a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm +++ b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm @@ -28,7 +28,7 @@ to_chat(user, "[cultist_message]") if(user.mind && user.mind.isholy) to_chat(user, "The power of your faith melts away [src]!") - var/obj/item/stack/ore/slag/wrath = new /obj/item/stack/ore/slag + var/obj/item/ore/slag/wrath = new /obj/item/ore/slag qdel(src) user.put_in_active_hand(wrath) if(is_servant_of_ratvar(user) && prob(20)) diff --git a/code/game/gamemodes/meteor/meteors.dm b/code/game/gamemodes/meteor/meteors.dm index 45a5c6c867e..e8d0bb45e06 100644 --- a/code/game/gamemodes/meteor/meteors.dm +++ b/code/game/gamemodes/meteor/meteors.dm @@ -99,7 +99,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event var/threat = 0 // used for determining which meteors are most interesting var/lifetime = DEFAULT_METEOR_LIFETIME var/timerid = null - var/list/meteordrop = list(/obj/item/stack/ore/iron) + var/list/meteordrop = list(/obj/item/ore/iron) var/dropamt = 2 /obj/effect/meteor/Move() @@ -217,7 +217,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event hits = 1 hitpwr = 3 meteorsound = 'sound/weapons/gunshot_smg.ogg' - meteordrop = list(/obj/item/stack/ore/glass) + meteordrop = list(/obj/item/ore/glass) threat = 1 //Medium-sized @@ -250,7 +250,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event hits = 5 heavy = 1 meteorsound = 'sound/effects/bamf.ogg' - meteordrop = list(/obj/item/stack/ore/plasma) + meteordrop = list(/obj/item/ore/plasma) threat = 20 /obj/effect/meteor/flaming/meteor_effect() @@ -262,7 +262,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event name = "glowing meteor" icon_state = "glowing" heavy = 1 - meteordrop = list(/obj/item/stack/ore/uranium) + meteordrop = list(/obj/item/ore/uranium) threat = 15 @@ -332,7 +332,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event hitpwr = 1 heavy = 1 meteorsound = 'sound/effects/bamf.ogg' - meteordrop = list(/obj/item/stack/ore/plasma) + meteordrop = list(/obj/item/ore/plasma) threat = 50 /obj/effect/meteor/tunguska/Move() diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 58b6faf574b..0287dadfdb2 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -90,7 +90,7 @@ projectiletype = /obj/item/projectile/beam/disabler ranged_cooldown_time = 20 projectilesound = 'sound/weapons/taser2.ogg' - loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/stack/ore/bluespace_crystal) + loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/ore/bluespace_crystal) del_on_death = 1 deathmessage = "explodes with a sharp pop!" light_color = LIGHT_COLOR_CYAN diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index c7979249c35..f46f9892609 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -130,8 +130,8 @@ if(!M.last_insert_success) return var/lit = M.last_inserted_type - if(ispath(lit, /obj/item/stack/ore/bluespace_crystal)) - use_power(min(500,M.last_amount_inserted/10)) + if(ispath(lit, /obj/item/ore/bluespace_crystal)) + use_power(max(500,M.last_amount_inserted/10)) else switch(M.last_inserted_id) if (MAT_METAL) diff --git a/code/game/machinery/gulag_teleporter.dm b/code/game/machinery/gulag_teleporter.dm index 65773aa432f..380760963dd 100644 --- a/code/game/machinery/gulag_teleporter.dm +++ b/code/game/machinery/gulag_teleporter.dm @@ -165,10 +165,10 @@ The console is located at computer/gulag_teleporter.dm name = "labor camp teleporter (Machine Board)" build_path = /obj/machinery/gulag_teleporter req_components = list( - /obj/item/stack/ore/bluespace_crystal = 2, + /obj/item/ore/bluespace_crystal = 2, /obj/item/stock_parts/scanning_module, /obj/item/stock_parts/manipulator) - def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) + def_components = list(/obj/item/ore/bluespace_crystal = /obj/item/ore/bluespace_crystal/artificial) /* beacon that receives the teleported prisoner */ /obj/structure/gulag_beacon diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 97c77163e1c..d2d4725f72d 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -37,7 +37,7 @@ /obj/machinery/mecha_part_fabricator/Initialize() var/datum/component/material_container/materials = AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), - FALSE, list(/obj/item/stack), CALLBACK(src, .proc/is_insertion_ready)) + FALSE, list(/obj/item/stack, /obj/item/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready)) materials.precise_insertion = TRUE stored_research = new return ..() diff --git a/code/game/mecha/mecha_construction_paths.dm b/code/game/mecha/mecha_construction_paths.dm index 5b40e68bb0e..c8de01badce 100644 --- a/code/game/mecha/mecha_construction_paths.dm +++ b/code/game/mecha/mecha_construction_paths.dm @@ -28,9 +28,6 @@ else to_chat(user, ("There's not enough cable to finish the task!")) return FALSE - else if(istype(used_atom, /obj/item/stack/ore/bluespace_crystal)) - var/obj/item/stack/ore/bluespace_crystal/BSC = used_atom - BSC.use(1) else if(istype(used_atom, /obj/item/stack)) var/obj/item/stack/S = used_atom if(S.get_amount() < 5) @@ -1323,7 +1320,7 @@ "backkey"=/obj/item/crowbar, "desc"="The bluespace crystal is installed."), //12 - list("key"=/obj/item/stack/ore/bluespace_crystal, + list("key"=/obj/item/ore/bluespace_crystal, "backkey"=/obj/item/screwdriver, "desc"="Super capacitor is secured."), //13 @@ -1517,7 +1514,7 @@ holder.icon_state = "phazon16" else user.visible_message("[user] removes the bluespace crystal from the [holder].", "You remove the bluespace crystal from the [holder].") - new /obj/item/stack/ore/bluespace_crystal(get_turf(holder)) + new /obj/item/ore/bluespace_crystal(get_turf(holder)) holder.icon_state = "phazon14" if(11) if(diff==FORWARD) diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index 2a52852462c..0da64c3e4d7 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -26,7 +26,7 @@ if(locate(/obj/item/mecha_parts/mecha_equipment/hydraulic_clamp) in equipment) var/obj/structure/ore_box/ore_box = locate(/obj/structure/ore_box) in cargo if(ore_box) - for(var/obj/item/stack/ore/ore in range(1, src)) + for(var/obj/item/ore/ore in range(1, src)) if(ore.Adjacent(src) && ((get_dir(src, ore) & dir) || ore.loc == loc)) //we can reach it and it's in front of us? grab it! ore.forceMove(ore_box) @@ -128,11 +128,11 @@ ..() if(href_list["drop_from_cargo"]) var/obj/O = locate(href_list["drop_from_cargo"]) - if(O && O in cargo) - occupant_message("You unload [O].") + if(O && O in src.cargo) + src.occupant_message("You unload [O].") O.forceMove(loc) - cargo -= O - log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - cargo.len]") + src.cargo -= O + src.log_message("Unloaded [O]. Cargo compartment capacity: [cargo_capacity - src.cargo.len]") return diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 4f58023c4c5..03aa13c301f 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -58,9 +58,9 @@ name = "Bluespace Launchpad (Machine Board)" build_path = /obj/machinery/launchpad req_components = list( - /obj/item/stack/ore/bluespace_crystal = 1, + /obj/item/ore/bluespace_crystal = 1, /obj/item/stock_parts/manipulator = 1) - def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) + def_components = list(/obj/item/ore/bluespace_crystal = /obj/item/ore/bluespace_crystal/artificial) /obj/item/circuitboard/machine/limbgrower name = "Limb Grower (Machine Board)" @@ -74,11 +74,11 @@ name = "Quantum Pad (Machine Board)" build_path = /obj/machinery/quantumpad req_components = list( - /obj/item/stack/ore/bluespace_crystal = 1, + /obj/item/ore/bluespace_crystal = 1, /obj/item/stock_parts/capacitor = 1, /obj/item/stock_parts/manipulator = 1, /obj/item/stack/cable_coil = 1) - def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) + def_components = list(/obj/item/ore/bluespace_crystal = /obj/item/ore/bluespace_crystal/artificial) /obj/item/circuitboard/machine/recharger name = "Weapon Recharger (Machine Board)" @@ -175,18 +175,18 @@ name = "Teleporter Hub (Machine Board)" build_path = /obj/machinery/teleport/hub req_components = list( - /obj/item/stack/ore/bluespace_crystal = 3, + /obj/item/ore/bluespace_crystal = 3, /obj/item/stock_parts/matter_bin = 1) - def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) + def_components = list(/obj/item/ore/bluespace_crystal = /obj/item/ore/bluespace_crystal/artificial) /obj/item/circuitboard/machine/teleporter_station name = "Teleporter Station (Machine Board)" build_path = /obj/machinery/teleport/station req_components = list( - /obj/item/stack/ore/bluespace_crystal = 2, + /obj/item/ore/bluespace_crystal = 2, /obj/item/stock_parts/capacitor = 2, /obj/item/stack/sheet/glass = 1) - def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial) + def_components = list(/obj/item/ore/bluespace_crystal = /obj/item/ore/bluespace_crystal/artificial) /obj/item/circuitboard/machine/vendor name = "Booze-O-Mat Vendor (Machine Board)" @@ -673,7 +673,7 @@ name = "Bluespace Artillery Fusor (Machine Board)" build_path = /obj/machinery/bsa/middle req_components = list( - /obj/item/stack/ore/bluespace_crystal = 20, + /obj/item/ore/bluespace_crystal = 20, /obj/item/stack/cable_coil = 2) /obj/item/circuitboard/machine/bsa/front diff --git a/code/game/objects/items/stacks/bscrystal.dm b/code/game/objects/items/stacks/bscrystal.dm index 204a53cd639..5276050b035 100644 --- a/code/game/objects/items/stacks/bscrystal.dm +++ b/code/game/objects/items/stacks/bscrystal.dm @@ -1,5 +1,5 @@ //Bluespace crystals, used in telescience and when crushed it will blink you to a random turf. -/obj/item/stack/ore/bluespace_crystal +/obj/item/ore/bluespace_crystal name = "bluespace crystal" desc = "A glowing bluespace crystal, not much is known about how they work. It looks very delicate." icon = 'icons/obj/telescience.dmi' @@ -10,38 +10,38 @@ var/blink_range = 8 // The teleport range when crushed/thrown at someone. refined_type = /obj/item/stack/sheet/bluespace_crystal -/obj/item/stack/ore/bluespace_crystal/refined +/obj/item/ore/bluespace_crystal/refined name = "refined bluespace crystal" points = 0 refined_type = null -/obj/item/stack/ore/bluespace_crystal/Initialize() - . = ..() +/obj/item/ore/bluespace_crystal/New() + ..() pixel_x = rand(-5, 5) pixel_y = rand(-5, 5) -/obj/item/stack/ore/bluespace_crystal/attack_self(mob/user) +/obj/item/ore/bluespace_crystal/attack_self(mob/user) user.visible_message("[user] crushes [src]!", "You crush [src]!") new /obj/effect/particle_effect/sparks(loc) - playsound(loc, "sparks", 50, 1) + playsound(src.loc, "sparks", 50, 1) blink_mob(user) - use(1) + qdel(src) -/obj/item/stack/ore/bluespace_crystal/proc/blink_mob(mob/living/L) +/obj/item/ore/bluespace_crystal/proc/blink_mob(mob/living/L) do_teleport(L, get_turf(L), blink_range, asoundin = 'sound/effects/phasein.ogg') -/obj/item/stack/ore/bluespace_crystal/throw_impact(atom/hit_atom) +/obj/item/ore/bluespace_crystal/throw_impact(atom/hit_atom) if(!..()) // not caught in mid-air visible_message("[src] fizzles and disappears upon impact!") var/turf/T = get_turf(hit_atom) new /obj/effect/particle_effect/sparks(T) - playsound(loc, "sparks", 50, 1) + playsound(src.loc, "sparks", 50, 1) if(isliving(hit_atom)) blink_mob(hit_atom) - use(1) + qdel(src) //Artifical bluespace crystal, doesn't give you much research. -/obj/item/stack/ore/bluespace_crystal/artificial +/obj/item/ore/bluespace_crystal/artificial name = "artificial bluespace crystal" desc = "An artificially made bluespace crystal, it looks delicate." materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT / 2) @@ -58,7 +58,7 @@ materials = list(MAT_BLUESPACE=MINERAL_MATERIAL_AMOUNT) attack_verb = list("bluespace polybashed", "bluespace polybattered", "bluespace polybludgeoned", "bluespace polythrashed", "bluespace polysmashed") novariants = TRUE - var/crystal_type = /obj/item/stack/ore/bluespace_crystal/refined + var/crystal_type = /obj/item/ore/bluespace_crystal/refined /obj/item/stack/sheet/bluespace_crystal/attack_self(mob/user)// to prevent the construction menu from ever happening to_chat(user, "You cannot crush the polycrystal in-hand, try breaking one off.") diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index 278486ca4d8..e2ae00d06c3 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -36,7 +36,7 @@ GLOBAL_LIST_INIT(sandstone_recipes, list ( \ new/datum/stack_recipe("sandstone door", /obj/structure/mineral_door/sandstone, 10, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("aesthetic volcanic floor tile", /obj/item/stack/tile/basalt, 2, 2, 4, 20), \ new/datum/stack_recipe("Assistant Statue", /obj/structure/statue/sandstone/assistant, 5, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("Breakdown into sand", /obj/item/stack/ore/glass, 1, one_per_turf = 0, on_floor = 1) \ + new/datum/stack_recipe("Breakdown into sand", /obj/item/ore/glass, 1, one_per_turf = 0, on_floor = 1) \ )) /obj/item/stack/sheet/mineral/sandstone @@ -84,13 +84,12 @@ GLOBAL_LIST_INIT(sandbag_recipes, list ( \ w_class = WEIGHT_CLASS_TINY /obj/item/emptysandbag/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/stack/ore/glass)) - var/obj/item/stack/ore/glass/G = W + if(istype(W, /obj/item/ore/glass)) to_chat(user, "You fill the sandbag.") var/obj/item/stack/sheet/mineral/sandbags/I = new /obj/item/stack/sheet/mineral/sandbags qdel(src) user.put_in_hands(I) - G.use(1) + qdel(W) else return ..() diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm index f03f72781cd..afeffe0f1e0 100644 --- a/code/game/objects/items/storage/bags.dm +++ b/code/game/objects/items/storage/bags.dm @@ -85,10 +85,10 @@ icon_state = "satchel" slot_flags = SLOT_BELT | SLOT_POCKET w_class = WEIGHT_CLASS_NORMAL - storage_slots = 8 - max_combined_w_class = 16 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class - max_w_class = WEIGHT_CLASS_HUGE - can_hold = list(/obj/item/stack/ore) + storage_slots = 50 + max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class + max_w_class = WEIGHT_CLASS_NORMAL + can_hold = list(/obj/item/ore) var/spam_protection = FALSE //If this is TRUE, the holder won't receive any messages when they fail to pick up ore through crossing it /obj/item/storage/bag/ore/cyborg @@ -228,7 +228,7 @@ var/col_count = min(7,storage_slots) -1 if (adjusted_contents > 7) row_num = round((adjusted_contents-1) / 7) // 7 is the maximum allowed width. - standard_orient_objs(row_num, col_count, numbered_contents) + src.standard_orient_objs(row_num, col_count, numbered_contents) return diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 16e9aec07f2..f461e51555c 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -226,7 +226,7 @@ /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/reagent_containers/pill, /obj/item/storage/pill_bottle, - /obj/item/stack/ore, + /obj/item/ore, /obj/item/reagent_containers/food/drinks, /obj/item/organ/regenerative_core, /obj/item/device/wormhole_jaunter, diff --git a/code/game/objects/items/teleprod.dm b/code/game/objects/items/teleprod.dm index 5cf914607d0..92e7a8e9ba0 100644 --- a/code/game/objects/items/teleprod.dm +++ b/code/game/objects/items/teleprod.dm @@ -26,13 +26,12 @@ do_teleport(M, get_turf(M), 15) /obj/item/melee/baton/cattleprod/attackby(obj/item/I, mob/user, params)//handles sticking a crystal onto a stunprod to make a teleprod - if(istype(I, /obj/item/stack/ore/bluespace_crystal)) + if(istype(I, /obj/item/ore/bluespace_crystal)) if(!cell) - var/obj/item/stack/ore/bluespace_crystal/BSC = I var/obj/item/melee/baton/cattleprod/teleprod/S = new /obj/item/melee/baton/cattleprod/teleprod remove_item_from_storage(user) qdel(src) - BSC.use(1) + qdel(I) user.put_in_hands(S) to_chat(user, "You place the bluespace crystal firmly into the igniter.") else diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 0b4254092f6..873902f6530 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -78,5 +78,5 @@ /obj/item/trash/coal/burn() visible_message("[src] fuses into a diamond! Someone wasn't so naughty after all...") - new /obj/item/stack/ore/diamond(loc) + new /obj/item/ore/diamond(loc) qdel(src) \ No newline at end of file diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 723fd02bf03..b2a764f77af 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -72,7 +72,7 @@ floor_tile = /obj/item/stack/tile/grass broken_states = list("sand") flags_1 = NONE - var/ore_type = /obj/item/stack/ore/glass + var/ore_type = /obj/item/ore/glass var/turfverb = "uproot" /turf/open/floor/grass/Initialize() @@ -81,8 +81,9 @@ /turf/open/floor/grass/attackby(obj/item/C, mob/user, params) if(istype(C, /obj/item/shovel) && params) - new ore_type(src, 2) - user.visible_message("[user] digs up [src].", "You [turfverb] [src].") + new ore_type(src) + new ore_type(src) //Make some sand if you shovel grass + user.visible_message("[user] digs up [src].", "You [src.turfverb] [src].") playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1) make_plating() if(..()) @@ -108,7 +109,7 @@ name = "volcanic floor" icon = 'icons/turf/floors.dmi' icon_state = "basalt" - ore_type = /obj/item/stack/ore/glass/basalt + ore_type = /obj/item/ore/glass/basalt initial_gas_mix = LAVALAND_DEFAULT_ATMOS slowdown = 0 @@ -125,7 +126,7 @@ icon = 'icons/turf/floors.dmi' icon_state = "basalt" floor_tile = /obj/item/stack/tile/basalt - ore_type = /obj/item/stack/ore/glass/basalt + ore_type = /obj/item/ore/glass/basalt turfverb = "dig up" slowdown = 0 diff --git a/code/game/turfs/simulated/floor/plating/asteroid.dm b/code/game/turfs/simulated/floor/plating/asteroid.dm index be81a0c7617..abbf83a164d 100644 --- a/code/game/turfs/simulated/floor/plating/asteroid.dm +++ b/code/game/turfs/simulated/floor/plating/asteroid.dm @@ -13,7 +13,7 @@ var/environment_type = "asteroid" var/turf_type = /turf/open/floor/plating/asteroid //Because caves do whacky shit to revert to normal var/floor_variance = 20 //probability floor has a different icon state - archdrops = list(/obj/item/stack/ore/glass = 5) + archdrops = list(/obj/item/ore/glass = 5) attachment_holes = FALSE /turf/open/floor/plating/asteroid/Initialize() @@ -41,7 +41,7 @@ if(istype(W, /obj/item/storage/bag/ore)) var/obj/item/storage/bag/ore/S = W if(S.collection_mode == 1) - for(var/obj/item/stack/ore/O in contents) + for(var/obj/item/ore/O in src.contents) O.attackby(W,user) return @@ -75,7 +75,7 @@ icon_state = "basalt" icon_plating = "basalt" environment_type = "basalt" - archdrops = list(/obj/item/stack/ore/glass/basalt = 5) + archdrops = list(/obj/item/ore/glass/basalt = 5) floor_variance = 15 /turf/open/floor/plating/asteroid/basalt/lava //lava underneath @@ -214,7 +214,7 @@ C.produce_tunnel_from_data(rand(10, 15), dir) else SpawnFloor(tunnel) - else //if(!istype(tunnel, parent)) // We hit space/normal/wall, stop our tunnel. + else //if(!istype(tunnel, src.parent)) // We hit space/normal/wall, stop our tunnel. break // Chance to change our direction left or right. diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 66332d2d9c2..2a0147c82a6 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -71,9 +71,11 @@ return attack_hand(user) /turf/closed/mineral/proc/gets_drilled() - if (mineralType && (mineralAmt > 0)) - new mineralType(src, mineralAmt) - SSblackbox.record_feedback("tally", "ore_mined", mineralAmt, mineralType) + if (mineralType && (src.mineralAmt > 0) && (src.mineralAmt < 11)) + var/i + for(i in 1 to mineralAmt) + new mineralType(src) + SSblackbox.record_feedback("tally", "ore_mined", 1, mineralType) for(var/obj/effect/temp_visual/mining_overlay/M in src) qdel(M) ChangeTurf(turf_type, FALSE, defer_change) @@ -103,7 +105,7 @@ else if(iscyborg(AM)) var/mob/living/silicon/robot/R = AM if(istype(R.module_active, /obj/item/pickaxe)) - attackby(R.module_active,R) + src.attackby(R.module_active,R) return else return @@ -116,12 +118,12 @@ switch(severity) if(3) if (prob(75)) - gets_drilled(null, 1) + src.gets_drilled(null, 1) if(2) if (prob(90)) - gets_drilled(null, 1) + src.gets_drilled(null, 1) if(1) - gets_drilled(null, 1) + src.gets_drilled(null, 1) return /turf/closed/mineral/Spread(turf/T) @@ -149,9 +151,9 @@ if(T && ismineralturf(T)) var/turf/closed/mineral/M = T M.mineralAmt = rand(1, 5) - M.environment_type = environment_type - M.turf_type = turf_type - M.baseturf = baseturf + M.environment_type = src.environment_type + M.turf_type = src.turf_type + M.baseturf = src.baseturf src = M M.levelupdate() @@ -220,7 +222,7 @@ /turf/closed/mineral/iron - mineralType = /obj/item/stack/ore/iron + mineralType = /obj/item/ore/iron spreadChance = 20 spread = 1 scan_state = "rock_Iron" @@ -234,7 +236,7 @@ /turf/closed/mineral/uranium - mineralType = /obj/item/stack/ore/uranium + mineralType = /obj/item/ore/uranium spreadChance = 5 spread = 1 scan_state = "rock_Uranium" @@ -248,7 +250,7 @@ /turf/closed/mineral/diamond - mineralType = /obj/item/stack/ore/diamond + mineralType = /obj/item/ore/diamond spreadChance = 0 spread = 1 scan_state = "rock_Diamond" @@ -262,7 +264,7 @@ /turf/closed/mineral/gold - mineralType = /obj/item/stack/ore/gold + mineralType = /obj/item/ore/gold spreadChance = 5 spread = 1 scan_state = "rock_Gold" @@ -276,7 +278,7 @@ /turf/closed/mineral/silver - mineralType = /obj/item/stack/ore/silver + mineralType = /obj/item/ore/silver spreadChance = 5 spread = 1 scan_state = "rock_Silver" @@ -290,7 +292,7 @@ /turf/closed/mineral/titanium - mineralType = /obj/item/stack/ore/titanium + mineralType = /obj/item/ore/titanium spreadChance = 5 spread = 1 scan_state = "rock_Titanium" @@ -304,7 +306,7 @@ /turf/closed/mineral/plasma - mineralType = /obj/item/stack/ore/plasma + mineralType = /obj/item/ore/plasma spreadChance = 8 spread = 1 scan_state = "rock_Plasma" @@ -318,7 +320,7 @@ /turf/closed/mineral/clown - mineralType = /obj/item/stack/ore/bananium + mineralType = /obj/item/ore/bananium mineralAmt = 3 spreadChance = 0 spread = 0 @@ -326,7 +328,7 @@ /turf/closed/mineral/bscrystal - mineralType = /obj/item/stack/ore/bluespace_crystal + mineralType = /obj/item/ore/bluespace_crystal mineralAmt = 1 spreadChance = 0 spread = 0 @@ -436,7 +438,7 @@ stage = GIBTONITE_STABLE if(det_time < 0) det_time = 0 - visible_message("The chain reaction was stopped! The gibtonite had [det_time] reactions left till the explosion!") + visible_message("The chain reaction was stopped! The gibtonite had [src.det_time] reactions left till the explosion!") /turf/closed/mineral/gibtonite/gets_drilled(mob/user, triggered_by_explosion = 0) if(stage == GIBTONITE_UNSTRUCK && mineralAmt >= 1) //Gibtonite deposit is activated diff --git a/code/modules/awaymissions/mission_code/stationCollision.dm b/code/modules/awaymissions/mission_code/stationCollision.dm index 3b865492ef1..65ed8f95b72 100644 --- a/code/modules/awaymissions/mission_code/stationCollision.dm +++ b/code/modules/awaymissions/mission_code/stationCollision.dm @@ -23,7 +23,7 @@ name = "Safecode hint spawner" /obj/effect/landmark/sc_bible_spawner/New() - var/obj/item/storage/book/bible/B = new /obj/item/storage/book/bible/booze(loc) + var/obj/item/storage/book/bible/B = new /obj/item/storage/book/bible/booze(src.loc) B.name = "The Holy book of the Geometer" B.deity_name = "Narsie" B.icon_state = "melted" @@ -131,7 +131,7 @@ GLOBAL_VAR_INIT(sc_safecode5, "[rand(0,9)]") new /obj/item/device/soulstone(src) new /obj/item/clothing/suit/space/hardsuit/cult(src) //new /obj/item/teleportation_scroll(src) - new /obj/item/stack/ore/diamond(src) + new /obj/item/ore/diamond(src) /* * Modified Nar-Sie diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index 04117fc7a3a..543bee7c218 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -4,7 +4,7 @@ var/material_id = null export_types = list( /obj/item/stack/sheet/mineral, /obj/item/stack/tile/mineral, - /obj/item/stack/ore, /obj/item/coin) + /obj/item/ore, /obj/item/coin) // Yes, it's a base type containing export_types. // But it has no material_id, so any applies_to check will return false, and these types reduce amount of copypasta a lot @@ -22,8 +22,8 @@ if(istype(I, /obj/item/stack)) var/obj/item/stack/S = I amount *= S.amount - if(istype(I, /obj/item/stack/ore)) - amount *= 0.8 // Station's ore redemption equipment is really goddamn good. + else if(istype(I, /obj/item/ore)) + amount *= 0.8 // Station's ore redemption equipment is really goddamn good. return round(amount/MINERAL_MATERIAL_AMOUNT) @@ -84,11 +84,11 @@ material_id = MAT_METAL export_types = list( /obj/item/stack/sheet/metal, /obj/item/stack/tile/plasteel, - /obj/item/stack/rods, /obj/item/stack/ore, /obj/item/coin) + /obj/item/stack/rods, /obj/item/ore, /obj/item/coin) // Glass. Common building material. /datum/export/material/glass message = "cm3 of glass" material_id = MAT_GLASS - export_types = list(/obj/item/stack/sheet/glass, /obj/item/stack/ore, + export_types = list(/obj/item/stack/sheet/glass, /obj/item/ore, /obj/item/shard) diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 979c5092711..0378d44809e 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -80,7 +80,7 @@ reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/stack/rods = 1, /obj/item/device/assembly/igniter = 1, - /obj/item/stack/ore/bluespace_crystal = 1) + /obj/item/ore/bluespace_crystal = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index 267f5f84278..3207938ff15 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -140,7 +140,7 @@ /datum/reagent/water = 10, /obj/item/reagent_containers/glass/bowl = 1, /obj/item/reagent_containers/food/snacks/grown/banana = 1, - /obj/item/stack/ore/bananium = 1 + /obj/item/ore/bananium = 1 ) result = /obj/item/reagent_containers/food/snacks/soup/clownstears subcategory = CAT_SOUP diff --git a/code/modules/mining/abandoned_crates.dm b/code/modules/mining/abandoned_crates.dm index c20971fe9dd..5e7265f0430 100644 --- a/code/modules/mining/abandoned_crates.dm +++ b/code/modules/mining/abandoned_crates.dm @@ -38,7 +38,8 @@ if(11 to 15) new /obj/item/reagent_containers/glass/beaker/bluespace(src) if(16 to 20) - new /obj/item/stack/ore/diamond(src, 10) + for(var/i in 1 to 10) + new /obj/item/ore/diamond(src) if(21 to 25) for(var/i in 1 to 5) new /obj/item/poster/random_contraband(src) @@ -85,7 +86,8 @@ var/newitem = pick(subtypesof(/obj/item/stock_parts) - /obj/item/stock_parts/subspace) new newitem(src) if(69 to 70) - new /obj/item/stack/ore/bluespace_crystal(src, 5) + for(var/i in 1 to 5) + new /obj/item/ore/bluespace_crystal(src) if(71 to 72) new /obj/item/pickaxe/drill(src) if(73 to 74) @@ -194,7 +196,7 @@ if(attempts == 1) to_chat(user, "* Anti-Tamper Bomb will activate on next failed access attempt.") else - to_chat(user, "* Anti-Tamper Bomb will activate after [attempts] failed access attempts.") + to_chat(user, "* Anti-Tamper Bomb will activate after [src.attempts] failed access attempts.") if(lastattempt != null) var/list/guess = list() var/list/answer = list() diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index b1587dd6ae2..52416787cd6 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -83,10 +83,10 @@ return ..() /obj/machinery/mineral/processing_unit/HasProximity(atom/movable/AM) - if(istype(AM, /obj/item/stack/ore) && AM.loc == get_step(src, input_dir)) + if(istype(AM, /obj/item/ore) && AM.loc == get_step(src, input_dir)) process_ore(AM) -/obj/machinery/mineral/processing_unit/proc/process_ore(obj/item/stack/ore/O) +/obj/machinery/mineral/processing_unit/proc/process_ore(obj/item/ore/O) GET_COMPONENT(materials, /datum/component/material_container) var/material_amount = materials.get_item_material_amount(O) if(!materials.has_space(material_amount)) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 6b0a09de30e..60715ef26ac 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -48,12 +48,12 @@ point_upgrade = point_upgrade_temp sheet_per_ore = sheet_per_ore_temp -/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/stack/ore/O) +/obj/machinery/mineral/ore_redemption/proc/smelt_ore(obj/item/ore/O) ore_buffer -= O if(O && O.refined_type) - points += O.points * point_upgrade * O.amount + points += O.points * point_upgrade GET_COMPONENT(materials, /datum/component/material_container) var/material_amount = materials.get_item_material_amount(O) @@ -61,7 +61,7 @@ if(!material_amount) qdel(O) //no materials, incinerate it - else if(!materials.has_space(material_amount * sheet_per_ore * O.amount)) //if there is no space, eject it + else if(!materials.has_space(material_amount * sheet_per_ore)) //if there is no space, eject it unload_mineral(O) else @@ -133,7 +133,7 @@ if(OB) input = OB - for(var/obj/item/stack/ore/O in input) + for(var/obj/item/ore/O in input) if(QDELETED(O)) continue ore_buffer |= O diff --git a/code/modules/mining/machine_unloading.dm b/code/modules/mining/machine_unloading.dm index 380509f4150..c22ba5d7575 100644 --- a/code/modules/mining/machine_unloading.dm +++ b/code/modules/mining/machine_unloading.dm @@ -16,7 +16,7 @@ if(T) var/limit for(var/obj/structure/ore_box/B in T) - for (var/obj/item/stack/ore/O in B) + for (var/obj/item/ore/O in B) B.contents -= O unload_mineral(O) limit++ diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index 02d71d807fd..dbefd0419d0 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -36,9 +36,9 @@ projectiletype = /obj/item/projectile/kinetic projectilesound = 'sound/weapons/gunshot4.ogg' speak_emote = list("states") - wanted_objects = list(/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver, - /obj/item/stack/ore/plasma, /obj/item/stack/ore/uranium, /obj/item/stack/ore/iron, - /obj/item/stack/ore/bananium, /obj/item/stack/ore/titanium) + wanted_objects = list(/obj/item/ore/diamond, /obj/item/ore/gold, /obj/item/ore/silver, + /obj/item/ore/plasma, /obj/item/ore/uranium, /obj/item/ore/iron, + /obj/item/ore/bananium, /obj/item/ore/titanium) healable = 0 var/mode = MINEDRONE_COLLECT var/light_on = 0 @@ -85,7 +85,7 @@ /mob/living/simple_animal/hostile/mining_drone/death() ..() visible_message("[src] is destroyed!") - new /obj/effect/decal/cleanable/robot_debris(loc) + new /obj/effect/decal/cleanable/robot_debris(src.loc) DropOre(0) qdel(src) return @@ -124,14 +124,20 @@ to_chat(src, "You are set to attack mode. You can now attack from range.") /mob/living/simple_animal/hostile/mining_drone/AttackingTarget() - if(istype(target, /obj/item/stack/ore) && mode == MINEDRONE_COLLECT) + if(istype(target, /obj/item/ore) && mode == MINEDRONE_COLLECT) CollectOre() return return ..() /mob/living/simple_animal/hostile/mining_drone/proc/CollectOre() - for(var/obj/item/stack/ore/O in range(1, src)) - O.forceMove(src) + var/obj/item/ore/O + for(O in src.loc) + O.loc = src + for(var/dir in GLOB.alldirs) + var/turf/T = get_step(src,dir) + for(O in T) + O.loc = src + return /mob/living/simple_animal/hostile/mining_drone/proc/DropOre(message = 1) if(!contents.len) @@ -140,9 +146,9 @@ return if(message) to_chat(src, "You dump your stored ore.") - for(var/obj/item/stack/ore/O in contents) + for(var/obj/item/ore/O in contents) contents -= O - O.loc = loc + O.loc = src.loc return /mob/living/simple_animal/hostile/mining_drone/adjustHealth(amount) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index eca27aa0525..65b2b47117e 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -5,16 +5,14 @@ /**********************Mineral ores**************************/ -/obj/item/stack/ore +/obj/item/ore name = "rock" icon = 'icons/obj/mining.dmi' icon_state = "ore" - full_w_class = WEIGHT_CLASS_BULKY var/points = 0 //How many points this ore gets you from the ore redemption machine var/refined_type = null //What this ore defaults to being refined into - novariants = FALSE -/obj/item/stack/ore/attackby(obj/item/I, mob/user, params) +/obj/item/ore/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weldingtool)) var/obj/item/weldingtool/W = I if(W.remove_fuel(15) && refined_type) @@ -24,10 +22,10 @@ to_chat(user, "Not enough fuel to smelt [src].") ..() -/obj/item/stack/ore/Crossed(atom/movable/AM) +/obj/item/ore/Crossed(atom/movable/AM) set waitfor = FALSE var/show_message = TRUE - for(var/obj/item/stack/ore/O in loc) + for(var/obj/item/ore/O in loc) if(O != src) show_message = FALSE break @@ -55,7 +53,7 @@ var/mob/living/L = AM if(istype(L.pulling, /obj/structure/ore_box)) box = L.pulling - for(var/obj/item/stack/ore/O in OB) + for(var/obj/item/ore/O in OB) OB.remove_from_storage(src, box) if(show_message) playsound(L, "rustle", 50, TRUE) @@ -67,32 +65,32 @@ "You scoop up the ores beneath you with your [OB.name].") return ..() -/obj/item/stack/ore/uranium +/obj/item/ore/uranium name = "uranium ore" - icon_state = "ore_uranium" + icon_state = "Uranium ore" points = 30 materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/uranium -/obj/item/stack/ore/iron +/obj/item/ore/iron name = "iron ore" - icon_state = "ore_iron" + icon_state = "Iron ore" points = 1 materials = list(MAT_METAL=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/metal -/obj/item/stack/ore/glass +/obj/item/ore/glass name = "sand pile" - icon_state = "ore_glass" + icon_state = "Glass ore" points = 1 materials = list(MAT_GLASS=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/glass w_class = WEIGHT_CLASS_TINY -/obj/item/stack/ore/glass/attack_self(mob/living/user) +/obj/item/ore/glass/attack_self(mob/living/user) to_chat(user, "You use the sand to make sandstone.") var/sandAmt = 1 - for(var/obj/item/stack/ore/glass/G in user.loc) // The sand on the floor + for(var/obj/item/ore/glass/G in user.loc) // The sand on the floor sandAmt += 1 qdel(G) while(sandAmt > 0) @@ -108,7 +106,7 @@ qdel(src) return -/obj/item/stack/ore/glass/throw_impact(atom/hit_atom) +/obj/item/ore/glass/throw_impact(atom/hit_atom) if(..() || !ishuman(hit_atom)) return var/mob/living/carbon/human/C = hit_atom @@ -127,18 +125,18 @@ to_chat(C, "\The [src] gets into your eyes! The pain, it burns!") qdel(src) -/obj/item/stack/ore/glass/basalt +/obj/item/ore/glass/basalt name = "volcanic ash" icon_state = "volcanic_sand" -/obj/item/stack/ore/plasma +/obj/item/ore/plasma name = "plasma ore" - icon_state = "ore_plasma" + icon_state = "Plasma ore" points = 15 materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/plasma -/obj/item/stack/ore/plasma/attackby(obj/item/I, mob/user, params) +/obj/item/ore/plasma/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/weldingtool)) var/obj/item/weldingtool/W = I if(W.welding) @@ -147,42 +145,42 @@ ..() -/obj/item/stack/ore/silver +/obj/item/ore/silver name = "silver ore" - icon_state = "ore_silver" + icon_state = "Silver ore" points = 16 materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/silver -/obj/item/stack/ore/gold +/obj/item/ore/gold name = "gold ore" - icon_state = "ore_gold" + icon_state = "Gold ore" points = 18 materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/gold -/obj/item/stack/ore/diamond +/obj/item/ore/diamond name = "diamond ore" - icon_state = "ore_diamond" + icon_state = "Diamond ore" points = 50 materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/diamond -/obj/item/stack/ore/bananium +/obj/item/ore/bananium name = "bananium ore" - icon_state = "ore_clown" + icon_state = "Clown ore" points = 60 materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/bananium -/obj/item/stack/ore/titanium +/obj/item/ore/titanium name = "titanium ore" - icon_state = "ore_titanium" + icon_state = "Titanium ore" points = 50 materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/titanium -/obj/item/stack/ore/slag +/obj/item/ore/slag name = "slag" desc = "Completely useless." icon_state = "slag" @@ -287,12 +285,12 @@ explosion(src,0,1,3,adminlog = notify_admins) qdel(src) -/obj/item/stack/ore/Initialize() +/obj/item/ore/Initialize() . = ..() pixel_x = rand(0,16)-8 pixel_y = rand(0,8)-8 -/obj/item/stack/ore/ex_act() +/obj/item/ore/ex_act() return /*****************************Coin********************************/ diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index b18f11c69be..4c772a70190 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -10,11 +10,11 @@ pressure_resistance = 5*ONE_ATMOSPHERE /obj/structure/ore_box/attackby(obj/item/W, mob/user, params) - if (istype(W, /obj/item/stack/ore)) + if (istype(W, /obj/item/ore)) user.transferItemToLoc(W, src) else if (istype(W, /obj/item/storage)) var/obj/item/storage/S = W - for(var/obj/item/stack/ore/O in S.contents) + for(var/obj/item/ore/O in S.contents) S.remove_from_storage(O, src) //This will move the item to this item's contents to_chat(user, "You empty the ore in [S] into \the [src].") else if(istype(W, /obj/item/crowbar)) @@ -41,18 +41,18 @@ /obj/structure/ore_box/proc/show_contents(mob/user) var/dat = text("The contents of the ore box reveal...
") - var/list/assembled = list() - for(var/obj/item/stack/ore/O in src) - assembled[O.type] += O.amount - for(var/type in assembled) - var/obj/item/stack/ore/O = type - dat += "[initial(O.name)] - [assembled[type]]" + var/list/oretypes = list() + for(var/obj/item/ore/O in contents) + oretypes |= O.type + for(var/i in oretypes) + var/obj/item/ore/T = locate(i) in contents + dat += "[capitalize(T.name)]: [count_by_type(contents, T.type)]
" dat += text("

Empty box") user << browse(dat, "window=orebox") /obj/structure/ore_box/proc/dump_box_contents() var/drop = drop_location() - for(var/obj/item/stack/ore/O in src) + for(var/obj/item/ore/O in src) if(QDELETED(O)) continue if(QDELETED(src)) @@ -69,7 +69,7 @@ return usr.set_machine(src) - add_fingerprint(usr) + src.add_fingerprint(usr) if(href_list["removeall"]) dump_box_contents() to_chat(usr, "You open the release hatch on the box..") diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index cc76984d789..2063238cd30 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -74,7 +74,7 @@ name = "Plasma Golem" id = "plasma golem" fixed_mut_color = "a3d" - meat = /obj/item/stack/ore/plasma + meat = /obj/item/ore/plasma //Can burn and takes damage from heat species_traits = list(SPECIES_INORGANIC,NOBREATH,RESISTCOLD,RESISTPRESSURE,NOGUNS,NOBLOOD,RADIMMUNE,PIERCEIMMUNE,NODISMEMBER,MUTCOLORS,NO_UNDERWEAR) info_text = "As a Plasma Golem, you burn easily. Be careful, if you get hot enough while burning, you'll blow up!" @@ -134,7 +134,7 @@ id = "diamond golem" fixed_mut_color = "0ff" armor = 70 //up from 55 - meat = /obj/item/stack/ore/diamond + meat = /obj/item/ore/diamond info_text = "As a Diamond Golem, you are more resistant than the average golem." prefix = "Diamond" special_names = list("Back") @@ -146,7 +146,7 @@ fixed_mut_color = "cc0" speedmod = 1 armor = 25 //down from 55 - meat = /obj/item/stack/ore/gold + meat = /obj/item/ore/gold info_text = "As a Gold Golem, you are faster but less resistant than the average golem." prefix = "Golden" @@ -156,7 +156,7 @@ id = "silver golem" fixed_mut_color = "ddd" punchstunthreshold = 9 //60% chance, from 40% - meat = /obj/item/stack/ore/silver + meat = /obj/item/ore/silver info_text = "As a Silver Golem, your attacks are heavier and have a higher chance of stunning." prefix = "Silver" special_names = list("Surfer", "Chariot", "Lining") @@ -171,7 +171,7 @@ punchdamagehigh = 21 punchstunthreshold = 18 //still 40% stun chance speedmod = 4 //pretty fucking slow - meat = /obj/item/stack/ore/iron + meat = /obj/item/ore/iron info_text = "As a Plasteel Golem, you are slower, but harder to stun, and hit very hard when punching." attack_verb = "smash" attack_sound = 'sound/effects/meteorimpact.ogg' //hits pretty hard @@ -182,7 +182,7 @@ name = "Titanium Golem" id = "titanium golem" fixed_mut_color = "fff" - meat = /obj/item/stack/ore/titanium + meat = /obj/item/ore/titanium info_text = "As a Titanium Golem, you are immune to ash storms, and slightly more resistant to burn damage." burnmod = 0.9 prefix = "Titanium" @@ -200,7 +200,7 @@ name = "Plastitanium Golem" id = "plastitanium golem" fixed_mut_color = "888" - meat = /obj/item/stack/ore/titanium + meat = /obj/item/ore/titanium info_text = "As a Plastitanium Golem, you are immune to both ash storms and lava, and slightly more resistant to burn damage." burnmod = 0.8 prefix = "Plastitanium" @@ -291,7 +291,7 @@ name = "Uranium Golem" id = "uranium golem" fixed_mut_color = "7f0" - meat = /obj/item/stack/ore/uranium + meat = /obj/item/ore/uranium info_text = "As an Uranium Golem, you emit radiation pulses every once in a while. It won't harm fellow golems, but organic lifeforms will be affected." var/last_event = 0 @@ -312,7 +312,7 @@ name = "Sand Golem" id = "sand golem" fixed_mut_color = "ffdc8f" - meat = /obj/item/stack/ore/glass //this is sand + meat = /obj/item/ore/glass //this is sand armor = 0 burnmod = 3 //melts easily brutemod = 0.25 @@ -325,7 +325,7 @@ for(var/obj/item/W in H) H.dropItemToGround(W) for(var/i=1, i <= rand(3,5), i++) - new /obj/item/stack/ore/glass(get_turf(H)) + new /obj/item/ore/glass(get_turf(H)) qdel(H) /datum/species/golem/sand/bullet_act(obj/item/projectile/P, mob/living/carbon/human/H) @@ -378,7 +378,7 @@ name = "Bluespace Golem" id = "bluespace golem" fixed_mut_color = "33f" - meat = /obj/item/stack/ore/bluespace_crystal + meat = /obj/item/ore/bluespace_crystal info_text = "As a Bluespace Golem, are spatially unstable: you will teleport when hit, and you can teleport manually at a long distance." attack_verb = "bluespace punch" attack_sound = 'sound/effects/phasein.ogg' @@ -475,7 +475,7 @@ punchdamagelow = 0 punchdamagehigh = 1 punchstunthreshold = 2 //Harmless and can't stun - meat = /obj/item/stack/ore/bananium + meat = /obj/item/ore/bananium info_text = "As a Bananium Golem, you are made for pranking. Your body emits natural honks, and you cannot hurt people when punching them. Your skin also emits bananas when damaged." attack_verb = "honk" attack_sound = 'sound/items/airhorn2.ogg' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index fc41b786836..fe6e7f7974d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -48,7 +48,7 @@ Difficulty: Very Hard score_type = COLOSSUS_SCORE crusher_loot = list(/obj/structure/closet/crate/necropolis/colossus/crusher) loot = list(/obj/structure/closet/crate/necropolis/colossus) - butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) + butcher_results = list(/obj/item/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) deathmessage = "disintegrates, leaving a glowing core in its wake." death_sound = 'sound/magic/demon_dies.ogg' @@ -113,7 +113,7 @@ Difficulty: Very Hard /mob/living/simple_animal/hostile/megafauna/colossus/bullet_act(obj/item/projectile/P) if(!stat) - var/obj/effect/temp_visual/at_shield/AT = new /obj/effect/temp_visual/at_shield(loc, src) + var/obj/effect/temp_visual/at_shield/AT = new /obj/effect/temp_visual/at_shield(src.loc, src) var/random_x = rand(-32, 32) AT.pixel_x += random_x diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm index db394842a19..a535cc5b488 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/dragon.dm @@ -54,7 +54,7 @@ Difficulty: Medium pixel_x = -16 crusher_loot = list(/obj/structure/closet/crate/necropolis/dragon/crusher) loot = list(/obj/structure/closet/crate/necropolis/dragon) - butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) + butcher_results = list(/obj/item/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/animalhide/ashdrake = 10, /obj/item/stack/sheet/bone = 30) var/swooping = NONE var/swoop_cooldown = 0 medal_type = MEDAL_PREFIX @@ -238,7 +238,7 @@ Difficulty: Medium swooping &= ~SWOOP_INVULNERABLE mouse_opacity = initial(mouse_opacity) icon_state = "dragon" - playsound(loc, 'sound/effects/meteorimpact.ogg', 200, 1) + playsound(src.loc, 'sound/effects/meteorimpact.ogg', 200, 1) for(var/mob/living/L in orange(1, src)) if(L.stat) visible_message("[src] slams down on [L], crushing them!") @@ -383,7 +383,7 @@ Difficulty: Medium damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) loot = list() crusher_loot = list() - butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) + butcher_results = list(/obj/item/ore/diamond = 5, /obj/item/stack/sheet/sinew = 5, /obj/item/stack/sheet/bone = 30) /mob/living/simple_animal/hostile/megafauna/dragon/lesser/grant_achievement(medaltype,scoretype) return diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm index 759c9a7f8b4..9dd6a629459 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm @@ -31,8 +31,8 @@ idle_vision_range = 2 turns_per_move = 5 gold_core_spawnable = HOSTILE_SPAWN - loot = list(/obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER}, - /obj/item/stack/ore/diamond{layer = ABOVE_MOB_LAYER}) + loot = list(/obj/item/ore/diamond{layer = ABOVE_MOB_LAYER}, + /obj/item/ore/diamond{layer = ABOVE_MOB_LAYER}) /obj/item/projectile/temp/basilisk name = "freezing blast" @@ -79,7 +79,7 @@ robust_searching = 1 crusher_loot = /obj/item/crusher_trophy/watcher_wing loot = list() - butcher_results = list(/obj/item/stack/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) + butcher_results = list(/obj/item/ore/diamond = 2, /obj/item/stack/sheet/sinew = 2, /obj/item/stack/sheet/bone = 1) /mob/living/simple_animal/hostile/asteroid/basilisk/watcher/random/Initialize() . = ..() @@ -116,7 +116,7 @@ maxHealth = 170 health = 170 projectiletype = /obj/item/projectile/temp/basilisk/icewing - butcher_results = list(/obj/item/stack/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) //No sinew; the wings are too fragile to be usable + butcher_results = list(/obj/item/ore/diamond = 5, /obj/item/stack/sheet/bone = 1) //No sinew; the wings are too fragile to be usable crusher_loot = /obj/item/crusher_trophy/watcher_wing/ice_wing crusher_drop_mod = 30 diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm index 0c59a576d90..85329c76ec6 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/goldgrub.dm @@ -26,8 +26,8 @@ deathmessage = "spits up the contents of its stomach before dying!" status_flags = CANPUSH search_objects = 1 - wanted_objects = list(/obj/item/stack/ore/diamond, /obj/item/stack/ore/gold, /obj/item/stack/ore/silver, - /obj/item/stack/ore/uranium) + wanted_objects = list(/obj/item/ore/diamond, /obj/item/ore/gold, /obj/item/ore/silver, + /obj/item/ore/uranium) var/chase_time = 100 var/will_burrow = TRUE @@ -36,44 +36,42 @@ . = ..() var/i = rand(1,3) while(i) - loot += pick(/obj/item/stack/ore/silver, /obj/item/stack/ore/gold, /obj/item/stack/ore/uranium, /obj/item/stack/ore/diamond) + loot += pick(/obj/item/ore/silver, /obj/item/ore/gold, /obj/item/ore/uranium, /obj/item/ore/diamond) i-- /mob/living/simple_animal/hostile/asteroid/goldgrub/GiveTarget(new_target) target = new_target if(target != null) - if(istype(target, /obj/item/stack/ore) && loot.len < 10) - visible_message("The [name] looks at [target.name] with hungry eyes.") + if(istype(target, /obj/item/ore) && loot.len < 10) + visible_message("The [src.name] looks at [target.name] with hungry eyes.") else if(isliving(target)) Aggro() - visible_message("The [name] tries to flee from [target.name]!") + visible_message("The [src.name] tries to flee from [target.name]!") retreat_distance = 10 minimum_distance = 10 if(will_burrow) addtimer(CALLBACK(src, .proc/Burrow), chase_time) /mob/living/simple_animal/hostile/asteroid/goldgrub/AttackingTarget() - if(istype(target, /obj/item/stack/ore)) + if(istype(target, /obj/item/ore)) EatOre(target) return return ..() /mob/living/simple_animal/hostile/asteroid/goldgrub/proc/EatOre(atom/targeted_ore) - for(var/obj/item/stack/ore/O in get_turf(targeted_ore)) - if(length(loot) < 10) - var/using = min(10 - length(loot), O.amount) - for(var/i in 1 to using) - loot += O.type - O.use(using) + for(var/obj/item/ore/O in targeted_ore.loc) + if(loot.len < 10) + loot += O.type + qdel(O) visible_message("The ore was swallowed whole!") /mob/living/simple_animal/hostile/asteroid/goldgrub/proc/Burrow()//Begin the chase to kill the goldgrub in time if(!stat) - visible_message("The [name] buries into the ground, vanishing from sight!") + visible_message("The [src.name] buries into the ground, vanishing from sight!") qdel(src) /mob/living/simple_animal/hostile/asteroid/goldgrub/bullet_act(obj/item/projectile/P) - visible_message("The [P.name] was repelled by [name]'s girth!") + visible_message("The [P.name] was repelled by [src.name]'s girth!") return /mob/living/simple_animal/hostile/asteroid/goldgrub/adjustHealth(amount, updating_health = TRUE, forced = FALSE) diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 91211a18253..06bda36c664 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -140,9 +140,8 @@ S.use(1) cell.give(1000) to_chat(user, "You insert [A] in [src], recharging it.") - else if(istype(A, /obj/item/stack/ore/plasma)) - var/obj/item/stack/ore/S = A - S.use(1) + else if(istype(A, /obj/item/ore/plasma)) + qdel(A) cell.give(500) to_chat(user, "You insert [A] in [src], recharging it.") else diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index df4359b555f..77fcd50306a 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -31,7 +31,7 @@ /obj/item/stack/sheet/mineral/gold = list("gold" = 20), /obj/item/stack/sheet/bluespace_crystal = list("bluespace" = 20), /obj/item/stack/cable_coil = list ("copper" = 5), - /obj/item/stack/ore/bluespace_crystal = list("bluespace" = 20), + /obj/item/ore/bluespace_crystal = list("bluespace" = 20), /obj/item/grown/nettle/basic = list("sacid" = 0), /obj/item/grown/nettle/death = list("facid" = 0, "sacid" = 0), /obj/item/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0), @@ -261,7 +261,7 @@ var/datum/browser/popup = new(user, "reagentgrinder", "All-In-One Grinder") popup.set_content(dat) - popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) + popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state)) popup.open(1) return diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 19b9775e49b..9321c6b0158 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -1100,7 +1100,7 @@ All effects don't start immediately, but rather get worse over time; the rate is /datum/reagent/consumable/ethanol/fetching_fizz/on_mob_life(mob/living/M) - for(var/obj/item/stack/ore/O in orange(3, M)) + for(var/obj/item/ore/O in orange(3, M)) step_towards(O, get_turf(M)) return ..() diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm index e11ca963daa..f3143e11937 100644 --- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm +++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm @@ -517,7 +517,7 @@ required_other = 1 /datum/chemical_reaction/slime/slimecrystal/on_reaction(datum/reagents/holder, created_volume) - var/obj/item/stack/ore/bluespace_crystal/BC = new (get_turf(holder.my_atom)) + var/obj/item/ore/bluespace_crystal/BC = new (get_turf(holder.my_atom)) BC.visible_message("The [BC.name] appears out of thin air!") ..() diff --git a/code/modules/research/circuitprinter.dm b/code/modules/research/circuitprinter.dm index 79a6a55255f..ab981a018b1 100644 --- a/code/modules/research/circuitprinter.dm +++ b/code/modules/research/circuitprinter.dm @@ -33,7 +33,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). /obj/machinery/rnd/circuit_imprinter/Initialize() materials = AddComponent(/datum/component/material_container, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND, MAT_METAL, MAT_BLUESPACE), - FALSE, list(/obj/item/stack), CALLBACK(src, .proc/is_insertion_ready)) + FALSE, list(/obj/item/stack, /obj/item/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready)) materials.precise_insertion = TRUE create_reagents(0) return ..() @@ -89,7 +89,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis). return var/lit = M.last_inserted_type var/stack_name - if(ispath(lit, /obj/item/stack/ore/bluespace_crystal)) + if(ispath(lit, /obj/item/ore/bluespace_crystal)) stack_name = "bluespace" use_power(MINERAL_MATERIAL_AMOUNT / 10) else diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index f5170066e29..0ec15ac0378 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -30,7 +30,7 @@ id = "bluespace_crystal" build_type = PROTOLATHE materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500) - build_path = /obj/item/stack/ore/bluespace_crystal/artificial + build_path = /obj/item/ore/bluespace_crystal/artificial category = list("Bluespace Designs") departmental_flags = DEPARTMENTAL_FLAG_SCIENCE diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 425cfc2943d..10476b55a0b 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -37,7 +37,7 @@ Note: Must be placed west/left of and R&D console to function. create_reagents(0) materials = AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM, MAT_BLUESPACE), - FALSE, list(/obj/item/stack, /obj/item/stack/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready)) + FALSE, list(/obj/item/stack, /obj/item/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready)) materials.precise_insertion = TRUE return ..() @@ -88,13 +88,13 @@ Note: Must be placed west/left of and R&D console to function. return var/lit = M.last_inserted_type var/stack_name - if(ispath(lit, /obj/item/stack/ore/bluespace_crystal)) + if(ispath(lit, /obj/item/ore/bluespace_crystal)) stack_name = "bluespace" - use_power(min(1000, MINERAL_MATERIAL_AMOUNT * M.last_amount_inserted / 10)) + use_power(MINERAL_MATERIAL_AMOUNT / 10) else var/obj/item/stack/S = lit stack_name = initial(S.name) - use_power(min(1000, (MINERAL_MATERIAL_AMOUNT * M.last_amount_inserted / 10))) + use_power(max(1000, (MINERAL_MATERIAL_AMOUNT * M.last_amount_inserted / 10))) add_overlay("protolathe_[stack_name]") addtimer(CALLBACK(src, /atom/proc/cut_overlay, "protolathe_[stack_name]"), 10) @@ -148,6 +148,6 @@ Note: Must be placed west/left of and R&D console to function. message_admins("[ADMIN_LOOKUPFLW(usr)] has built [amount] of [path] at a protolathe") for(var/i in 1 to amount) var/obj/item/I = new path(get_turf(src)) - if(!istype(I, /obj/item/stack/sheet) && !istype(I, /obj/item/stack/ore/bluespace_crystal)) + if(!istype(I, /obj/item/stack/sheet) && !istype(I, /obj/item/ore/bluespace_crystal)) I.materials = matlist.Copy() SSblackbox.record_feedback("nested_tally", "item_printed", amount, list("[type]", "[path]")) diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index 01fb84deefb..da070e618c6 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ