diff --git a/code/datums/materials/alloys.dm b/code/datums/materials/alloys.dm index b656edf2002..419b42630c4 100644 --- a/code/datums/materials/alloys.dm +++ b/code/datums/materials/alloys.dm @@ -106,7 +106,7 @@ init_flags = MATERIAL_INIT_MAPLOAD armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 0.8, ENERGY = 0.8, BOMB = 0.5, BIO = 1.2, FIRE = 0.8, ACID = 2) sheet_type = /obj/item/stack/sheet/titaniumglass - shard_type = /obj/item/shard + shard_type = /obj/item/shard/titanium value_per_unit = 0.04 categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) composition = list(/datum/material/glass=1, /datum/material/titanium=0.5) @@ -125,7 +125,7 @@ integrity_modifier = 1.1 armor_modifiers = list(MELEE = 1.2, BULLET = 1.2, LASER = 1.2, ENERGY = 1.2, BOMB = 0.5, BIO = 1.2, FIRE = 2, ACID = 2) sheet_type = /obj/item/stack/sheet/plastitaniumglass - shard_type = /obj/item/shard/plasma + shard_type = /obj/item/shard/plastitanium value_per_unit = 0.125 categories = list(MAT_CATEGORY_RIGID=TRUE, MAT_CATEGORY_BASE_RECIPES=TRUE, MAT_CATEGORY_ITEM_MATERIAL=TRUE) composition = list(/datum/material/glass=1, /datum/material/alloy/plastitanium=0.5) diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 1f4b8539cb5..8d4f8ecca88 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -48,6 +48,12 @@ /obj/effect/decal/cleanable/glass/plasma icon_state = "plasmatiny" +/obj/effect/decal/cleanable/glass/titanium + icon_state = "titaniumtiny" + +/obj/effect/decal/cleanable/glass/plastitanium + icon_state = "plastitaniumtiny" + /obj/effect/decal/cleanable/dirt name = "dirt" desc = "Someone should clean that up." diff --git a/code/game/objects/effects/spawners/random/trash.dm b/code/game/objects/effects/spawners/random/trash.dm index 99838e313e8..bd94e40aea2 100644 --- a/code/game/objects/effects/spawners/random/trash.dm +++ b/code/game/objects/effects/spawners/random/trash.dm @@ -23,6 +23,7 @@ /obj/item/popsicle_stick = 1, /obj/item/reagent_containers/syringe = 1, /obj/item/reagent_containers/food/drinks/sillycup = 1, + /obj/item/shard/plasma = 1, ) /obj/effect/spawner/random/trash/cigbutt diff --git a/code/game/objects/items/knives.dm b/code/game/objects/items/knives.dm index 9c85fe3d391..7ad625fd366 100644 --- a/code/game/objects/items/knives.dm +++ b/code/game/objects/items/knives.dm @@ -156,6 +156,41 @@ armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 0, ACID = 0) custom_materials = list(/datum/material/glass=400) +/obj/item/knife/shiv/plasma + name = "plasma shiv" + icon_state = "plasmashiv" + inhand_icon_state = "plasmashiv" + desc = "A makeshift plasma glass shiv." + force = 9 + throwforce = 13 + armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50) + custom_materials = list(/datum/material/glass=400, /datum/material/plasma=200) + +/obj/item/knife/shiv/titanium + name = "titanium shiv" + icon_state = "titaniumshiv" + inhand_icon_state = "titaniumshiv" + desc = "A makeshift titanium-infused glass shiv." + throwforce = 14 + throw_range = 7 + wound_bonus = 10 + armor = list(MELEE = 25, BULLET = 25, LASER = 25, ENERGY = 25, BOMB = 25, BIO = 0, FIRE = 50, ACID = 50) + custom_materials = list(/datum/material/glass=400, /datum/material/titanium=200) + +/obj/item/knife/shiv/plastitanium + name = "plastitanium shiv" + icon_state = "plastitaniumshiv" + inhand_icon_state = "plastitaniumshiv" + desc = "A makeshift titanium-infused plasma glass shiv." + force = 10 + throwforce = 15 + throw_speed = 4 + throw_range = 8 + wound_bonus = 10 + bare_wound_bonus = 20 + armor = list(MELEE = 50, BULLET = 50, LASER = 50, ENERGY = 50, BOMB = 50, BIO = 0, FIRE = 75, ACID = 75) + custom_materials = list(/datum/material/glass=400, /datum/material/alloy/plastitanium=200) + /obj/item/knife/shiv/carrot name = "carrot shiv" icon_state = "carrotshiv" diff --git a/code/game/objects/items/spear.dm b/code/game/objects/items/spear.dm index ff5e02787c4..3bbc639f4a3 100644 --- a/code/game/objects/items/spear.dm +++ b/code/game/objects/items/spear.dm @@ -43,9 +43,27 @@ var/obj/item/shard/tip = locate() in parts_list if(tip) if (istype(tip, /obj/item/shard/plasma)) + force = 11 throwforce = 21 icon_prefix = "spearplasma" AddComponent(/datum/component/two_handed, force_unwielded=11, force_wielded=19, icon_wielded="[icon_prefix]1") + else if (istype(tip, /obj/item/shard/titanium)) + force = 13 + throwforce = 21 + throw_range = 8 + throw_speed = 5 + wound_bonus = -10 + icon_prefix = "speartitanium" + AddComponent(/datum/component/two_handed, force_unwielded=13, force_wielded=18, icon_wielded="[icon_prefix]1") + else if (istype(tip, /obj/item/shard/plastitanium)) + force = 13 + throwforce = 22 + throw_range = 9 + throw_speed = 5 + wound_bonus = -10 + bare_wound_bonus = 20 + icon_prefix = "spearplastitanium" + AddComponent(/datum/component/two_handed, force_unwielded=13, force_wielded=20, icon_wielded="[icon_prefix]1") update_appearance() parts_list -= tip qdel(tip) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 298117aa0ea..628b60dc925 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -1,4 +1,3 @@ -/** SKYRAT EDIT - MODULARIZATION - SEE SKYRAT_MODULAR/MODULES/MATERIALS_GLASS /* Glass stack types * Contains: * Glass sheets @@ -16,7 +15,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ new/datum/stack_recipe("glass tile", /obj/item/stack/tile/glass, 1, 4, 20) \ )) -/obj/item/stack/sheet/glass//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE +/obj/item/stack/sheet/glass name = "glass" desc = "HOLY SHEET! That is a lot of glass." singular_name = "glass sheet" @@ -78,10 +77,10 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ GLOBAL_LIST_INIT(pglass_recipes, list ( \ new/datum/stack_recipe("directional window", /obj/structure/window/plasma/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ new/datum/stack_recipe("fulltile window", /obj/structure/window/plasma/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("plasma glass shard", /obj/item/shard/plasma, time = 0, on_floor = TRUE) \ + new/datum/stack_recipe("plasma glass shard", /obj/item/shard/plasma, time = 20, on_floor = TRUE) \ )) -/obj/item/stack/sheet/plasmaglass//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE +/obj/item/stack/sheet/plasmaglass name = "plasma glass" desc = "A glass sheet made out of a plasma-silicate alloy. It looks extremely tough and heavily fire resistant." singular_name = "plasma glass sheet" @@ -131,12 +130,12 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ null, \ new/datum/stack_recipe("directional reinforced window", /obj/structure/window/reinforced/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ new/datum/stack_recipe("fulltile reinforced window", /obj/structure/window/reinforced/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("glass shard", /obj/item/shard, time = 0, on_floor = TRUE), \ + new/datum/stack_recipe("glass shard", /obj/item/shard, time = 10, on_floor = TRUE), \ new/datum/stack_recipe("reinforced glass tile", /obj/item/stack/tile/rglass, 1, 4, 20) \ )) -/obj/item/stack/sheet/rglass//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE +/obj/item/stack/sheet/rglass name = "reinforced glass" desc = "Glass which seems to have rods or something stuck in them." singular_name = "reinforced glass sheet" @@ -185,10 +184,10 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ GLOBAL_LIST_INIT(prglass_recipes, list ( \ new/datum/stack_recipe("directional reinforced window", /obj/structure/window/reinforced/plasma/unanchored, time = 0, on_floor = TRUE, window_checks = TRUE), \ new/datum/stack_recipe("fulltile reinforced window", /obj/structure/window/reinforced/plasma/fulltile/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("plasma glass shard", /obj/item/shard/plasma, time = 0, on_floor = TRUE) \ + new/datum/stack_recipe("plasma glass shard", /obj/item/shard/plasma, time = 40, on_floor = TRUE) \ )) -/obj/item/stack/sheet/plasmarglass//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE +/obj/item/stack/sheet/plasmarglass name = "reinforced plasma glass" desc = "A glass sheet made out of a plasma-silicate alloy and a rod matrix. It looks hopelessly tough and nearly fire-proof!" singular_name = "reinforced plasma glass sheet" @@ -210,7 +209,7 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ GLOBAL_LIST_INIT(titaniumglass_recipes, list( new/datum/stack_recipe("shuttle window", /obj/structure/window/reinforced/shuttle/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("glass shard", /obj/item/shard, time = 0, on_floor = TRUE) \ + new/datum/stack_recipe("titanium glass shard", /obj/item/shard/titanium, time = 40, on_floor = TRUE) \ )) /obj/item/stack/sheet/titaniumglass @@ -226,13 +225,15 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( merge_type = /obj/item/stack/sheet/titaniumglass tableVariant = /obj/structure/table/reinforced/titaniumglass +/obj/item/stack/sheet/titaniumglass/fifty + amount = 50 + /obj/item/stack/sheet/titaniumglass/get_main_recipes() . = ..() . += GLOB.titaniumglass_recipes GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( - new/datum/stack_recipe("plastitanium window", /obj/structure/window/reinforced/plasma/plastitanium/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("plasma glass shard", /obj/item/shard/plasma, time = 0, on_floor = TRUE) \ + new/datum/stack_recipe("plastitanium window", /obj/structure/window/reinforced/plasma/plastitanium/unanchored, 2, time = 0, on_floor = TRUE, window_checks = TRUE) \ )) /obj/item/stack/sheet/plastitaniumglass @@ -273,6 +274,8 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( max_integrity = 40 sharpness = SHARP_EDGED var/icon_prefix + var/shiv_type = /obj/item/knife/shiv + var/craft_time = 3.5 SECONDS var/obj/item/stack/sheet/weld_material = /obj/item/stack/sheet/glass embedding = list("embed_chance" = 65) @@ -330,20 +333,20 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( to_chat(H, span_warning("[src] cuts into your hand!")) H.apply_damage(force*0.5, BRUTE, hit_hand) -/obj/item/shard/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/lightreplacer)) - var/obj/item/lightreplacer/L = I - L.attackby(src, user) - else if(istype(I, /obj/item/stack/sheet/cloth)) - var/obj/item/stack/sheet/cloth/C = I - to_chat(user, span_notice("You begin to wrap the [C] around the [src]...")) - if(do_after(user, 35, target = src)) - var/obj/item/knife/shiv/S = new /obj/item/knife/shiv - C.use(1) - to_chat(user, span_notice("You wrap the [C] around the [src] forming a makeshift weapon.")) +/obj/item/shard/attackby(obj/item/item, mob/user, params) + if(istype(item, /obj/item/lightreplacer)) + var/obj/item/lightreplacer/lightreplacer = item + lightreplacer.attackby(src, user) + else if(istype(item, /obj/item/stack/sheet/cloth)) + var/obj/item/stack/sheet/cloth/cloth = item + to_chat(user, span_notice("You begin to wrap the [cloth] around the [src]...")) + if(do_after(user, craft_time, target = src)) + var/obj/item/knife/shiv/shiv = new shiv_type + cloth.use(1) + to_chat(user, span_notice("You wrap the [cloth] around the [src], forming a makeshift weapon.")) remove_item_from_storage(src) qdel(src) - user.put_in_hands(S) + user.put_in_hands(shiv) else return ..() @@ -375,7 +378,34 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( force = 6 throwforce = 11 icon_state = "plasmalarge" + inhand_icon_state = "shard-plasma" custom_materials = list(/datum/material/alloy/plasmaglass=MINERAL_MATERIAL_AMOUNT) icon_prefix = "plasma" weld_material = /obj/item/stack/sheet/plasmaglass -**/ + shiv_type = /obj/item/knife/shiv/plasma + craft_time = 7 SECONDS + +/obj/item/shard/titanium + name = "bright shard" + desc = "A nasty looking shard of titanium infused glass." + throwforce = 12 + icon_state = "titaniumlarge" + inhand_icon_state = "shard-titanium" + custom_materials = list(/datum/material/alloy/titaniumglass=MINERAL_MATERIAL_AMOUNT) + icon_prefix = "titanium" + weld_material = /obj/item/stack/sheet/titaniumglass + shiv_type = /obj/item/knife/shiv/titanium + craft_time = 7 SECONDS + +/obj/item/shard/plastitanium + name = "dark shard" + desc = "A nasty looking shard of titanium infused plasma glass." + force = 7 + throwforce = 12 + icon_state = "plastitaniumlarge" + inhand_icon_state = "shard-plastitanium" + custom_materials = list(/datum/material/alloy/plastitaniumglass=MINERAL_MATERIAL_AMOUNT) + icon_prefix = "plastitanium" + weld_material = /obj/item/stack/sheet/plastitaniumglass + shiv_type = /obj/item/knife/shiv/plastitanium + craft_time = 14 SECONDS diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 3b802ad56f0..553f20b7b18 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -687,6 +687,15 @@ glass_amount = 2 receive_ricochet_chance_mod = 1.2 +/obj/structure/window/reinforced/shuttle/spawnDebris(location) + . = list() + . += new /obj/item/shard/titanium(location) + . += new /obj/effect/decal/cleanable/glass/titanium(location) + if (reinf) + . += new /obj/item/stack/rods(location, (fulltile ? 2 : 1)) + if (fulltile) + . += new /obj/item/shard/titanium(location) + /obj/structure/window/reinforced/shuttle/narsie_act() add_atom_colour("#3C3434", FIXED_COLOUR_PRIORITY) @@ -718,6 +727,15 @@ glass_amount = 2 rad_insulation = RAD_HEAVY_INSULATION +/obj/structure/window/reinforced/plasma/plastitanium/spawnDebris(location) + . = list() + . += new /obj/item/shard/plastitanium(location) + . += new /obj/effect/decal/cleanable/glass/plastitanium(location) + if (reinf) + . += new /obj/item/stack/rods(location, (fulltile ? 2 : 1)) + if (fulltile) + . += new /obj/item/shard/plastitanium(location) + /obj/structure/window/reinforced/plasma/plastitanium/unanchored anchored = FALSE state = WINDOW_OUT_OF_FRAME diff --git a/icons/mob/clothing/back.dmi b/icons/mob/clothing/back.dmi index 9f63d191050..6ee10b46119 100644 Binary files a/icons/mob/clothing/back.dmi and b/icons/mob/clothing/back.dmi differ diff --git a/icons/mob/inhands/weapons/melee_lefthand.dmi b/icons/mob/inhands/weapons/melee_lefthand.dmi index d255bf1e854..fe8c2e7a7e3 100644 Binary files a/icons/mob/inhands/weapons/melee_lefthand.dmi and b/icons/mob/inhands/weapons/melee_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/melee_righthand.dmi b/icons/mob/inhands/weapons/melee_righthand.dmi index 4ca3e77b672..c6614031c7d 100644 Binary files a/icons/mob/inhands/weapons/melee_righthand.dmi and b/icons/mob/inhands/weapons/melee_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/polearms_lefthand.dmi b/icons/mob/inhands/weapons/polearms_lefthand.dmi index 9eb1ebe4613..712aa82cce5 100644 Binary files a/icons/mob/inhands/weapons/polearms_lefthand.dmi and b/icons/mob/inhands/weapons/polearms_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/polearms_righthand.dmi b/icons/mob/inhands/weapons/polearms_righthand.dmi index b563ade888b..a2ffa21bfcd 100644 Binary files a/icons/mob/inhands/weapons/polearms_righthand.dmi and b/icons/mob/inhands/weapons/polearms_righthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_lefthand.dmi b/icons/mob/inhands/weapons/swords_lefthand.dmi index 0fc31a39013..240fdad9bb3 100644 Binary files a/icons/mob/inhands/weapons/swords_lefthand.dmi and b/icons/mob/inhands/weapons/swords_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/swords_righthand.dmi b/icons/mob/inhands/weapons/swords_righthand.dmi index 7a3baa7e9aa..5996734e8b0 100644 Binary files a/icons/mob/inhands/weapons/swords_righthand.dmi and b/icons/mob/inhands/weapons/swords_righthand.dmi differ diff --git a/icons/obj/items_and_weapons.dmi b/icons/obj/items_and_weapons.dmi index 2523c7c4b47..784d50fb5f2 100644 Binary files a/icons/obj/items_and_weapons.dmi and b/icons/obj/items_and_weapons.dmi differ diff --git a/icons/obj/shards.dmi b/icons/obj/shards.dmi index 78bf5f950c0..f4fbe4078d2 100644 Binary files a/icons/obj/shards.dmi and b/icons/obj/shards.dmi differ diff --git a/modular_skyrat/modules/materials_glass/code/glass.dm b/modular_skyrat/modules/materials_glass/code/glass.dm deleted file mode 100644 index bad8398dc42..00000000000 --- a/modular_skyrat/modules/materials_glass/code/glass.dm +++ /dev/null @@ -1,367 +0,0 @@ -#define BUILD_WINDOW 4 SECONDS // This is the exact same as building a girder -#define BUILD_WINDOW_DIRECTIONAL_MOD 0.5 - -GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( - new/datum/stack_recipe("plastitanium window", /obj/structure/window/reinforced/plasma/plastitanium/unanchored, 2, time = BUILD_WINDOW, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("plasma glass shard", /obj/item/shard/plasma, time = 0, on_floor = TRUE) \ - )) -GLOBAL_LIST_INIT(titaniumglass_recipes, list( - new/datum/stack_recipe("shuttle window", /obj/structure/window/reinforced/shuttle/unanchored, 2, time = BUILD_WINDOW, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("glass shard", /obj/item/shard, time = 0, on_floor = TRUE), \ - new/datum/stack_recipe("spaceship window plate", /obj/item/stack/sheet/spaceshipglass, 1, time = 5), \ - )) -GLOBAL_LIST_INIT(prglass_recipes, list ( \ - new/datum/stack_recipe("directional reinforced window", /obj/structure/window/reinforced/plasma/unanchored, time = BUILD_WINDOW * BUILD_WINDOW_DIRECTIONAL_MOD, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("fulltile reinforced window", /obj/structure/window/reinforced/plasma/fulltile/unanchored, 2, time = BUILD_WINDOW, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("plasma glass shard", /obj/item/shard/plasma, time = 0, on_floor = TRUE) \ - )) -GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ - new/datum/stack_recipe("windoor frame", /obj/structure/windoor_assembly, 5, time = 0, on_floor = TRUE, window_checks = TRUE), \ - null, \ - new/datum/stack_recipe("directional reinforced window", /obj/structure/window/reinforced/unanchored, time = BUILD_WINDOW * BUILD_WINDOW_DIRECTIONAL_MOD, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("fulltile reinforced window", /obj/structure/window/reinforced/fulltile/unanchored, 2, time = BUILD_WINDOW, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("glass shard", /obj/item/shard, time = 0, on_floor = TRUE), \ - new/datum/stack_recipe("reinforced glass tile", /obj/item/stack/tile/rglass, 1, 4, 20) \ - )) -GLOBAL_LIST_INIT(pglass_recipes, list ( \ - new/datum/stack_recipe("directional window", /obj/structure/window/plasma/unanchored, time = BUILD_WINDOW * BUILD_WINDOW_DIRECTIONAL_MOD, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("fulltile window", /obj/structure/window/plasma/fulltile/unanchored, 2, time = BUILD_WINDOW, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("plasma glass shard", /obj/item/shard/plasma, time = 0, on_floor = TRUE) \ - )) -GLOBAL_LIST_INIT(glass_recipes, list ( \ - new/datum/stack_recipe("directional window", /obj/structure/window/unanchored, time = BUILD_WINDOW * BUILD_WINDOW_DIRECTIONAL_MOD, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("fulltile window", /obj/structure/window/fulltile/unanchored, 2, time = BUILD_WINDOW, on_floor = TRUE, window_checks = TRUE), \ - new/datum/stack_recipe("glass shard", /obj/item/shard, time = 0, on_floor = TRUE), \ - new/datum/stack_recipe("glass tile", /obj/item/stack/tile/glass, 1, 4, 20) \ - )) - -/obj/item/stack/sheet/glass//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE - name = "glass" - desc = "HOLY SHEET! That is a lot of glass." - singular_name = "glass sheet" - icon_state = "sheet-glass" - inhand_icon_state = "sheet-glass" - mats_per_unit = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) - armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 50, ACID = 100) - resistance_flags = ACID_PROOF - merge_type = /obj/item/stack/sheet/glass - grind_results = list(/datum/reagent/silicon = 20) - material_type = /datum/material/glass - point_value = 1 - tableVariant = /obj/structure/table/glass - matter_amount = 4 - cost = 500 - source = /datum/robot_energy_storage/glass - -/obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user) - user.visible_message(span_suicide("[user] begins to slice [user.p_their()] neck with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) - return BRUTELOSS - -/obj/item/stack/sheet/glass/fifty - amount = 50 - -/obj/item/stack/sheet/glass/get_main_recipes() - . = ..() - . += GLOB.glass_recipes - -/obj/item/stack/sheet/glass/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - if(istype(W, /obj/item/stack/cable_coil)) - var/obj/item/stack/cable_coil/CC = W - if (get_amount() < 1 || CC.get_amount() < 5) - to_chat(user, span_warning(">You need five lengths of coil and one sheet of glass to make wired glass!")) - return - CC.use(5) - use(1) - to_chat(user, span_notice("You attach wire to the [name].")) - var/obj/item/stack/light_w/new_tile = new(user.loc) - new_tile.add_fingerprint(user) - return - if(istype(W, /obj/item/stack/rods)) - var/obj/item/stack/rods/V = W - if (V.get_amount() >= 1 && get_amount() >= 1) - var/obj/item/stack/sheet/rglass/RG = new (get_turf(user)) - RG.add_fingerprint(user) - var/replace = user.get_inactive_held_item()==src - V.use(1) - use(1) - if(QDELETED(src) && replace) - user.put_in_hands(RG) - else - to_chat(user, span_warning("You need one rod and one sheet of glass to make reinforced glass!")) - return - return ..() - -/obj/item/stack/sheet/plasmaglass//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE - name = "plasma glass" - desc = "A glass sheet made out of a plasma-silicate alloy. It looks extremely tough and heavily fire resistant." - singular_name = "plasma glass sheet" - icon_state = "sheet-pglass" - inhand_icon_state = "sheet-pglass" - mats_per_unit = list(/datum/material/alloy/plasmaglass=MINERAL_MATERIAL_AMOUNT) - material_type = /datum/material/alloy/plasmaglass - armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 75, ACID = 100) - resistance_flags = ACID_PROOF - merge_type = /obj/item/stack/sheet/plasmaglass - grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) - material_flags = NONE - tableVariant = /obj/structure/table/glass/plasmaglass - -/obj/item/stack/sheet/plasmaglass/fifty - amount = 50 - -/obj/item/stack/sheet/plasmaglass/get_main_recipes() - . = ..() - . += GLOB.pglass_recipes - -/obj/item/stack/sheet/plasmaglass/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - - if(istype(W, /obj/item/stack/rods)) - var/obj/item/stack/rods/V = W - if (V.get_amount() >= 1 && get_amount() >= 1) - var/obj/item/stack/sheet/plasmarglass/RG = new (get_turf(user)) - RG.add_fingerprint(user) - var/replace = user.get_inactive_held_item()==src - V.use(1) - use(1) - if(QDELETED(src) && replace) - user.put_in_hands(RG) - else - to_chat(user, span_warning("You need one rod and one sheet of plasma glass to make reinforced plasma glass!")) - return - else - return ..() - -/obj/item/stack/sheet/rglass//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE - name = "reinforced glass" - desc = "Glass which seems to have rods or something stuck in them." - singular_name = "reinforced glass sheet" - icon_state = "sheet-rglass" - inhand_icon_state = "sheet-rglass" - mats_per_unit = list(/datum/material/iron=MINERAL_MATERIAL_AMOUNT * 0.5, /datum/material/glass=MINERAL_MATERIAL_AMOUNT) - armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 70, ACID = 100) - resistance_flags = ACID_PROOF - merge_type = /obj/item/stack/sheet/rglass - grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10) - point_value = 4 - matter_amount = 6 - tableVariant = /obj/structure/table/reinforced/rglass - -/obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params) - add_fingerprint(user) - ..() - -/obj/item/stack/sheet/rglass/cyborg - mats_per_unit = null - cost = 250 - source = /datum/robot_energy_storage/iron - - /// What energy storage this draws glass from as a robot module. - var/datum/robot_energy_storage/glasource = /datum/robot_energy_storage/glass - /// The amount of energy this draws from the glass source per stack unit. - var/glacost = 500 - -/obj/item/stack/sheet/rglass/cyborg/get_amount() - return min(round(source.energy / cost), round(glasource.energy / glacost)) - -/obj/item/stack/sheet/rglass/cyborg/use(used, transfer = FALSE, check = TRUE) // Requires special checks, because it uses two storages - if(get_amount(used)) //ensure we still have enough energy if called in a do_after chain - source.use_charge(used * cost) - glasource.use_charge(used * glacost) - return TRUE - -/obj/item/stack/sheet/rglass/cyborg/add(amount) - source.add_charge(amount * cost) - glasource.add_charge(amount * glacost) - -/obj/item/stack/sheet/rglass/get_main_recipes() - . = ..() - . += GLOB.reinforced_glass_recipes - -/obj/item/stack/sheet/plasmarglass//SKYRAT EDIT - ICON OVERRIDEN BY AESTHETICS - SEE MODULE - name = "reinforced plasma glass" - desc = "A glass sheet made out of a plasma-silicate alloy and a rod matrix. It looks hopelessly tough and nearly fire-proof!" - singular_name = "reinforced plasma glass sheet" - icon_state = "sheet-prglass" - inhand_icon_state = "sheet-prglass" - mats_per_unit = list(/datum/material/alloy/plasmaglass=MINERAL_MATERIAL_AMOUNT, /datum/material/iron = MINERAL_MATERIAL_AMOUNT * 0.5) - armor = list(MELEE = 20, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100) - resistance_flags = ACID_PROOF - material_flags = NONE - merge_type = /obj/item/stack/sheet/plasmarglass - grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10, /datum/reagent/iron = 10) - point_value = 23 - matter_amount = 8 - tableVariant = /obj/structure/table/reinforced/plasmarglass - -/obj/item/stack/sheet/plasmarglass/get_main_recipes() - . = ..() - . += GLOB.prglass_recipes - -/obj/item/stack/sheet/titaniumglass - name = "titanium glass" - desc = "A glass sheet made out of a titanium-silicate alloy." - singular_name = "titanium glass sheet" - icon_state = "sheet-titaniumglass" - inhand_icon_state = "sheet-titaniumglass" - mats_per_unit = list(/datum/material/alloy/titaniumglass=MINERAL_MATERIAL_AMOUNT) - material_type = /datum/material/alloy/titaniumglass - armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100) - resistance_flags = ACID_PROOF - merge_type = /obj/item/stack/sheet/titaniumglass - tableVariant = /obj/structure/table/reinforced/titaniumglass - -/obj/item/stack/sheet/titaniumglass/get_main_recipes() - . = ..() - . += GLOB.titaniumglass_recipes - -/obj/item/stack/sheet/titaniumglass/fifty - amount = 50 - -/obj/item/stack/sheet/plastitaniumglass - name = "plastitanium glass" - desc = "A glass sheet made out of a plasma-titanium-silicate alloy." - singular_name = "plastitanium glass sheet" - icon_state = "sheet-plastitaniumglass" - inhand_icon_state = "sheet-plastitaniumglass" - mats_per_unit = list(/datum/material/alloy/plastitaniumglass=MINERAL_MATERIAL_AMOUNT) - material_type = /datum/material/alloy/plastitaniumglass - armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, BIO = 0, FIRE = 80, ACID = 100) - material_flags = NONE - resistance_flags = ACID_PROOF - merge_type = /obj/item/stack/sheet/plastitaniumglass - tableVariant = /obj/structure/table/reinforced/plastitaniumglass - -/obj/item/stack/sheet/plastitaniumglass/get_main_recipes() - . = ..() - . += GLOB.plastitaniumglass_recipes - -/obj/item/shard - name = "shard" - desc = "A nasty looking shard of glass." - icon = 'icons/obj/shards.dmi' - icon_state = "large" - w_class = WEIGHT_CLASS_TINY - force = 5 - throwforce = 10 - inhand_icon_state = "shard-glass" - lefthand_file = 'icons/mob/inhands/weapons/melee_lefthand.dmi' - righthand_file = 'icons/mob/inhands/weapons/melee_righthand.dmi' - custom_materials = list(/datum/material/glass=MINERAL_MATERIAL_AMOUNT) - attack_verb_continuous = list("stabs", "slashes", "slices", "cuts") - attack_verb_simple = list("stab", "slash", "slice", "cut") - hitsound = 'sound/weapons/bladeslice.ogg' - resistance_flags = ACID_PROOF - armor = list(MELEE = 100, BULLET = 0, LASER = 0, ENERGY = 100, BOMB = 0, BIO = 0, FIRE = 50, ACID = 100) - max_integrity = 40 - sharpness = SHARP_EDGED - var/icon_prefix - var/obj/item/stack/sheet/weld_material = /obj/item/stack/sheet/glass - embedding = list("embed_chance" = 65) - - -/obj/item/shard/suicide_act(mob/user) - user.visible_message(span_suicide("[user] is slitting [user.p_their()] [pick("wrists", "throat")] with the shard of glass! It looks like [user.p_theyre()] trying to commit suicide.")) - return (BRUTELOSS) - - -/obj/item/shard/Initialize() - . = ..() - AddComponent(/datum/component/caltrop, min_damage = force) - AddComponent(/datum/component/butchering, 150, 65) - icon_state = pick("large", "medium", "small") - switch(icon_state) - if("small") - pixel_x = rand(-12, 12) - pixel_y = rand(-12, 12) - if("medium") - pixel_x = rand(-8, 8) - pixel_y = rand(-8, 8) - if("large") - pixel_x = rand(-5, 5) - pixel_y = rand(-5, 5) - if (icon_prefix) - icon_state = "[icon_prefix][icon_state]" - - var/turf/T = get_turf(src) - if(T && is_station_level(T.z)) - SSblackbox.record_feedback("tally", "station_mess_created", 1, name) - var/static/list/loc_connections = list( - COMSIG_ATOM_ENTERED = .proc/on_entered, - ) - AddElement(/datum/element/connect_loc, loc_connections) - -/obj/item/shard/Destroy() - . = ..() - - var/turf/T = get_turf(src) - if(T && is_station_level(T.z)) - SSblackbox.record_feedback("tally", "station_mess_destroyed", 1, name) - -/obj/item/shard/afterattack(atom/A as mob|obj, mob/user, proximity) - . = ..() - if(!proximity || !(src in user)) - return - if(isturf(A)) - return - if(istype(A, /obj/item/storage)) - return - var/hit_hand = ((user.active_hand_index % 2 == 0) ? "r_" : "l_") + "arm" - if(ishuman(user)) - var/mob/living/carbon/human/H = user - if(!H.gloves && !HAS_TRAIT(H, TRAIT_PIERCEIMMUNE)) // golems, etc - to_chat(H, span_warning("[src] cuts into your hand!")) - H.apply_damage(force*0.5, BRUTE, hit_hand) - -/obj/item/shard/attackby(obj/item/I, mob/user, params) - if(istype(I, /obj/item/lightreplacer)) - var/obj/item/lightreplacer/L = I - L.attackby(src, user) - else if(istype(I, /obj/item/stack/sheet/cloth)) - var/obj/item/stack/sheet/cloth/C = I - to_chat(user, span_notice("You begin to wrap the [C] around the [src]...")) - if(do_after(user, 35, target = src)) - var/obj/item/knife/shiv/S = new /obj/item/knife/shiv - C.use(1) - to_chat(user, span_notice("You wrap the [C] around the [src] forming a makeshift weapon.")) - remove_item_from_storage(src) - qdel(src) - user.put_in_hands(S) - - else - return ..() - -/obj/item/shard/welder_act(mob/living/user, obj/item/I) - ..() - if(I.use_tool(src, user, 0, volume=50)) - var/obj/item/stack/sheet/NG = new weld_material(user.loc) - for(var/obj/item/stack/sheet/G in user.loc) - if(G == NG) - continue - if(G.amount >= G.max_amount) - continue - G.attackby(NG, user) - to_chat(user, span_notice("You add the newly-formed [NG.name] to the stack. It now contains [NG.amount] sheet\s.")) - qdel(src) - return TRUE - -/obj/item/shard/proc/on_entered(datum/source, atom/movable/AM) - SIGNAL_HANDLER - if(isliving(AM)) - var/mob/living/L = AM - if(!(L.movement_type & (FLYING|FLOATING)) || L.buckled) - playsound(src, 'sound/effects/glass_step.ogg', HAS_TRAIT(L, TRAIT_LIGHT_STEP) ? 30 : 50, TRUE) - -/obj/item/shard/plasma - name = "purple shard" - desc = "A nasty looking shard of plasma glass." - force = 6 - throwforce = 11 - icon_state = "plasmalarge" - custom_materials = list(/datum/material/alloy/plasmaglass=MINERAL_MATERIAL_AMOUNT) - icon_prefix = "plasma" - weld_material = /obj/item/stack/sheet/plasmaglass - -#undef BUILD_WINDOW_DIRECTIONAL_MOD -#undef BUILD_WINDOW diff --git a/tgstation.dme b/tgstation.dme index ffea8938f2d..47c209d8915 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -5370,7 +5370,6 @@ #include "modular_skyrat\modules\mapping\code\vgdecals.dm" #include "modular_skyrat\modules\mapping\code\wardrobes.dm" #include "modular_skyrat\modules\marines\code\miscellaneous.dm" -#include "modular_skyrat\modules\materials_glass\code\glass.dm" #include "modular_skyrat\modules\medical\code\bodypart.dm" #include "modular_skyrat\modules\medical\code\bodypart_aid.dm" #include "modular_skyrat\modules\medical\code\carbon_defense.dm"