Files
Bubberstation/code/modules/unit_tests/storage.dm
MrMelbert ec3f5acec0 [MDB Ignore] Damp Rag can now get dirty / Repaths damp rag (it's no longer a cup) (#90700)
- Damp rag is now no longer god's perfect cleaning tool. After blood,
the damp rag will collect it, and after cleaning a lot of blood, you can
no longer clean with the rag until you wash it in a sink (or with
cleaner or however you want)
- This means the rag will collect DNA in it as you clean, which gives
detectives an opportunity to investigate.
- It also means the DNA it collects will occasionally spread onto you,
meaning you will have to clean your gloves or hands.
- Cleaning vomit and such is (currently) unaffected (and does not dirty
the rag).
- Diseases are not currently transferred to the rag (but this would be
fun to add)

- Gauze now gets dirty when using it to wrap bleeding wounds. This is
just visual, though blood DNA gets transferred. It can be washed in a
sink.

- Removed gauze on sink / cloth on sink interaction.
   - Can't really wash gauze with it, plus it's redundant.

- Damp rag is no longer a cup.

Damp rag is just "soap without any downsides", which is kinda lame.
I thought about going a step further and making it require you wet it
first but then it just becomes "mop but small" which is also lame.

Instead, you're required to clean it, which gives janitors / crewmembers
an alternate cleaning method:
- Soap: Small, finite, limited. Can't be replenished.
- Cleaner: Small, finite, even more limited, ranged. Can be refilled
with chemistry's help.
- Mop: Large, infinite, limited. Needs a water bucket.
- Damp Rag: Small, infinite, limited. Need to clean it after a few goes.

🆑 Melbert
balance: Damp Rags can now get dirty when using them to clean blood,
passing blood DNA along.
add: Gauze now gets dirty when apply it to actively bleeding wounds.
Doesn't spread disease or anything, just passes blood DNA. It can be
cleaned in a sink.
del: Removed cloth on sink / gauze on sink interaction to make rags.
Just use the crafting menu
/🆑
2025-05-22 21:14:47 -04:00

44 lines
1.9 KiB
Plaintext

/// Test storage datums
/datum/unit_test/storage
/datum/unit_test/storage/Run()
var/obj/item/big_thing = allocate(__IMPLIED_TYPE__, run_loc_floor_bottom_left)
big_thing.w_class = WEIGHT_CLASS_BULKY
var/obj/item/small_thing = allocate(__IMPLIED_TYPE__, run_loc_floor_bottom_left)
small_thing.w_class = WEIGHT_CLASS_SMALL
var/obj/item/storage/backpack/storage_item = allocate(__IMPLIED_TYPE__, run_loc_floor_bottom_left)
storage_item.atom_storage.attempt_insert(big_thing)
TEST_ASSERT_NOTEQUAL(big_thing.loc, storage_item, "A bulky item should have failed to insert into a backpack")
storage_item.atom_storage.attempt_insert(small_thing)
TEST_ASSERT_EQUAL(small_thing.loc, storage_item, "A small item should have successfully inserted into a backpack")
small_thing.update_weight_class(WEIGHT_CLASS_NORMAL)
TEST_ASSERT_EQUAL(small_thing.loc, storage_item, "A small item changed into normal size should not have ejected from the backpack")
small_thing.update_weight_class(WEIGHT_CLASS_BULKY)
TEST_ASSERT_NOTEQUAL(small_thing.loc, storage_item, "A small item changed back into bulky size should have ejected from the backpack")
/datum/unit_test/common_item_inserting
/datum/unit_test/common_item_inserting/Run()
var/obj/item/storage/backpack/bag = allocate(__IMPLIED_TYPE__, run_loc_floor_bottom_left)
var/mob/living/carbon/human/consistent/dummy = allocate(__IMPLIED_TYPE__, run_loc_floor_bottom_left)
bag.atom_storage.max_slots = INFINITY
bag.atom_storage.max_total_storage = INFINITY
var/list/common_noncombat_insertion_items = list(
/obj/item/rag,
/obj/item/soap,
/obj/item/card/emag,
/obj/item/detective_scanner,
)
dummy.set_combat_mode(TRUE)
for(var/item_type in common_noncombat_insertion_items)
var/obj/item/item = allocate(item_type, run_loc_floor_bottom_left)
item.melee_attack_chain(dummy, bag)
TEST_ASSERT_EQUAL(item.loc, bag, "[item_type] was unable to be inserted into a backpack on click while off combat mode")