diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index a7011f92e4a..2f782d2fc3e 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -262,6 +262,7 @@ #define MAT_URANIUM "$uranium" #define MAT_PLASMA "$plasma" #define MAT_BANANIUM "$bananium" +#define MAT_TITANIUM "$titanium" //check_target_facings() return defines diff --git a/code/datums/material_container.dm b/code/datums/material_container.dm index 4dfbd4a886d..e299c42ab48 100644 --- a/code/datums/material_container.dm +++ b/code/datums/material_container.dm @@ -26,7 +26,6 @@ for(var/mat_type in subtypesof(/datum/material)) var/datum/material/MT = mat_type possible_mats[initial(MT.id)] = mat_type - for(var/id in mat_list) if(possible_mats[id]) var/mat_path = possible_mats[id] @@ -264,3 +263,8 @@ id = MAT_BANANIUM sheet_type = /obj/item/stack/sheet/mineral/bananium coin_type = /obj/item/weapon/coin/clown + +/datum/material/titanium + name = "Titanium" + id = MAT_TITANIUM + sheet_type = /obj/item/stack/sheet/mineral/titanium \ No newline at end of file diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index c5206dd8ebc..a8b26f151c1 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -20,7 +20,7 @@ var/const/SAFETY_COOLDOWN = 100 /obj/machinery/recycler/New() ..() - materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM)) + materials = new /datum/material_container(src, list(MAT_METAL, MAT_GLASS, MAT_PLASMA, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM)) var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/recycler(null) B.apply_default_parts(src) update_icon() diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index bbfb0fe0140..ba41b294f60 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -10,6 +10,8 @@ Mineral Sheets - Gold - Silver - Clown + - Titanium + - Plastitanium Others: - Adamantine - Mythril @@ -237,6 +239,60 @@ var/global/list/datum/stack_recipe/clown_recipes = list ( \ pixel_y = rand(0,4)-4 ..() +/* + * Titanium + */ +/obj/item/stack/sheet/mineral/titanium + name = "titanium" + icon_state = "sheet-titanium" + singular_name = "titanium sheet" + force = 5 + throwforce = 5 + w_class = 3 + throw_speed = 1 + throw_range = 3 + origin_tech = "materials=4" + sheettype = "titanium" + materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) + +var/global/list/datum/stack_recipe/titanium_recipes = list ( \ + new/datum/stack_recipe("titanium tile", /obj/item/stack/tile/mineral/titanium, 1, 4, 20), \ + ) + +/obj/item/stack/sheet/mineral/titanium/New(var/loc, var/amount=null) + recipes = titanium_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + + +/* + * Plastitanium + */ +/obj/item/stack/sheet/mineral/plastitanium + name = "plastitanium" + icon_state = "sheet-plastitanium" + singular_name = "plastitanium sheet" + force = 5 + throwforce = 5 + w_class = 3 + throw_speed = 1 + throw_range = 3 + origin_tech = "materials=4" + sheettype = "plastitanium" + materials = list(MAT_TITANIUM=6000, MAT_PLASMA=6000) + +var/global/list/datum/stack_recipe/plastitanium_recipes = list ( \ + new/datum/stack_recipe("plas-titanium tile", /obj/item/stack/tile/mineral/plastitanium, 1, 4, 20), \ + ) + +/obj/item/stack/sheet/mineral/plastitanium/New(var/loc, var/amount=null) + recipes = plastitanium_recipes + pixel_x = rand(0,4)-4 + pixel_y = rand(0,4)-4 + ..() + + /* * Snow */ diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index 759952b9f3a..e9b4a0385d1 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -63,3 +63,23 @@ origin_tech = "materials=6;abductor=1" turf_type = /turf/open/floor/mineral/abductor mineralType = "abductor" + +/obj/item/stack/tile/mineral/titanium + name = "titanium tile" + singular_name = "titanium floor tile" + desc = "A tile made of titanium, used for shuttles." + icon_state = "tile_shuttle" + origin_tech = "materials=2" + turf_type = /turf/open/floor/mineral/titanium + mineralType = "titanium" + materials = list(MAT_TITANIUM=500) + +/obj/item/stack/tile/mineral/plastitanium + name = "plas-titanium tile" + singular_name = "plas-titanium floor tile" + desc = "A tile made of plas-titanium, used for very evil shuttles." + icon_state = "tile_darkshuttle" + origin_tech = "materials=2" + turf_type = /turf/open/floor/mineral/plastitanium + mineralType = "plastitanium" + materials = list(MAT_TITANIUM=250, MAT_PLASMA=250) \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/syndicate.dm b/code/game/objects/structures/crates_lockers/closets/syndicate.dm index 6eb521f1eb3..637df32ab18 100644 --- a/code/game/objects/structures/crates_lockers/closets/syndicate.dm +++ b/code/game/objects/structures/crates_lockers/closets/syndicate.dm @@ -78,6 +78,14 @@ if(pickednum >= 40) new /obj/item/stack/sheet/mineral/uranium(src, rand(rare_min, rare_max)) + //Titanium (rare ore) + if(pickednum >= 40) + new /obj/item/stack/sheet/mineral/titanium(src, rand(rare_min, rare_max)) + + //Plastitanium (rare ore) + if(pickednum >= 40) + new /obj/item/stack/sheet/mineral/plastitanium(src, rand(rare_min, rare_max)) + //Diamond (rare HONK) if(pickednum >= 45) new /obj/item/stack/sheet/mineral/diamond(src, rand(rare_min, rare_max)) @@ -104,6 +112,8 @@ /obj/item/stack/sheet/mineral/diamond, /obj/item/stack/sheet/mineral/bananium, /obj/item/stack/sheet/plasteel, + /obj/item/stack/sheet/mineral/titanium, + /obj/item/stack/sheet/mineral/plastitanium, /obj/item/stack/rods ) diff --git a/code/game/turfs/simulated/floor/mineral_floor.dm b/code/game/turfs/simulated/floor/mineral_floor.dm index ca63f210d1f..772b2dc0fa7 100644 --- a/code/game/turfs/simulated/floor/mineral_floor.dm +++ b/code/game/turfs/simulated/floor/mineral_floor.dm @@ -6,6 +6,7 @@ * Bananium floor * Diamond floor * Uranium floor + * Shuttle floor (Titanium) */ /turf/open/floor/mineral @@ -71,6 +72,21 @@ floor_tile = /obj/item/stack/tile/mineral/silver icons = list("silver","silver_dam") +//TITANIUM (shuttle) + +/turf/open/floor/mineral/titanium + name = "shuttle floor" + icon_state = "shuttlefloor3" + floor_tile = /obj/item/stack/tile/mineral/titanium + icons = list("shuttlefloor3","shuttle_dam") + +//PLASTITANIUM (syndieshuttle) +/turf/open/floor/mineral/plastitanium + name = "shuttle floor" + icon_state = "shuttlefloor4" + floor_tile = /obj/item/stack/tile/mineral/plastitanium + icons = list("shuttlefloor4","shuttle_dam") + //BANANIUM /turf/open/floor/mineral/bananium diff --git a/code/game/turfs/simulated/floor/plasteel_floor.dm b/code/game/turfs/simulated/floor/plasteel_floor.dm index 7385865445e..2ed73c70404 100644 --- a/code/game/turfs/simulated/floor/plasteel_floor.dm +++ b/code/game/turfs/simulated/floor/plasteel_floor.dm @@ -290,9 +290,11 @@ /turf/open/floor/plasteel/shuttle icon_state = "shuttlefloor" + floor_tile = /obj/item/stack/tile/mineral/titanium //old shuttle floors so i don't have to change the map paths in this pr /turf/open/floor/plasteel/shuttle/red name = "Brig floor" icon_state = "shuttlefloor4" + floor_tile = /obj/item/stack/tile/mineral/plastitanium /turf/open/floor/plasteel/shuttle/yellow icon_state = "shuttlefloor2" /turf/open/floor/plasteel/shuttle/white diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index 276964e52a5..5e59d4fcdfa 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -188,3 +188,58 @@ slicing_duration = 200 //alien wall takes twice as much time to slice explosion_block = 3 canSmoothWith = list(/turf/closed/wall/mineral/abductor, /obj/structure/falsewall/abductor) + +/turf/closed/wall/shuttle //nosmoothing shuttle walls + name = "wall" + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall" + walltype = "shuttle" + sheet_type = /obj/item/stack/sheet/mineral/titanium + smooth = SMOOTH_FALSE + +/turf/closed/wall/mineral/titanium //has to use this path due to how building walls works + name = "wall" + icon = 'icons/turf/walls/shuttle_wall.dmi' + icon_state = "shuttle" + walltype = "shuttle" + sheet_type = /obj/item/stack/sheet/mineral/titanium + smooth = SMOOTH_MORE|SMOOTH_DIAGONAL + canSmoothWith = list(/turf/closed/wall/mineral/titanium, /turf/closed/wall/shuttle, /obj/structure/window/shuttle, /obj/structure/shuttle/engine) + +/turf/closed/wall/mineral/titanium/nodiagonal + smooth = SMOOTH_MORE + icon_state = "shuttle_nd" + +/turf/closed/wall/mineral/titanium/overspace + icon_state = "overspace" + fixed_underlay = list("space"=1) + +//sub-type to be used for interior shuttle walls +//won't get an underlay of the destination turf on shuttle move +/turf/closed/wall/shuttle/interior/copyTurf(turf/T) + if(T.type != type) + T.ChangeTurf(type) + if(underlays.len) + T.underlays = underlays + if(T.icon_state != icon_state) + T.icon_state = icon_state + if(T.icon != icon) + T.icon = icon + if(T.color != color) + T.color = color + if(T.dir != dir) + T.dir = dir + T.transform = transform + return T + +/turf/closed/wall/shuttle/copyTurf(turf/T) + . = ..() + T.transform = transform + +/turf/closed/wall/mineral/plastitanium + name = "wall" + walltype = "syndieshuttle" + icon = 'icons/turf/shuttle.dmi' + icon_state = "wall3" + sheet_type = /obj/item/stack/sheet/mineral/plastitanium + smooth = SMOOTH_FALSE \ No newline at end of file diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm index bba9283402b..773d781ddaa 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/walls_misc.dm @@ -160,11 +160,17 @@ walltype = "shuttle" smooth = SMOOTH_FALSE +/turf/closed/wall/shuttle/syndie + icon_state = "wall3" + walltype = "syndieshuttle" + sheet_type = /obj/item/stack/sheet/mineral/plastitanium + /turf/closed/wall/shuttle/smooth name = "wall" icon = 'icons/turf/walls/shuttle_wall.dmi' icon_state = "shuttle" walltype = "shuttle" + sheet_type = /obj/item/stack/sheet/mineral/titanium smooth = SMOOTH_MORE|SMOOTH_DIAGONAL canSmoothWith = list(/turf/closed/wall/shuttle/smooth, /obj/structure/window/shuttle, /obj/structure/shuttle, /obj/machinery/door/airlock/glass, /obj/machinery/door/airlock/shuttle) @@ -198,11 +204,3 @@ . = ..() T.transform = transform - -//why don't shuttle walls habe smoothwall? now i gotta do rotation the dirty way <- DOUBLE GOOFBALL FOR NOT CALLING PARENT -/turf/closed/wall/shuttle/shuttleRotate(rotation) - if(smooth) - return ..() - var/matrix/M = transform - M.Turn(rotation) - transform = M diff --git a/code/modules/cargo/exports/materials.dm b/code/modules/cargo/exports/materials.dm index 444ee09f3d3..ad1f6a01d9b 100644 --- a/code/modules/cargo/exports/materials.dm +++ b/code/modules/cargo/exports/materials.dm @@ -73,6 +73,12 @@ material_id = MAT_SILVER message = "cm3 of silver" +// Titanium. +/datum/export/material/titanium + cost = 250 + material_id = MAT_TITANIUM + message = "cm3 of titanium" + // Metal. Common building material. /datum/export/material/metal message = "cm3 of metal" diff --git a/code/modules/mining/machine_processing.dm b/code/modules/mining/machine_processing.dm index 43e0b8cac4d..d2357687489 100644 --- a/code/modules/mining/machine_processing.dm +++ b/code/modules/mining/machine_processing.dm @@ -26,83 +26,93 @@ if(machine.ore_iron || machine.ore_glass || machine.ore_plasma || machine.ore_uranium || machine.ore_gold || machine.ore_silver || machine.ore_diamond || machine.ore_clown || machine.ore_adamantine) if(machine.ore_iron) if (machine.selected_iron==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Iron: [machine.ore_iron]
") + dat += "Not smelting " + dat += "Iron: [machine.ore_iron]
" else machine.selected_iron = 0 //sand - glass if(machine.ore_glass) if (machine.selected_glass==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Sand: [machine.ore_glass]
") + dat += "Not smelting " + dat += "Sand: [machine.ore_glass]
" else machine.selected_glass = 0 //plasma if(machine.ore_plasma) if (machine.selected_plasma==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Plasma: [machine.ore_plasma]
") + dat += "Not smelting " + dat += "Plasma: [machine.ore_plasma]
" else machine.selected_plasma = 0 //uranium if(machine.ore_uranium) if (machine.selected_uranium==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Uranium: [machine.ore_uranium]
") + dat += "Not smelting " + dat += "Uranium: [machine.ore_uranium]
" else machine.selected_uranium = 0 //gold if(machine.ore_gold) if (machine.selected_gold==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Gold: [machine.ore_gold]
") + dat += "Not smelting " + dat += "Gold: [machine.ore_gold]
" else machine.selected_gold = 0 //silver if(machine.ore_silver) if (machine.selected_silver==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Silver: [machine.ore_silver]
") + dat += "Not smelting " + dat += "Silver: [machine.ore_silver]
" else machine.selected_silver = 0 //diamond if(machine.ore_diamond) if (machine.selected_diamond==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Diamond: [machine.ore_diamond]
") + dat += "Not smelting " + dat += "Diamond: [machine.ore_diamond]
" else machine.selected_diamond = 0 //bananium if(machine.ore_clown) if (machine.selected_clown==1) - dat += text("Smelting ") + dat += "Smelting " else - dat += text("Not smelting ") - dat += text("Bananium: [machine.ore_clown]
") + dat += "Not smelting " + dat += "Bananium: [machine.ore_clown]
" else machine.selected_clown = 0 + //titanium + if(machine.ore_titanium) + if (machine.selected_titanium==1) + dat += "Smelting " + else + dat += "Not smelting " + dat += "Titanium: [machine.ore_titanium]
" + else + machine.selected_titanium = 0 + //On or off dat += text("Machine is currently ") @@ -163,6 +173,11 @@ machine.selected_clown = 1 else machine.selected_clown = 0 + if(href_list["sel_titanium"]) + if (href_list["sel_titanium"] == "yes") + machine.selected_titanium = 1 + else + machine.selected_titanium = 0 if(href_list["set_on"]) if (href_list["set_on"] == "on") machine.on = 1 @@ -190,6 +205,7 @@ var/ore_iron = 0; var/ore_clown = 0; var/ore_adamantine = 0; + var/ore_titanium = 0; var/selected_gold = 0 var/selected_silver = 0 var/selected_diamond = 0 @@ -198,86 +214,102 @@ var/selected_uranium = 0 var/selected_iron = 0 var/selected_clown = 0 + var/selected_titanium = 0 var/on = 0 //0 = off, 1 =... oh you know! /obj/machinery/mineral/processing_unit/process() - var/i - for (i = 0; i < 10; i++) + for(var/i in 1 to 10) if (on) - if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_glass > 0) - ore_glass--; + ore_glass-- generate_mineral(/obj/item/stack/sheet/glass) else on = 0 continue - if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_titanium) if (ore_glass > 0 && ore_iron > 0) - ore_glass--; - ore_iron--; + ore_glass-- + ore_iron-- generate_mineral(/obj/item/stack/sheet/rglass) else on = 0 continue - if (selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_gold > 0) - ore_gold--; + ore_gold-- generate_mineral(/obj/item/stack/sheet/mineral/gold) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && !selected_gold && selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_silver > 0) - ore_silver--; + ore_silver-- generate_mineral(/obj/item/stack/sheet/mineral/silver) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_diamond > 0) - ore_diamond--; + ore_diamond-- generate_mineral(/obj/item/stack/sheet/mineral/diamond) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_plasma > 0) - ore_plasma--; + ore_plasma-- generate_mineral(/obj/item/stack/sheet/mineral/plasma) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && selected_uranium && !selected_iron && !selected_clown && !selected_titanium) if (ore_uranium > 0) - ore_uranium--; + ore_uranium-- generate_mineral(/obj/item/stack/sheet/mineral/uranium) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_titanium) if (ore_iron > 0) - ore_iron--; + ore_iron-- generate_mineral(/obj/item/stack/sheet/metal) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && selected_iron && !selected_clown && !selected_titanium) if (ore_iron > 0 && ore_plasma > 0) - ore_iron--; - ore_plasma--; + ore_iron-- + ore_plasma-- generate_mineral(/obj/item/stack/sheet/plasteel) else on = 0 continue - if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 1) + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && selected_clown && !selected_titanium) if (ore_clown > 0) - ore_clown--; + ore_clown-- generate_mineral(/obj/item/stack/sheet/mineral/bananium) else on = 0 continue + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && !selected_plasma && !selected_uranium && !selected_iron && !selected_clown && selected_titanium) + if (ore_titanium > 0) + ore_titanium-- + generate_mineral(/obj/item/stack/sheet/mineral/titanium) + else + on = 0 + continue + if (!selected_glass && !selected_gold && !selected_silver && !selected_diamond && selected_plasma && !selected_uranium && !selected_iron && !selected_clown && selected_titanium) + if (ore_titanium > 0) + ore_titanium-- + ore_plasma-- + generate_mineral(/obj/item/stack/sheet/mineral/plastitanium) + else + on = 0 + continue //THESE TWO ARE CODED FOR URIST TO USE WHEN HE GETS AROUND TO IT. //They were coded on 18 Feb 2012. If you're reading this in 2015, then firstly congratulations on the world not ending on 21 Dec 2012 and secondly, Urist is apparently VERY lazy. ~Errorage + //Even in the dark year of 2016, where /tg/ is dead, Urist still hasn't finished this -Bawhoppennn /*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0) if (ore_uranium >= 2 && ore_diamond >= 1) ore_uranium -= 2 @@ -395,4 +427,4 @@ /obj/machinery/mineral/processing_unit/proc/generate_mineral(P) var/O = new P(src) - unload_mineral(O) \ No newline at end of file + unload_mineral(O) diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 181d50a87e0..0d067eeb2b1 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -19,7 +19,7 @@ var/ore_pickup_rate = 15 var/sheet_per_ore = 1 var/point_upgrade = 1 - var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bluespace crystal" = 50), ("bananium" = 60)) + var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("titanium" = 30), ("uranium" = 30), ("diamond" = 50), ("bluespace crystal" = 50), ("bananium" = 60)) speed_process = 1 /obj/machinery/mineral/ore_redemption/New() @@ -30,7 +30,7 @@ /obj/item/weapon/circuitboard/machine/ore_redemption name = "circuit board (Ore Redemption)" build_path = /obj/machinery/mineral/ore_redemption - origin_tech = "programming=2;engineering=2;plasmatech=3" + origin_tech = "programming=1;engineering=2" req_components = list( /obj/item/weapon/stock_parts/console_screen = 1, /obj/item/weapon/stock_parts/matter_bin = 1, @@ -98,6 +98,17 @@ D.createmessage("Ore Redemption Machine", "New minerals available!", msg, 1, 0) /obj/machinery/mineral/ore_redemption/attackby(obj/item/weapon/W, mob/user, params) + if (!powered()) + return + if(istype(W,/obj/item/weapon/card/id)) + var/obj/item/weapon/card/id/I = user.get_active_hand() + if(istype(I) && !istype(inserted_id)) + if(!user.drop_item()) + return + I.forceMove(src) + inserted_id = I + interact(user) + return if(exchange_parts(user, W)) return @@ -112,17 +123,6 @@ if(default_deconstruction_crowbar(W)) return - if (!powered()) - return - if(istype(W,/obj/item/weapon/card/id)) - var/obj/item/weapon/card/id/I = user.get_active_hand() - if(istype(I) && !istype(inserted_id)) - if(!user.drop_item()) - return - I.loc = src - inserted_id = I - interact(user) - return return ..() /obj/machinery/mineral/ore_redemption/deconstruction() @@ -161,12 +161,22 @@ dat += "
" //just looks nicer dat += text("[capitalize(s.name)]: [s.amount] Release
") - if((/obj/item/stack/sheet/metal in stack_list) && (/obj/item/stack/sheet/mineral/plasma in stack_list)) - var/obj/item/stack/sheet/metalstack = stack_list[/obj/item/stack/sheet/metal] - var/obj/item/stack/sheet/plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma] - if(min(metalstack.amount, plasmastack.amount)) - dat += text("Plasteel Alloy (Metal + Plasma): Smelt
") + var/obj/item/stack/sheet/metalstack + if(/obj/item/stack/sheet/metal in stack_list) + metalstack = stack_list[/obj/item/stack/sheet/metal] + var/obj/item/stack/sheet/plasmastack + if((/obj/item/stack/sheet/mineral/plasma in stack_list)) + plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma] + + var/obj/item/stack/sheet/mineral/titaniumstack + if((/obj/item/stack/sheet/mineral/titanium in stack_list)) + titaniumstack = stack_list[/obj/item/stack/sheet/mineral/titanium] + + if(metalstack && plasmastack && min(metalstack.amount, plasmastack.amount)) + dat += text("Plasteel Alloy (Metal + Plasma): Smelt
") + if(titaniumstack && plasmastack && min(titaniumstack.amount, plasmastack.amount)) + dat += text("Plastitanium Alloy (Titanium + Plasma): Smelt
") dat += text("
Mineral Value List:
[get_ore_values()]
") var/datum/browser/popup = new(user, "console_stacking_machine", "Ore Redemption Machine", 400, 500) @@ -219,20 +229,22 @@ stack_list -= text2path(href_list["release"]) else usr << "Required access not found." - if(href_list["plasteel"]) + if(href_list["alloytype1"] && href_list["alloytype2"] && href_list["alloytypeout"]) + var/alloytype1 = text2path(href_list["alloytype1"]) + var/alloytype2 = text2path(href_list["alloytype2"]) + var/alloytypeout = text2path(href_list["alloytypeout"]) if(check_access(inserted_id) || allowed(usr)) - if(!(/obj/item/stack/sheet/metal in stack_list)) return - if(!(/obj/item/stack/sheet/mineral/plasma in stack_list)) return - var/obj/item/stack/sheet/metalstack = stack_list[/obj/item/stack/sheet/metal] - var/obj/item/stack/sheet/plasmastack = stack_list[/obj/item/stack/sheet/mineral/plasma] - + if(!(alloytype1 in stack_list)) return + if(!(alloytype2 in stack_list)) return + var/obj/item/stack/sheet/stack1 = stack_list[alloytype1] + var/obj/item/stack/sheet/stack2 = stack_list[alloytype2] var/desired = input("How much?", "How much would you like to smelt?", 1) as num - var/obj/item/stack/sheet/plasteel/plasteelout = new - plasteelout.amount = round(min(desired,50,metalstack.amount,plasmastack.amount)) - if(plasteelout.amount >= 1) - metalstack.amount -= plasteelout.amount - plasmastack.amount -= plasteelout.amount - unload_mineral(plasteelout) + var/obj/item/stack/sheet/alloyout = new alloytypeout + alloyout.amount = round(min(desired,50,stack1.amount,stack2.amount)) + if(alloyout.amount >= 1) + stack1.amount -= alloyout.amount + stack2.amount -= alloyout.amount + unload_mineral(alloyout) else usr << "Required access not found." updateUsrDialog() diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 264fb6a868e..6aad2993f11 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -61,7 +61,7 @@ /turf/closed/mineral/random var/mineralSpawnChanceList = list( /turf/closed/mineral/uranium = 5, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 10, - /turf/closed/mineral/silver = 12, /turf/closed/mineral/plasma = 20, /turf/closed/mineral/iron = 40, + /turf/closed/mineral/silver = 12, /turf/closed/mineral/plasma = 20, /turf/closed/mineral/iron = 40, /turf/closed/mineral/titanium = 10, /turf/closed/mineral/gibtonite = 4, /turf/open/floor/plating/asteroid/airless/cave = 2, /turf/closed/mineral/bscrystal = 1) //Currently, Adamantine won't spawn as it has no uses. -Durandan var/mineralChance = 13 @@ -86,7 +86,7 @@ icon_state = "rock_highchance" mineralChance = 25 mineralSpawnChanceList = list( - /turf/closed/mineral/uranium = 35, /turf/closed/mineral/diamond = 30, /turf/closed/mineral/gold = 45, + /turf/closed/mineral/uranium = 35, /turf/closed/mineral/diamond = 30, /turf/closed/mineral/gold = 45, /turf/closed/mineral/titanium = 40, /turf/closed/mineral/silver = 50, /turf/closed/mineral/plasma = 50, /turf/closed/mineral/bscrystal = 20) /turf/closed/mineral/random/high_chance/New() @@ -97,7 +97,7 @@ icon_state = "rock_lowchance" mineralChance = 6 mineralSpawnChanceList = list( - /turf/closed/mineral/uranium = 2, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 4, + /turf/closed/mineral/uranium = 2, /turf/closed/mineral/diamond = 1, /turf/closed/mineral/gold = 4, /turf/closed/mineral/titanium = 5, /turf/closed/mineral/silver = 6, /turf/closed/mineral/plasma = 15, /turf/closed/mineral/iron = 40, /turf/closed/mineral/gibtonite = 2, /turf/closed/mineral/bscrystal = 1) @@ -135,6 +135,12 @@ spread = 1 scan_state = "rock_Silver" +/turf/closed/mineral/titanium + mineralType = /obj/item/weapon/ore/titanium + spreadChance = 5 + spread = 1 + scan_state = "rock_Titanium" + /turf/closed/mineral/plasma mineralType = /obj/item/weapon/ore/plasma spreadChance = 8 @@ -662,7 +668,7 @@ mineralChance = 10 mineralSpawnChanceList = list( - /turf/closed/mineral/uranium/volcanic = 5, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 10, + /turf/closed/mineral/uranium/volcanic = 5, /turf/closed/mineral/diamond/volcanic = 1, /turf/closed/mineral/gold/volcanic = 10, /turf/closed/mineral/titanium/volcanic = 12, /turf/closed/mineral/silver/volcanic = 12, /turf/closed/mineral/plasma/volcanic = 20, /turf/closed/mineral/iron/volcanic = 40, /turf/closed/mineral/gibtonite/volcanic = 4, /turf/open/floor/plating/asteroid/airless/cave/volcanic = 1, /turf/closed/mineral/bscrystal/volcanic = 1) @@ -673,7 +679,7 @@ initial_gas_mix = "o2=14;n2=23;TEMP=300" defer_change = 1 mineralSpawnChanceList = list( - /turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/gold/volcanic = 45, + /turf/closed/mineral/uranium/volcanic = 35, /turf/closed/mineral/diamond/volcanic = 30, /turf/closed/mineral/gold/volcanic = 45, /turf/closed/mineral/titanium/volcanic = 45, /turf/closed/mineral/silver/volcanic = 50, /turf/closed/mineral/plasma/volcanic = 50, /turf/closed/mineral/bscrystal/volcanic = 20) /turf/open/floor/plating/lava/smooth/lava_land_surface @@ -716,6 +722,13 @@ initial_gas_mix = "o2=14;n2=23;TEMP=300" defer_change = 1 +/turf/closed/mineral/titanium/volcanic + environment_type = "basalt" + turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + baseturf = /turf/open/floor/plating/asteroid/basalt/lava_land_surface + initial_gas_mix = "o2=14;n2=23;TEMP=300" + defer_change = 1 + /turf/closed/mineral/plasma/volcanic environment_type = "basalt" turf_type = /turf/open/floor/plating/asteroid/basalt/lava_land_surface diff --git a/code/modules/mining/minebot.dm b/code/modules/mining/minebot.dm index f18ca2a0974..becc9b8cc76 100644 --- a/code/modules/mining/minebot.dm +++ b/code/modules/mining/minebot.dm @@ -35,7 +35,7 @@ speak_emote = list("states") wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver, /obj/item/weapon/ore/plasma, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron, - /obj/item/weapon/ore/bananium) + /obj/item/weapon/ore/bananium, /obj/item/weapon/ore/titanium) healable = 0 /mob/living/simple_animal/hostile/mining_drone/attackby(obj/item/I, mob/user, params) diff --git a/code/modules/mining/ores_coins.dm b/code/modules/mining/ores_coins.dm index 9f64ae2f145..c167b007b97 100644 --- a/code/modules/mining/ores_coins.dm +++ b/code/modules/mining/ores_coins.dm @@ -133,6 +133,14 @@ materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) refined_type = /obj/item/stack/sheet/mineral/bananium +/obj/item/weapon/ore/titanium + name = "titanium ore" + icon_state = "Titanium ore" + origin_tech = "materials=4" + points = 50 + materials = list(MAT_TITANIUM=MINERAL_MATERIAL_AMOUNT) + refined_type = /obj/item/stack/sheet/mineral/titanium + /obj/item/weapon/ore/slag name = "slag" desc = "Completely useless" diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index 882221dd71b..e53e422653f 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -49,26 +49,29 @@ var/amt_iron = 0 var/amt_plasma = 0 var/amt_uranium = 0 + var/amt_titanium = 0 var/amt_clown = 0 var/amt_bluespace = 0 for (var/obj/item/weapon/ore/C in contents) if (istype(C,/obj/item/weapon/ore/diamond)) - amt_diamond++; + amt_diamond++ if (istype(C,/obj/item/weapon/ore/glass)) - amt_glass++; + amt_glass++ if (istype(C,/obj/item/weapon/ore/plasma)) - amt_plasma++; + amt_plasma++ if (istype(C,/obj/item/weapon/ore/iron)) - amt_iron++; + amt_iron++ if (istype(C,/obj/item/weapon/ore/silver)) - amt_silver++; + amt_silver++ if (istype(C,/obj/item/weapon/ore/gold)) - amt_gold++; + amt_gold++ if (istype(C,/obj/item/weapon/ore/uranium)) - amt_uranium++; + amt_uranium++ if (istype(C,/obj/item/weapon/ore/bananium)) - amt_clown++; + amt_clown++ + if (istype(C,/obj/item/weapon/ore/titanium)) + amt_titanium++ if (istype(C,/obj/item/weapon/ore/bluespace_crystal)) amt_bluespace++ @@ -88,6 +91,8 @@ if (amt_uranium) dat += text("Uranium ore: [amt_uranium]
") if (amt_clown) + dat += text("Titanium ore: [amt_titanium]
") + if (amt_titanium) dat += text("Bananium ore: [amt_clown]
") if (amt_bluespace) dat += text("Bluespace crystals: [amt_bluespace]
") diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 5256628eb99..a95d1e421aa 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -270,7 +270,7 @@ id = "gygax_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/gygax_armor - materials = list(MAT_METAL=25000,MAT_DIAMOND=10000) + materials = list(MAT_METAL=10000,MAT_DIAMOND=10000,MAT_TITANIUM=15000) construction_time = 600 category = list("Gygax") @@ -343,7 +343,7 @@ id = "durand_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/durand_armor - materials = list(MAT_METAL=50000,MAT_URANIUM=30000) + materials = list(MAT_METAL=25000,MAT_URANIUM=30000,MAT_TITANIUM=25000) construction_time = 600 category = list("Durand") @@ -481,7 +481,7 @@ id = "phazon_armor" build_type = MECHFAB build_path = /obj/item/mecha_parts/part/phazon_armor - materials = list(MAT_METAL=45000,MAT_PLASMA=30000) + materials = list(MAT_METAL=25000,MAT_PLASMA=30000,MAT_TITANIUM=20000) construction_time = 300 category = list("Phazon") @@ -664,7 +664,7 @@ build_type = MECHFAB build_path = /obj/item/borg/upgrade/lavaproof req_tech = list("plasmatech" = 4, "materials" = 4, "engineering" = 4) - materials = list(MAT_METAL = 8000, MAT_PLASMA = 10000) + materials = list(MAT_METAL = 8000, MAT_PLASMA = 8000, MAT_TITANIUM = 4000) construction_time = 120 category = list("Cyborg Upgrade Modules") diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index b23e91679d0..585db394acf 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi index 2b2f1a838ef..f6054cca6a7 100644 Binary files a/icons/obj/tiles.dmi and b/icons/obj/tiles.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 82818a9432c..18547fed61b 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ diff --git a/icons/turf/mining.dmi b/icons/turf/mining.dmi index ff3a228f028..62404dd5551 100644 Binary files a/icons/turf/mining.dmi and b/icons/turf/mining.dmi differ diff --git a/icons/turf/smoothrocks.dmi b/icons/turf/smoothrocks.dmi index a6f400ce65f..a7e98646171 100644 Binary files a/icons/turf/smoothrocks.dmi and b/icons/turf/smoothrocks.dmi differ