diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 1159bd44a..da34e4585 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -26,6 +26,7 @@ GLOBAL_LIST_INIT(glass_recipes, list ( \ grind_results = list(/datum/reagent/silicon = 20) point_value = 1 tableVariant = /obj/structure/table/glass + shard_type = /obj/item/shard /obj/item/stack/sheet/glass/suicide_act(mob/living/carbon/user) user.visible_message("[user] begins to slice [user.p_their()] neck with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") @@ -93,6 +94,7 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ merge_type = /obj/item/stack/sheet/plasmaglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/toxin/plasma = 10) tableVariant = /obj/structure/table/plasmaglass + shard_type = /obj/item/shard/plasma /obj/item/stack/sheet/plasmaglass/fifty amount = 50 @@ -120,7 +122,9 @@ GLOBAL_LIST_INIT(pglass_recipes, list ( \ else return ..() - +/obj/item/stack/sheet/plasmaglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 1.2 + S.efficiency *= 1.2 /* * Reinforced glass sheets @@ -145,11 +149,15 @@ GLOBAL_LIST_INIT(reinforced_glass_recipes, list ( \ merge_type = /obj/item/stack/sheet/rglass grind_results = list(/datum/reagent/silicon = 20, /datum/reagent/iron = 10) point_value = 4 + shard_type = /obj/item/shard /obj/item/stack/sheet/rglass/attackby(obj/item/W, mob/user, params) add_fingerprint(user) ..() +/obj/item/stack/sheet/rglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 2 + /obj/item/stack/sheet/rglass/cyborg materials = list() var/datum/robot_energy_storage/glasource @@ -188,6 +196,11 @@ GLOBAL_LIST_INIT(prglass_recipes, list ( \ 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 + shard_type = /obj/item/shard/plasma + +/obj/item/stack/sheet/plasmarglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 2.2 + S.efficiency *= 1.2 /obj/item/stack/sheet/plasmarglass/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.prglass_recipes @@ -207,6 +220,11 @@ GLOBAL_LIST_INIT(titaniumglass_recipes, list( armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/titaniumglass + shard_type = /obj/item/shard + +/obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 2.5 + S.efficiency *= 1.5 /obj/item/stack/sheet/titaniumglass/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.titaniumglass_recipes @@ -226,11 +244,16 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list( armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) resistance_flags = ACID_PROOF merge_type = /obj/item/stack/sheet/plastitaniumglass + shard_type = /obj/item/shard /obj/item/stack/sheet/plastitaniumglass/Initialize(mapload, new_amount, merge = TRUE) recipes = GLOB.plastitaniumglass_recipes return ..() +/obj/item/stack/sheet/titaniumglass/on_solar_construction(obj/machinery/power/solar/S) + S.obj_integrity *= 2 + S.efficiency *= 2 + /obj/item/shard name = "shard" desc = "A nasty looking shard of glass." diff --git a/code/game/objects/items/stacks/sheets/sheets.dm b/code/game/objects/items/stacks/sheets/sheets.dm index af0dca02d..b7ab76065 100644 --- a/code/game/objects/items/stacks/sheets/sheets.dm +++ b/code/game/objects/items/stacks/sheets/sheets.dm @@ -15,4 +15,15 @@ var/point_value = 0 //turn-in value for the gulag stacker - loosely relative to its rarity var/is_fabric = FALSE //is this a valid material for the loom? var/loom_result //result from pulling on the loom - var/pull_effort = 0 //amount of delay when pulling on the loom \ No newline at end of file + var/pull_effort = 0 //amount of delay when pulling on the loom + var/shard_type // the shard debris typepath left over by solar panels and windows etc. + +/** + * Called on the glass sheet upon solar construction (duh): + * Different glass sheets can modify different stas/vars, such as obj_integrity or efficiency + * and possibly extra effects if you wish to code them. + * Keep in mind the solars' max_integrity is set equal to the obj_integrity later, + * so you won't have to do so here. + */ +/obj/item/stack/sheet/proc/on_solar_construction(/obj/machinery/power/solar/S) + return diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index 5321b5ef2..dd2d613be 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -324,7 +324,7 @@ /obj/item/storage/pill_bottle/mutarad name = "radiation treatment deluxe pill bottle" - desc = "The label says 'Med-Co branded pills' and below that 'Contains Mutadone in each pill!`." + desc = "The label says 'Med-Co branded pills' and below that 'Contains Mutadone in each pill!'." /obj/item/storage/pill_bottle/mutarad/PopulateContents() for(var/i in 1 to 7) @@ -340,7 +340,7 @@ /obj/item/storage/pill_bottle/breast_enlargement name = "breast enlargement pills" - desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warming states not to take more than 10u at a time." + desc = "Made by Fermichem - They have a woman with breasts larger than she is on them. The warning states not to take more than 10u at a time." /obj/item/storage/pill_bottle/breast_enlargement/PopulateContents() for(var/i in 1 to 7) diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index f6588b00d..4b6b06899 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -15,7 +15,8 @@ var/decon_speed = 30 var/wtype = "glass" var/fulltile = FALSE - var/glass_type = /obj/item/stack/sheet/glass + var/obj/item/stack/sheet/glass_type = /obj/item/stack/sheet/glass + var/cleanable_type = /obj/effect/decal/cleanable/glass var/glass_amount = 1 var/mutable_appearance/crack_overlay can_be_unanchored = TRUE @@ -279,12 +280,15 @@ /obj/structure/window/proc/spawnDebris(location) . = list() - . += new /obj/item/shard(location) - . += new /obj/effect/decal/cleanable/glass(location) + var/shard = initial(glass_type.shard_type) + if(shard) + . += new shard(location) + if (fulltile) + . += new shard(location) + if(cleanable_type) + . += new cleanable_type(location) if (reinf) . += new /obj/item/stack/rods(location, (fulltile ? 2 : 1)) - if (fulltile) - . += new /obj/item/shard(location) /obj/structure/window/proc/can_be_rotated(mob/user,rotation_type) if(anchored) @@ -411,17 +415,9 @@ max_integrity = 150 explosion_block = 1 glass_type = /obj/item/stack/sheet/plasmaglass + cleanable_type = /obj/effect/decal/cleanable/glass/plasma rad_insulation = RAD_NO_INSULATION -/obj/structure/window/plasma/spawnDebris(location) - . = list() - . += new /obj/item/shard/plasma(location) - . += new /obj/effect/decal/cleanable/glass/plasma(location) - if (reinf) - . += new /obj/item/stack/rods(location, (fulltile ? 2 : 1)) - if (fulltile) - . += new /obj/item/shard/plasma(location) - /obj/structure/window/plasma/spawner/east dir = EAST @@ -884,11 +880,6 @@ level = 3 glass_amount = 2 -/obj/structure/window/reinforced/clockwork/spawnDebris(location) - . = list() - for(var/i in 1 to 4) - . += new /obj/item/clockwork/alloy_shards/medium/gear_bit(location) - /obj/structure/window/reinforced/clockwork/Initialize(mapload, direct) made_glow = TRUE new /obj/effect/temp_visual/ratvar/window(get_turf(src)) diff --git a/code/modules/awaymissions/mission_code/snowdin.dm b/code/modules/awaymissions/mission_code/snowdin.dm index 9d1d9d343..d3b6f0e7d 100644 --- a/code/modules/awaymissions/mission_code/snowdin.dm +++ b/code/modules/awaymissions/mission_code/snowdin.dm @@ -323,7 +323,7 @@ /obj/item/paper/fluff/awaymissions/snowdin/secnotice name = "Security Notice" - info = {"YOu have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked + info = {"You have been assigned to this Arctic Post with intention of protecting Nanotrasen assets and ensuring vital information is kept secure while the stationed crew obeys protocol. The picked staff for this post have been pre-screened with no prior incidients on record, but incase of an issue you have been given a single holding cell and instructions to contact Central to terminate the offending crewmember."} diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index f8c3ba2f0..55bb62d39 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -189,7 +189,7 @@ crate_name = "swat crate" /datum/supply_pack/security/armory/swattasers //Lesser AEG tbh - name = "SWAT tatical tasers Crate" + name = "SWAT tactical tasers Crate" desc = "Contains two tactical energy gun, these guns are able to tase, disable and lethal as well as hold a seclight. Requires Armory access to open." cost = 7000 contains = list(/obj/item/gun/energy/e_gun/stun, diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index a63ebd193..3a481124f 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -21,19 +21,19 @@ /obj/item/clothing/under/syndicate/tacticool name = "tacticool turtleneck" - desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." - icon_state = "tactifool" + desc = "A robust looking turtleneck designed to fit tightly against the body while still being comfortable." + icon_state = "syndicate" item_state = "bl_suit" - item_color = "tactifool" + item_color = "syndicate" has_sensor = HAS_SENSORS armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) /obj/item/clothing/under/syndicate/tacticool/skirt name = "tacticool skirtleneck" - desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." - icon_state = "tactifool_skirt" + desc = "A robust looking skirtleneck designed to fit tightly against the body while still being comfortable." + icon_state = "syndicate_skirt" item_state = "bl_suit" - item_color = "tactifool_skirt" + item_color = "syndicate_skirt" has_sensor = HAS_SENSORS armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/food_and_drinks/food/snacks_salad.dm b/code/modules/food_and_drinks/food/snacks_salad.dm index e27273323..5dd7ad486 100644 --- a/code/modules/food_and_drinks/food/snacks_salad.dm +++ b/code/modules/food_and_drinks/food/snacks_salad.dm @@ -116,3 +116,12 @@ bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) tastes = list("rice" = 1, "egg" = 1) foodtype = GRAIN | MEAT //EGG = MEAT -NinjaNomNom 2017 + +/obj/item/reagent_containers/food/snacks/salad/hellcobb + name = "hell cobb salad" + desc = "If you're being honest with yourself it's just a bowl of mushrooms with chunks of meat and an egg." + icon_state = "hellcobb" + trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl + bonus_reagents = list(/datum/reagent/consumable/nutriment = 4, /datum/reagent/consumable/nutriment/vitamin = 4) + tastes = list("fruity cactus" = 5, "ash" = 1, "tough meat" = 3, "your eternal damnation" = 1) + foodtype = FRUIT | MEAT | VEGETABLES //MUSHROOM = VEGETABLE -VladinXXV 2021 diff --git a/code/modules/food_and_drinks/food/snacks_soup.dm b/code/modules/food_and_drinks/food/snacks_soup.dm index 8a1b2c0a2..7b498c7c1 100644 --- a/code/modules/food_and_drinks/food/snacks_soup.dm +++ b/code/modules/food_and_drinks/food/snacks_soup.dm @@ -254,3 +254,20 @@ tastes = list("bungo" = 2, "hot curry" = 4, "tropical sweetness" = 1) filling_color = "#E6A625" foodtype = VEGETABLES | FRUIT | DAIRY + +/obj/item/reagent_containers/food/snacks/soup/creamofwastes + name = "cream of the wastes soup" + desc = "Locals say the bowl gives it a unique flavor each time. That might just be whatever killed the goliath getting in your bowl, though." + icon_state = "wastessoup" + trash = /obj/item/reagent_containers/glass/bowl/mushroom_bowl + var/snowflake_reagent = null + list_reagents = list(/datum/reagent/consumable/nutriment = 6) + tastes = list("a fresh kill" = 3, "creamy mushroom" = 5, "a warm sunset over the scorched landscape of hell" = 1) + +/obj/item/reagent_containers/food/snacks/soup/creamofwastes/Initialize() + . = ..() + snowflake_reagent = pick(/datum/reagent/consumable/capsaicin, /datum/reagent/consumable/frostoil, + /datum/reagent/blood, /datum/reagent/oil, /datum/reagent/consumable/honey, + /datum/reagent/carbon, /datum/reagent/drug/mushroomhallucinogen) + bonus_reagents = list(snowflake_reagent = 5, /datum/reagent/consumable/nutriment = 6) + reagents.add_reagent(snowflake_reagent, 5) diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm index 920691bcb..e0806cfa6 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_salad.dm @@ -94,3 +94,16 @@ ) result = /obj/item/reagent_containers/food/snacks/salad/citrusdelight subcategory = CAT_SALAD + +/datum/crafting_recipe/food/hellcobb + name = "Hell Cobb Salad" + reqs = list( + /obj/item/reagent_containers/glass/bowl/mushroom_bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf = 3, + /obj/item/reagent_containers/food/snacks/grown/ash_flora/cactus_fruit = 2, + /obj/item/reagent_containers/food/snacks/meat/steak/goliath = 1, + /obj/item/reagent_containers/food/snacks/boiledegg = 1 + + ) + result = /obj/item/reagent_containers/food/snacks/salad/hellcobb + subcategory = CAT_SALAD diff --git a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm index ccbbe71c2..8c2d02cab 100644 --- a/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm +++ b/code/modules/food_and_drinks/recipes/tablecraft/recipes_soup.dm @@ -247,3 +247,15 @@ ) result = /obj/item/reagent_containers/food/snacks/soup/macaco subcategory = CAT_SOUP + +/datum/crafting_recipe/food/creamofwastes + name = "Cream of the Wastes soup" + reqs = list( + /datum/reagent/consumable/milk = 10, + /obj/item/reagent_containers/glass/bowl/mushroom_bowl = 1, + /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_leaf = 1, + /obj/item/reagent_containers/food/snacks/grown/ash_flora/mushroom_stem =2, + /obj/item/reagent_containers/food/snacks/meat/steak/goliath = 2 //wanted to make this three cutlets, but goliath meat doesn't get a unique cutlet + ) + result = /obj/item/reagent_containers/food/snacks/soup/creamofwastes + subcategory = CAT_SOUP diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index de17a35e7..f4a1525ce 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -509,7 +509,7 @@ GLOBAL_LIST(cachedbooks) // List of our cached book datums name = "scanner control interface" icon = 'icons/obj/library.dmi' icon_state = "bigscanner" - desc = "It servers the purpose of scanning stuff." + desc = "It serves the purpose of scanning stuff." density = TRUE var/obj/item/book/cache // Last scanned book diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 13b4a031c..74d8a575b 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -407,7 +407,7 @@ if(O) O.on_life() else - if(reagents.has_reagent("formaldehyde", 1)) // No organ decay if the body contains formaldehyde. + if(reagents.has_reagent(/datum/reagent/toxin/formaldehyde, 1)) // No organ decay if the body contains formaldehyde. return for(var/V in internal_organs) var/obj/item/organ/O = V diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index b8bf21169..e6d44de19 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -19,6 +19,8 @@ var/ndir = SOUTH // target dir var/turn_angle = 0 var/obj/machinery/power/solar_control/control = null + var/obj/item/solar_assembly/assembly + var/efficiency = 1 /obj/machinery/power/solar/Initialize(mapload, obj/item/solar_assembly/S) . = ..() @@ -45,14 +47,13 @@ /obj/machinery/power/solar/proc/Make(obj/item/solar_assembly/S) if(!S) - S = new /obj/item/solar_assembly(src) - S.glass_type = /obj/item/stack/sheet/glass + S = new /obj/item/solar_assembly + S.glass_type = new /obj/item/stack/sheet/glass(null, 2) S.anchored = TRUE else - S.forceMove(src) - if(S.glass_type == /obj/item/stack/sheet/rglass) //if the panel is in reinforced glass - max_integrity *= 2 //this need to be placed here, because panels already on the map don't have an assembly linked to - obj_integrity = max_integrity + S.moveToNullspace() + S.glass_type.on_solar_construction(src) + obj_integrity = max_integrity update_icon() /obj/machinery/power/solar/crowbar_act(mob/user, obj/item/I) @@ -85,14 +86,14 @@ /obj/machinery/power/solar/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(disassembled) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.forceMove(loc) - S.give_glass(stat & BROKEN) + if(assembly) + assembly.forceMove(loc) + assembly.give_glass(stat & BROKEN) else playsound(src, "shatter", 70, 1) - new /obj/item/shard(src.loc) - new /obj/item/shard(src.loc) + var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard + new shard(loc) + new shard(loc) qdel(src) @@ -131,7 +132,7 @@ if(powernet == control.powernet)//check if the panel is still connected to the computer if(obscured) //get no light from the sun, so don't generate power return - var/sgen = SOLARGENRATE * sunfrac + var/sgen = SOLARGENRATE * sunfrac * efficiency add_avail(sgen) control.gen += sgen else //if we're no longer on the same powernet, remove from control computer @@ -186,19 +187,23 @@ w_class = WEIGHT_CLASS_BULKY // Pretty big! anchored = FALSE var/tracker = 0 - var/glass_type = null + var/obj/item/stack/sheet/glass_type + var/static/list/allowed_sheets = typecacheof(list(/obj/item/stack/sheet/glass, /obj/item/stack/sheet/rglass, + /obj/item/stack/sheet/plasmaglass, /obj/item/stack/sheet/plasmarglass, + /obj/item/stack/sheet/titaniumglass, /obj/item/stack/sheet/plastitaniumglass)) // Give back the glass type we were supplied with /obj/item/solar_assembly/proc/give_glass(device_broken) var/atom/Tsec = drop_location() if(device_broken) - new /obj/item/shard(Tsec) - new /obj/item/shard(Tsec) + var/shard = glass_type ? glass_type.shard_type : /obj/item/shard + if(shard) + new shard(Tsec) + new shard(Tsec) else if(glass_type) - new glass_type(Tsec, 2) + forceMove(glass_type, Tsec) glass_type = null - /obj/item/solar_assembly/attackby(obj/item/W, mob/user, params) if(istype(W, /obj/item/wrench) && isturf(loc)) if(isinspace()) @@ -213,13 +218,14 @@ W.play_tool_sound(src, 75) return 1 - if(istype(W, /obj/item/stack/sheet/glass) || istype(W, /obj/item/stack/sheet/rglass)) + if(is_type_in_typecache(W, allowed_sheets)) if(!anchored) to_chat(user, "You need to secure the assembly before you can add glass.") return var/obj/item/stack/sheet/S = W - if(S.use(2)) - glass_type = W.type + var/obj/item/stack/sheet/G = S.change_stack(null, 2) + if(G) + glass_type = G playsound(src.loc, 'sound/machines/click.ogg', 50, 1) user.visible_message("[user] places the glass on the solar assembly.", "You place the glass on the solar assembly.") if(tracker) diff --git a/code/modules/power/tracker.dm b/code/modules/power/tracker.dm index 5075e7656..8701dfea7 100644 --- a/code/modules/power/tracker.dm +++ b/code/modules/power/tracker.dm @@ -16,10 +16,19 @@ var/id = 0 var/sun_angle = 0 // sun angle as set by sun datum var/obj/machinery/power/solar_control/control = null + var/obj/item/solar_assembly/assembly /obj/machinery/power/tracker/Initialize(mapload, obj/item/solar_assembly/S) . = ..() - Make(S) + if(!S) + assembly = new /obj/item/solar_assembly + assembly.glass_type = new /obj/item/stack/sheet/glass(null, 2) + assembly.tracker = TRUE + assembly.anchored = TRUE + else + S.moveToNullspace() + assembly = S + update_icon() connect_to_network() /obj/machinery/power/tracker/Destroy() @@ -40,15 +49,6 @@ control.connected_tracker = null control = null -/obj/machinery/power/tracker/proc/Make(obj/item/solar_assembly/S) - if(!S) - S = new /obj/item/solar_assembly(src) - S.glass_type = /obj/item/stack/sheet/glass - S.tracker = 1 - S.anchored = TRUE - S.forceMove(src) - update_icon() - //updates the tracker icon and the facing angle for the control computer /obj/machinery/power/tracker/proc/set_angle(angle) sun_angle = angle @@ -77,14 +77,14 @@ /obj/machinery/power/solar/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) if(disassembled) - var/obj/item/solar_assembly/S = locate() in src - if(S) - S.forceMove(loc) - S.give_glass(stat & BROKEN) + if(assembly) + assembly.forceMove(loc) + assembly.give_glass(stat & BROKEN) else playsound(src, "shatter", 70, 1) - new /obj/item/shard(src.loc) - new /obj/item/shard(src.loc) + var/shard = assembly?.glass_type ? assembly.glass_type.shard_type : /obj/item/shard + new shard(loc) + new shard(loc) qdel(src) // Tracker Electronic diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 0105defd6..61e3d31d5 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -206,7 +206,7 @@ item_state = "combatshotgun" mag_type = /obj/item/ammo_box/magazine/internal/shot/com w_class = WEIGHT_CLASS_HUGE - unique_reskin = list("Tatical" = "cshotgun", + unique_reskin = list("Tactical" = "cshotgun", "Slick" = "cshotgun_slick" ) diff --git a/icons/obj/food/soupsalad.dmi b/icons/obj/food/soupsalad.dmi index 011c246bd..9951e2ac7 100644 Binary files a/icons/obj/food/soupsalad.dmi and b/icons/obj/food/soupsalad.dmi differ diff --git a/modular_citadel/code/modules/arousal/organs/belly.dm b/modular_citadel/code/modules/arousal/organs/belly.dm index eda510204..1757bf308 100644 --- a/modular_citadel/code/modules/arousal/organs/belly.dm +++ b/modular_citadel/code/modules/arousal/organs/belly.dm @@ -27,7 +27,7 @@ var/string if(owner) if(owner.dna.species.use_skintones && owner.dna.features["genitals_use_skintone"]) - if(ishuman(owner)) . + if(ishuman(owner)) var/mob/living/carbon/human/H = owner color = "#[skintone2hex(H.skin_tone)]" else diff --git a/modular_citadel/code/modules/client/loadout/_security.dm b/modular_citadel/code/modules/client/loadout/_security.dm index be54c276a..9f0c6cecb 100644 --- a/modular_citadel/code/modules/client/loadout/_security.dm +++ b/modular_citadel/code/modules/client/loadout/_security.dm @@ -1,41 +1,41 @@ /datum/gear/navyblueuniformhos - name = "Head of Security navyblue uniform" + name = "Head of Security's navyblue uniform" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/rank/head_of_security/navyblue restricted_roles = list("Head of Security") /datum/gear/navybluehosberet - name = "Head of security's Naviblue beret" + name = "Head of Security's navyblue beret" category = SLOT_HEAD path = /obj/item/clothing/head/beret/sec/navyhos restricted_roles = list("Head of Security") /datum/gear/navybluejackethos - name = "head of security's navyblue jacket" + name = "Head of Security's navyblue jacket" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/security/hos restricted_roles = list("Head of Security") /datum/gear/navybluejacketofficer - name = "security officer's navyblue jacket" + name = "Security Officer's navyblue jacket" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/security/officer restricted_roles = list("Security Officer") /datum/gear/navyblueofficerberet - name = "Security officer's Navyblue beret" + name = "Security Officer's navyblue beret" category = SLOT_HEAD path = /obj/item/clothing/head/beret/sec/navyofficer restricted_roles = list("Security Officer") /datum/gear/navyblueuniformofficer - name = "Security officer navyblue uniform" + name = "Security Officer's navyblue uniform" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/rank/security/navyblue restricted_roles = list("Security Officer") /datum/gear/navybluejacketwarden - name = "warden navyblue jacket" + name = "Warden's navyblue jacket" category = SLOT_WEAR_SUIT path = /obj/item/clothing/suit/security/warden restricted_roles = list("Warden") @@ -47,7 +47,7 @@ restricted_roles = list("Warden") /datum/gear/navyblueuniformwarden - name = "Warden navyblue uniform" + name = "Warden's navyblue uniform" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/rank/warden/navyblue restricted_roles = list("Warden") @@ -59,13 +59,13 @@ restricted_roles = list("Security Officer", "Warden", "Head of Security") /datum/gear/hosskirt - name = "Head of security's skirt" + name = "Head of Security's skirt" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/rank/head_of_security/skirt restricted_roles = list("Head of Security") /datum/gear/sechud - name = "Security Hud" + name = "Security HUD" category = SLOT_GLASSES path = /obj/item/clothing/glasses/hud/security restricted_roles = list("Security Officer", "Warden", "Head of Security") diff --git a/modular_citadel/code/modules/client/loadout/uniform.dm b/modular_citadel/code/modules/client/loadout/uniform.dm index cb11406d6..f0b5c845c 100644 --- a/modular_citadel/code/modules/client/loadout/uniform.dm +++ b/modular_citadel/code/modules/client/loadout/uniform.dm @@ -193,7 +193,7 @@ // Pantsless Sweaters /datum/gear/turtleneck - name = "Tactitool Turtleneck" + name = "Tactifool Turtleneck" category = SLOT_W_UNIFORM path = /obj/item/clothing/under/syndicate/cosmetic diff --git a/modular_citadel/code/modules/clothing/under/turtlenecks.dm b/modular_citadel/code/modules/clothing/under/turtlenecks.dm index fd13da11e..6448116cc 100644 --- a/modular_citadel/code/modules/clothing/under/turtlenecks.dm +++ b/modular_citadel/code/modules/clothing/under/turtlenecks.dm @@ -23,7 +23,7 @@ new /obj/item/clothing/under/rank/chief_medical_officer/turtleneck(src) /obj/item/clothing/under/syndicate/cosmetic - name = "tactitool turtleneck" + name = "tactifool turtleneck" desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool" item_state = "bl_suit" @@ -32,9 +32,6 @@ mutantrace_variation = NO_MUTANTRACE_VARIATION armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0, fire = 0, acid = 0) -/obj/item/clothing/under/syndicate/tacticool - has_sensor = TRUE - // Sweaters are good enough for this category too. /obj/item/clothing/under/bb_sweater diff --git a/tgui-next/packages/tgui/interfaces/SolarControl.js b/tgui-next/packages/tgui/interfaces/SolarControl.js index 1cfb4800c..04c382b2d 100644 --- a/tgui-next/packages/tgui/interfaces/SolarControl.js +++ b/tgui-next/packages/tgui/interfaces/SolarControl.js @@ -1,17 +1,17 @@ import { toFixed } from 'common/math'; import { Fragment } from 'inferno'; -import { useBackend } from '../backend'; +import { act } from '../byond'; import { Box, Button, Grid, LabeledList, NumberInput, ProgressBar, Section } from '../components'; export const SolarControl = props => { - const { act, data } = useBackend(props); + const { state } = props; + const { config, data } = state; + const { ref } = config; const { generated, - generated_ratio, - azimuth_current, - azimuth_rate, - max_rotation_rate, + angle, tracking_state, + tracking_rate, connected_panels, connected_tracker, } = data; @@ -23,7 +23,7 @@ export const SolarControl = props => {