diff --git a/code/game/objects/items/stacks/sheets/light.dm b/code/game/objects/items/stacks/sheets/light.dm index 4d8b27a6690..9ca562b50ce 100644 --- a/code/game/objects/items/stacks/sheets/light.dm +++ b/code/game/objects/items/stacks/sheets/light.dm @@ -3,6 +3,7 @@ gender = PLURAL singular_name = "wired glass floor tile" desc = "A glass tile, which is wired, somehow." + icon = 'icons/obj/tiles.dmi' icon_state = "glass_wire" w_class = 3 force = 3.0 diff --git a/code/game/objects/items/stacks/sheets/mineral.dm b/code/game/objects/items/stacks/sheets/mineral.dm index bb50d79cfe7..7612d3a88ad 100644 --- a/code/game/objects/items/stacks/sheets/mineral.dm +++ b/code/game/objects/items/stacks/sheets/mineral.dm @@ -12,9 +12,6 @@ Mineral Sheets - Tranqillite - Enriched Uranium - Platinum - - Metallic Hydrogen - - Tritium - - Osmium */ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \ @@ -24,23 +21,34 @@ var/global/list/datum/stack_recipe/sandstone_recipes = list ( \ var/global/list/datum/stack_recipe/silver_recipes = list ( \ new/datum/stack_recipe("silver door", /obj/structure/mineral_door/silver, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("silver tile", /obj/item/stack/tile/mineral/silver, 1, 4, 20), \ ) var/global/list/datum/stack_recipe/diamond_recipes = list ( \ new/datum/stack_recipe("diamond door", /obj/structure/mineral_door/transparent/diamond, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("diamond tile", /obj/item/stack/tile/mineral/diamond, 1, 4, 20), \ ) var/global/list/datum/stack_recipe/uranium_recipes = list ( \ new/datum/stack_recipe("uranium door", /obj/structure/mineral_door/uranium, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("uranium tile", /obj/item/stack/tile/mineral/uranium, 1, 4, 20), \ ) var/global/list/datum/stack_recipe/gold_recipes = list ( \ new/datum/stack_recipe("golden door", /obj/structure/mineral_door/gold, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("gold tile", /obj/item/stack/tile/mineral/gold, 1, 4, 20), \ + null, \ new/datum/stack_recipe("Simple Crown", /obj/item/clothing/head/crown, 5), \ ) var/global/list/datum/stack_recipe/plasma_recipes = list ( \ new/datum/stack_recipe("plasma door", /obj/structure/mineral_door/transparent/plasma, 10, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("plasma tile", /obj/item/stack/tile/mineral/plasma, 1, 4, 20), \ ) var/global/list/datum/stack_recipe/plastic_recipes = list ( \ @@ -61,13 +69,24 @@ var/global/list/datum/stack_recipe/plastic_recipes = list ( \ ) var/global/list/datum/stack_recipe/bananium_recipes = list ( \ + new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \ + null, \ new/datum/stack_recipe("bananium computer frame", /obj/structure/computerframe/HONKputer, 50, time = 25, one_per_turf = 1, on_floor = 1), \ new/datum/stack_recipe("bananium grenade casing", /obj/item/weapon/grenade/bananade/casing, 4, on_floor = 1), \ ) var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ - new/datum/stack_recipe("silent tile", /obj/item/stack/tile/silent, 1, 4, 20), \ new/datum/stack_recipe("invisible wall", /obj/structure/barricade/mime, 5, one_per_turf = 1, on_floor = 1, time = 50), \ + null, \ + new/datum/stack_recipe("silent tile", /obj/item/stack/tile/mineral/tranquillite, 1, 4, 20), \ + ) + +var/global/list/datum/stack_recipe/abductor_recipes = list ( \ + new/datum/stack_recipe("alien bed", /obj/structure/stool/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + new/datum/stack_recipe("alien table frame", /obj/structure/abductor_tableframe, 1, time = 15, one_per_turf = 1, on_floor = 1), \ + null, \ + new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \ ) /obj/item/stack/sheet/mineral @@ -100,11 +119,11 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/diamond name = "diamond" icon_state = "sheet-diamond" + singular_name = "diamond" origin_tech = "materials=6" sheettype = "diamond" materials = list(MAT_DIAMOND=MINERAL_MATERIAL_AMOUNT) - /obj/item/stack/sheet/mineral/diamond/New() ..() recipes = diamond_recipes @@ -112,6 +131,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/uranium name = "uranium" icon_state = "sheet-uranium" + singular_name = "uranium sheet" origin_tech = "materials=5" sheettype = "uranium" materials = list(MAT_URANIUM=MINERAL_MATERIAL_AMOUNT) @@ -123,6 +143,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/plasma name = "solid plasma" icon_state = "sheet-plasma" + singular_name = "plasma sheet" origin_tech = "plasmatech=2;materials=2" sheettype = "plasma" materials = list(MAT_PLASMA=MINERAL_MATERIAL_AMOUNT) @@ -161,6 +182,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/gold name = "gold" icon_state = "sheet-gold" + singular_name = "gold bar" origin_tech = "materials=4" sheettype = "gold" materials = list(MAT_GOLD=MINERAL_MATERIAL_AMOUNT) @@ -172,6 +194,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/silver name = "silver" icon_state = "sheet-silver" + singular_name = "silver bar" origin_tech = "materials=3" sheettype = "silver" materials = list(MAT_SILVER=MINERAL_MATERIAL_AMOUNT) @@ -183,23 +206,24 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ /obj/item/stack/sheet/mineral/bananium name = "bananium" icon_state = "sheet-clown" + singular_name = "bananium sheet" origin_tech = "materials=4" sheettype = "bananium" materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT) -/obj/item/stack/sheet/mineral/bananium/New(var/loc, var/amount=null) +/obj/item/stack/sheet/mineral/bananium/New(loc, amount=null) ..() recipes = bananium_recipes /obj/item/stack/sheet/mineral/tranquillite name = "tranquillite" - singular_name = "beret" icon_state = "sheet-mime" + singular_name = "beret" origin_tech = "materials=4" sheettype = "tranquillite" materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT) -/obj/item/stack/sheet/mineral/tranquillite/New(var/loc, var/amount=null) +/obj/item/stack/sheet/mineral/tranquillite/New(loc, amount=null) ..() recipes = tranquillite_recipes @@ -209,9 +233,7 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ origin_tech = "materials=6" materials = list(MAT_URANIUM=3000) -/* - * Alien Alloy - */ +//Alien Alloy /obj/item/stack/sheet/mineral/abductor name = "alien alloy" icon = 'icons/obj/abductor.dmi' @@ -225,14 +247,6 @@ var/global/list/datum/stack_recipe/tranquillite_recipes = list ( \ origin_tech = "materials=6;abductor=1" sheettype = "abductor" -var/global/list/datum/stack_recipe/abductor_recipes = list ( \ - new/datum/stack_recipe("alien bed", /obj/structure/stool/bed/abductor, 2, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("alien locker", /obj/structure/closet/abductor, 1, time = 15, one_per_turf = 1, on_floor = 1), \ - new/datum/stack_recipe("alien table frame", /obj/structure/abductor_tableframe, 1, time = 15, one_per_turf = 1, on_floor = 1), \ - null, \ - new/datum/stack_recipe("alien floor tile", /obj/item/stack/tile/mineral/abductor, 1, 4, 20), \ - ) - -/obj/item/stack/sheet/mineral/abductor/New(var/loc, var/amount=null) +/obj/item/stack/sheet/mineral/abductor/New(loc, amount=null) recipes = abductor_recipes ..() \ No newline at end of file diff --git a/code/game/objects/items/stacks/tiles/tile_mineral.dm b/code/game/objects/items/stacks/tiles/tile_mineral.dm index 7e6d5459dbf..7f9c6b6535b 100644 --- a/code/game/objects/items/stacks/tiles/tile_mineral.dm +++ b/code/game/objects/items/stacks/tiles/tile_mineral.dm @@ -1,3 +1,68 @@ +/obj/item/stack/tile/mineral/plasma + name = "plasma tile" + singular_name = "plasma floor tile" + desc = "A tile made out of highly flammable plasma. This can only end well." + icon_state = "tile_plasma" + origin_tech = "plasmatech=1" + turf_type = /turf/simulated/floor/mineral/plasma + mineralType = "plasma" + materials = list(MAT_PLASMA=500) + +/obj/item/stack/tile/mineral/uranium + name = "uranium tile" + singular_name = "uranium floor tile" + desc = "A tile made out of uranium. You feel a bit woozy." + icon_state = "tile_uranium" + turf_type = /turf/simulated/floor/mineral/uranium + mineralType = "uranium" + materials = list(MAT_URANIUM=500) + +/obj/item/stack/tile/mineral/gold + name = "gold tile" + singular_name = "gold floor tile" + desc = "A tile made out of gold, the swag seems strong here." + icon_state = "tile_gold" + turf_type = /turf/simulated/floor/mineral/gold + mineralType = "gold" + materials = list(MAT_GOLD=500) + +/obj/item/stack/tile/mineral/silver + name = "silver tile" + singular_name = "silver floor tile" + desc = "A tile made out of silver, the light shining from it is blinding." + icon_state = "tile_silver" + turf_type = /turf/simulated/floor/mineral/silver + mineralType = "silver" + materials = list(MAT_SILVER=500) + +/obj/item/stack/tile/mineral/diamond + name = "diamond tile" + singular_name = "diamond floor tile" + desc = "A tile made out of diamond. Wow, just, wow." + icon_state = "tile_diamond" + origin_tech = "materials=2" + turf_type = /turf/simulated/floor/mineral/diamond + mineralType = "diamond" + materials = list(MAT_DIAMOND=500) + +/obj/item/stack/tile/mineral/bananium + name = "bananium tile" + singular_name = "bananium floor tile" + desc = "A tile made out of bananium, HOOOOOOOOONK!" + icon_state = "tile_bananium" + turf_type = /turf/simulated/floor/mineral/bananium + mineralType = "bananium" + materials = list(MAT_BANANIUM=500) + +/obj/item/stack/tile/mineral/tranquillite + name = "silent tile" + singular_name = "silent floor tile" + desc = "A tile made out of tranquillite, SHHHHHHHHH!" + icon_state = "tile_tranquillite" + turf_type = /turf/simulated/floor/mineral/tranquillite + mineralType = "tranquillite" + materials = list(MAT_TRANQUILLITE=500) + /obj/item/stack/tile/mineral/abductor name = "alien floor tile" singular_name = "alien floor tile" diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index f5b3650c5bb..afa38da7721 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -1,19 +1,8 @@ -/* Different misc types of tiles - * Contains: - * Grass - * Wood - * Carpet - * Plasteel - * Light - * Fakespace - * High-traction - \\ If you don't update the contains list, I'm going to shank you - */ /obj/item/stack/tile name = "broken tile" singular_name = "broken tile" desc = "A broken tile. This should not exist." - icon = 'icons/obj/items.dmi' + icon = 'icons/obj/tiles.dmi' icon_state = "tile" item_state = "tile" w_class = 3 @@ -23,12 +12,64 @@ throw_range = 20 max_amount = 60 flags = CONDUCT + origin_tech = "materials=1" var/turf_type = null var/mineralType = null -/* - * Grass - */ +/obj/item/stack/tile/New(loc, amount) + ..() + pixel_x = rand(-3, 3) + pixel_y = rand(-3, 3) //randomize a little + +/obj/item/stack/tile/attackby(obj/item/W, mob/user, params) + if(iswelder(W)) + var/obj/item/weapon/weldingtool/WT = W + + if(is_hot(W) && !mineralType) + to_chat(user, "You can not reform this!") + return + + if(get_amount() < 4) + to_chat(user, "You need at least four tiles to do this!") + return + + if(WT.remove_fuel(0,user)) + + if(mineralType == "plasma") + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 5) + user.visible_message("[user.name] sets the plasma tiles on fire!", \ + "You set the plasma tiles on fire!") + qdel(src) + return + + if (mineralType == "metal") + var/obj/item/stack/sheet/metal/new_item = new(user.loc) + user.visible_message("[user.name] shaped [src] into metal with the welding tool.", \ + "You shaped [src] into metal with the welding tool.", \ + "You hear welding.") + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_hand()==R) + R.use(4) + if(!R && replace) + user.put_in_hands(new_item) + + else + var/sheet_type = text2path("/obj/item/stack/sheet/mineral/[mineralType]") + var/obj/item/stack/sheet/mineral/new_item = new sheet_type(user.loc) + user.visible_message("[user.name] shaped [src] into a sheet with the welding tool.", \ + "You shaped [src] into a sheet with the welding tool.", \ + "You hear welding.") + var/obj/item/stack/rods/R = src + src = null + var/replace = (user.get_inactive_hand()==R) + R.use(4) + if (!R && replace) + user.put_in_hands(new_item) + else + return ..() + +//Grass /obj/item/stack/tile/grass name = "grass tiles" gender = PLURAL @@ -39,21 +80,18 @@ turf_type = /turf/simulated/floor/grass burn_state = FLAMMABLE -/* - * Wood - */ +//Wood /obj/item/stack/tile/wood name = "wood floor tiles" gender = PLURAL singular_name = "wood floor tile" desc = "an easy to fit wood floor tile" icon_state = "tile-wood" + origin_tech = "biotech=1" turf_type = /turf/simulated/floor/wood burn_state = FLAMMABLE -/* - * Carpets - */ +//Carpets /obj/item/stack/tile/carpet name = "carpet" singular_name = "carpet" @@ -62,9 +100,7 @@ turf_type = /turf/simulated/floor/carpet burn_state = FLAMMABLE -/* - * Plasteel - */ +//Plasteel /obj/item/stack/tile/plasteel name = "floor tiles" gender = PLURAL @@ -80,9 +116,7 @@ turf_type = /turf/simulated/floor/plasteel mineralType = "metal" -/* - * Light - */ +//Light /obj/item/stack/tile/light name = "light tiles" gender = PLURAL @@ -94,9 +128,7 @@ attack_verb = list("bashed", "battered", "bludgeoned", "thrashed", "smashed") turf_type = /turf/simulated/floor/light -/* - * Fakespace - */ +//Fakespace /obj/item/stack/tile/fakespace name = "astral carpet" singular_name = "astral carpet" @@ -120,16 +152,6 @@ /obj/item/stack/tile/noslip/loaded amount = 20 -/obj/item/stack/tile/silent - name = "silent tile" - singular_name = "silent floor tile" - desc = "A tile made out of tranquillite, SHHHHHHHHH!" - icon_state = "tile-silent" - origin_tech = "materials=1" - turf_type = /turf/simulated/floor/silent - mineralType = "tranquillite" - materials = list(MAT_TRANQUILLITE=500) - //Pod floor /obj/item/stack/tile/pod name = "pod floor tile" diff --git a/code/game/turfs/simulated/floor/mineral.dm b/code/game/turfs/simulated/floor/mineral.dm index 9ef70522ec4..f4f67b9007b 100644 --- a/code/game/turfs/simulated/floor/mineral.dm +++ b/code/game/turfs/simulated/floor/mineral.dm @@ -1,10 +1,18 @@ +/* In this file: + * + * Plasma floor + * Gold floor + * Silver floor + * Bananium floor + * Diamond floor + * Uranium floor + */ + /turf/simulated/floor/mineral name = "mineral floor" icon_state = "" var/list/icons = list() - - /turf/simulated/floor/mineral/New() ..() broken_states = list("[initial(icon_state)]_dam") @@ -13,9 +21,145 @@ if(!..()) return 0 if(!broken && !burnt) - if( !(icon_state in icons) ) + if(!(icon_state in icons)) icon_state = initial(icon_state) +//PLASMA +/turf/simulated/floor/mineral/plasma + name = "plasma floor" + icon_state = "plasma" + floor_tile = /obj/item/stack/tile/mineral/plasma + icons = list("plasma","plasma_dam") + +/turf/simulated/floor/mineral/plasma/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume) + if(exposed_temperature > 300) + PlasmaBurn() + +/turf/simulated/floor/mineral/plasma/attackby(obj/item/weapon/W, mob/user, params) + if(is_hot(W) > 300)//If the temperature of the object is over 300, then ignite + message_admins("Plasma flooring was ignited by [key_name_admin(user)](?) (FLW) in ([x],[y],[z] - JMP)",0,1) + log_game("Plasma flooring was ignited by [key_name(user)] in ([x],[y],[z])") + ignite(is_hot(W)) + return + ..() + +/turf/simulated/floor/mineral/plasma/proc/PlasmaBurn() + make_plating() + atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, 20) + +/turf/simulated/floor/mineral/plasma/proc/ignite(exposed_temperature) + if(exposed_temperature > 300) + PlasmaBurn() + +//GOLD +/turf/simulated/floor/mineral/gold + name = "gold floor" + icon_state = "gold" + floor_tile = /obj/item/stack/tile/mineral/gold + icons = list("gold","gold_dam") + +//SILVER +/turf/simulated/floor/mineral/silver + name = "silver floor" + icon_state = "silver" + floor_tile = /obj/item/stack/tile/mineral/silver + icons = list("silver","silver_dam") + +//BANANIUM +/turf/simulated/floor/mineral/bananium + name = "bananium floor" + icon_state = "bananium" + floor_tile = /obj/item/stack/tile/mineral/bananium + icons = list("bananium","bananium_dam") + var/spam_flag = 0 + +/turf/simulated/floor/mineral/bananium/Entered(mob/AM) + .=..() + if(!.) + if(istype(AM)) + squeek() + +/turf/simulated/floor/mineral/bananium/attackby(obj/item/weapon/W, mob/user, params) + .=..() + if(!.) + honk() + +/turf/simulated/floor/mineral/bananium/attack_hand(mob/user) + .=..() + if(!.) + honk() + +/turf/simulated/floor/mineral/bananium/proc/honk() + if(!spam_flag) + spam_flag = 1 + playsound(src, 'sound/items/bikehorn.ogg', 50, 1) + spawn(20) + spam_flag = 0 + +/turf/simulated/floor/mineral/bananium/proc/squeek() + if(!spam_flag) + spam_flag = 1 + playsound(src, "clownstep", 50, 1) + spawn(10) + spam_flag = 0 + +/turf/simulated/floor/mineral/bananium/airless + oxygen = 0.01 + nitrogen = 0.01 + temperature = TCMB + +//TRANQUILLITE +/turf/simulated/floor/mineral/tranquillite + name = "silent floor" + icon_state = "tranquillite" + floor_tile = /obj/item/stack/tile/mineral/tranquillite + shoe_running_volume = 0 + shoe_walking_volume = 0 + +//DIAMOND +/turf/simulated/floor/mineral/diamond + name = "diamond floor" + icon_state = "diamond" + floor_tile = /obj/item/stack/tile/mineral/diamond + icons = list("diamond","diamond_dam") + +//URANIUM +/turf/simulated/floor/mineral/uranium + name = "uranium floor" + icon_state = "uranium" + floor_tile = /obj/item/stack/tile/mineral/uranium + icons = list("uranium","uranium_dam") + var/last_event = 0 + var/active = null + +/turf/simulated/floor/mineral/uranium/Entered(mob/AM) + .=..() + if(!.) + if(istype(AM)) + radiate() + +/turf/simulated/floor/mineral/uranium/attackby(obj/item/weapon/W, mob/user, params) + .=..() + if(!.) + radiate() + +/turf/simulated/floor/mineral/uranium/attack_hand(mob/user) + .=..() + if(!.) + radiate() + +/turf/simulated/floor/mineral/uranium/proc/radiate() + if(!active) + if(world.time > last_event+15) + active = 1 + for(var/mob/living/L in range(3,src)) + L.apply_effect(1,IRRADIATE,0) + for(var/turf/simulated/floor/mineral/uranium/T in orange(1,src)) + T.radiate() + last_event = world.time + active = 0 + return + // ALIEN ALLOY /turf/simulated/floor/mineral/abductor name = "alien floor" @@ -36,7 +180,6 @@ /turf/simulated/floor/mineral/abductor/make_plating() return ChangeTurf(/turf/simulated/floor/plating/abductor2) - /turf/simulated/floor/plating/abductor2 name = "alien plating" icon_state = "alienplating" diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 1a307361341..3491f4d529a 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -66,10 +66,3 @@ /turf/simulated/floor/noslip/MakeSlippery() return - -/turf/simulated/floor/silent - name = "silent floor" - icon_state = "silent" - floor_tile = /obj/item/stack/tile/silent - shoe_running_volume = 0 - shoe_walking_volume = 0 \ No newline at end of file diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 65ac4ba2e40..1e8b80b314e 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/tiles.dmi b/icons/obj/tiles.dmi new file mode 100644 index 00000000000..3de478d728d Binary files /dev/null and b/icons/obj/tiles.dmi differ diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index 1688122b563..66bd1893196 100644 Binary files a/icons/turf/floors.dmi and b/icons/turf/floors.dmi differ