mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 21:48:39 +01:00
[MIRROR] balloon alerts for storage failures [MDB IGNORE] (#22586)
* balloon alerts for storage failures * merge conflicts * Update backpack.dm --------- Co-authored-by: Lufferly <40921881+Lufferly@users.noreply.github.com> Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
This commit is contained in:
co-authored by
Lufferly
Giz
parent
f060680c79
commit
aabca144c5
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user