diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 1159bd44..da34e458 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 af0dca02..b7ab7606 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 5321b5ef..dd2d613b 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 f6588b00..4b6b0689 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 9d1d9d34..d3b6f0e7 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 f8c3ba2f..55bb62d3 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 a63ebd19..3a481124 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 e2727332..5dd7ad48 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 8a1b2c0a..7b498c7c 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 920691bc..e0806cfa 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 ccbbe71c..8c2d02ca 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 de17a35e..f4a1525c 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 13b4a031..74d8a575 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 b8bf2116..e6d44de1 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 5075e765..8701dfea 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 0105defd..61e3d31d 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 011c246b..9951e2ac 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 eda51020..1757bf30 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 be54c276..9f0c6cec 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 cb11406d..f0b5c845 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 fd13da11..6448116c 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 1cfb4800..04c382b2 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 => {