[MIRROR] Titanium and plastitanium shards and weapons + missing textures. [MDB IGNORE] (#13457)
* Titanium and plastitanium shards and weapons + missing textures. * ew Co-authored-by: Comxy <tijntensen@gmail.com> Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
@@ -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)
|
||||
|
||||
@@ -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."
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 5.9 KiB |
|
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 88 KiB After Width: | Height: | Size: 88 KiB |
|
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 11 KiB |
@@ -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
|
||||
@@ -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"
|
||||
|
||||