diff --git a/code/datums/storage/storage.dm b/code/datums/storage/storage.dm index d0a8400e209..a35efc2083e 100644 --- a/code/datums/storage/storage.dm +++ b/code/datums/storage/storage.dm @@ -328,6 +328,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) return FALSE if(locked > force) + user.balloon_alert(user, "closed!") return FALSE if((to_insert == resolve_parent) || (to_insert == real_location)) @@ -336,16 +337,16 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(to_insert.w_class > max_specific_storage) if(!is_type_in_typecache(to_insert, exception_hold)) if(messages && user) - to_chat(user, span_warning("\The [to_insert] is too big for \the [resolve_parent]!")) + user.balloon_alert(user, "too big!") return FALSE if(exception_max != INFINITE && exception_max <= exception_count()) if(messages && user) - to_chat(user, span_warning("Too many large items already in \the [resolve_parent], can't fit \the [to_insert]!")) + user.balloon_alert(user, "no room!") return FALSE if(resolve_location.contents.len >= max_slots) if(messages && user && !silent_for_user) - to_chat(user, span_warning("\The [to_insert] can't fit into \the [resolve_parent]! Make some space!")) + user.balloon_alert(user, "no room!") return FALSE var/total_weight = to_insert.w_class @@ -355,37 +356,37 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(total_weight > max_total_storage) if(messages && user && !silent_for_user) - to_chat(user, span_warning("\The [to_insert] can't fit into \the [resolve_parent]! Make some space!")) + user.balloon_alert(user, "no room!") return FALSE if(length(can_hold)) if(!is_type_in_typecache(to_insert, can_hold)) if(messages && user) - to_chat(user, span_warning("\The [resolve_parent] cannot hold \the [to_insert]!")) + user.balloon_alert(user, "can't hold!") return FALSE if(is_type_in_typecache(to_insert, cant_hold) || HAS_TRAIT(to_insert, TRAIT_NO_STORAGE_INSERT) || (can_hold_trait && !HAS_TRAIT(to_insert, can_hold_trait))) if(messages && user) - to_chat(user, span_warning("\The [resolve_parent] cannot hold \the [to_insert]!")) + user.balloon_alert(user, "can't hold!") return FALSE if(HAS_TRAIT(to_insert, TRAIT_NODROP)) if(messages) - to_chat(user, span_warning("\The [to_insert] is stuck on your hand!")) + user.balloon_alert(user, "stuck on your hand!") return FALSE var/datum/storage/biggerfish = resolve_parent.loc.atom_storage // this is valid if the container our resolve_parent is being held in is a storage item if(biggerfish && biggerfish.max_specific_storage < max_specific_storage) if(messages && user) - to_chat(user, span_warning("[to_insert] can't fit in [resolve_parent] while [resolve_parent.loc] is in the way!")) + user.balloon_alert(user, "[lowertext(resolve_parent.loc.name)] is in the way!") return FALSE if(istype(resolve_parent)) var/datum/storage/item_storage = to_insert.atom_storage if((to_insert.w_class >= resolve_parent.w_class) && item_storage && !allow_big_nesting) if(messages && user) - to_chat(user, span_warning("[resolve_parent] cannot hold [to_insert] as it's a storage item of the same size!")) + user.balloon_alert(user, "too big!") return FALSE return TRUE @@ -756,6 +757,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) var/obj/item/resolve_location = real_location.resolve() if(locked) + user.balloon_alert(user, "closed!") return if(!user.CanReach(resolve_parent) || !user.CanReach(dest_object)) return @@ -987,7 +989,7 @@ GLOBAL_LIST_EMPTY(cached_storage_typecaches) if(locked) if(!silent) - resolve_parent.balloon_alert(to_show, "locked!") + resolve_parent.balloon_alert(to_show, "closed!") return FALSE // If we're quickdrawing boys diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index 5b5b9218362..6e57eedeb6b 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -387,9 +387,10 @@ inhand_icon_state = "duffel" actions_types = list(/datum/action/item_action/zipper) storage_type = /datum/storage/duffel + // How much to slow you down if your bag isn't zipped up var/zip_slowdown = 1 /// If this bag is zipped (contents hidden) up or not - /// Starts enabled so people need to figure it out to use the thing + /// Starts enabled so you're forced to interact with it to "get" it var/zipped_up = TRUE /obj/item/storage/backpack/duffelbag/Initialize(mapload) @@ -427,6 +428,7 @@ playsound(src, 'sound/items/un_zip.ogg', 100, FALSE) var/datum/callback/can_unzip = CALLBACK(src, PROC_REF(zipper_matches), TRUE) if(!do_after(user, 2.1 SECONDS, src, extra_checks = can_unzip)) + user.balloon_alert(user, "unzip failed!") return balloon_alert(user, "unzipped") set_zipper(FALSE) @@ -443,6 +445,7 @@ playsound(src, 'sound/items/zip_up.ogg', 100, FALSE) var/datum/callback/can_zip = CALLBACK(src, PROC_REF(zipper_matches), FALSE) if(!do_after(user, 0.5 SECONDS, src, extra_checks = can_zip)) + user.balloon_alert(user, "zip failed!") return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN balloon_alert(user, "zipped") set_zipper(TRUE) @@ -457,7 +460,6 @@ zipped_up = new_zip SEND_SIGNAL(src, COMSIG_DUFFEL_ZIP_CHANGE, new_zip) if(zipped_up) - slowdown = initial(slowdown) atom_storage.locked = STORAGE_SOFT_LOCKED atom_storage.display_contents = FALSE @@ -620,14 +622,14 @@ resistance_flags = FIRE_PROOF /obj/item/storage/backpack/duffelbag/syndie - name = "tactical duffel bag" //SKYRAT EDIT, was "suspicious-looking duffel bag". It's just a black duffel. + name = "tactical duffel bag" //SKYRAT EDIT CHANGE, was "suspicious-looking duffel bag". It's just a black duffel. desc = "A large duffel bag for holding extra tactical supplies." icon_state = "duffel-syndie" inhand_icon_state = "duffel-syndieammo" storage_type = /datum/storage/duffel/syndicate resistance_flags = FIRE_PROOF - special_desc_requirement = EXAMINE_CHECK_SYNDICATE // Skyrat edit - special_desc = "This duffel bag has the Syndicate logo stiched on the inside. It appears to be made from lighter yet sturdier materials." // Skyrat edit + special_desc_requirement = EXAMINE_CHECK_SYNDICATE // SKYRAT EDIT ADDITION + special_desc = "This duffel bag has the Syndicate logo stiched on the inside. It appears to be made from lighter yet sturdier materials." // SKYRAT EDIT ADDITION /obj/item/storage/backpack/duffelbag/syndie/hitman desc = "A large duffel bag for holding extra things. There is a Nanotrasen logo on the back." @@ -652,9 +654,11 @@ /obj/item/storage/backpack/duffelbag/syndie/surgery name = "surgery duffel bag" - desc = "A large duffel bag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools." //SKYRAT EDIT, to match the security surgery bag + desc = "A large duffel bag for holding extra supplies - this one has a material inlay with space for various sharp-looking tools." //SKYRAT EDIT CHANGE, to match the security surgery bag icon_state = "duffel-syndiemed" inhand_icon_state = "duffel-syndiemed" + special_desc_requirement = EXAMINE_CHECK_SYNDICATE // SKYRAT EDIT ADDITION + special_desc = "This duffel bag has the Syndicate logo stiched on the inside. It appears to be made from lighter yet sturdier materials." // SKYRAT EDIT ADDITION /obj/item/storage/backpack/duffelbag/syndie/surgery/PopulateContents() new /obj/item/scalpel/advanced(src)