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 => {