From 3000d75ad5215744e06c41183724ecbc4ca38818 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Thu, 28 Jan 2021 03:27:25 +0100 Subject: [PATCH] Adds aquariums and aquarium fish. (#56343) (#2920) Co-authored-by: tralezab Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com> Co-authored-by: Aleksej Komarov Co-authored-by: Qustinnus Co-authored-by: coiax Co-authored-by: AnturK Co-authored-by: tralezab Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com> Co-authored-by: Aleksej Komarov Co-authored-by: Qustinnus Co-authored-by: coiax --- code/__DEFINES/aquarium.dm | 27 ++ code/__DEFINES/dcs/signals.dm | 6 + code/__DEFINES/traits.dm | 2 + code/datums/components/aquarium.dm | 212 ++++++++++++++ code/datums/components/crafting/recipes.dm | 10 + .../components/storage/concrete/fish_case.dm | 10 + code/datums/components/storage/storage.dm | 6 +- .../elements/deferred_aquarium_content.dm | 27 ++ .../mood_events/generic_negative_events.dm | 5 + .../mood_events/generic_positive_events.dm | 5 + code/game/objects/items/food/meat.dm | 5 + code/modules/aquarium/aquarium.dm | 251 +++++++++++++++++ code/modules/aquarium/aquarium_behaviour.dm | 259 ++++++++++++++++++ code/modules/aquarium/fish.dm | 143 ++++++++++ code/modules/aquarium/misc.dm | 125 +++++++++ code/modules/asset_cache/asset_list_items.dm | 19 ++ code/modules/cargo/packs.dm | 21 ++ code/modules/library/lib_items.dm | 7 +- icons/obj/aquarium.dmi | Bin 0 -> 9640 bytes icons/obj/library.dmi | Bin 27872 -> 28231 bytes icons/obj/storage.dmi | Bin 81758 -> 79729 bytes tgstation.dme | 8 + tgui/packages/tgui/interfaces/Aquarium.js | 59 ++++ tgui/packages/tgui/interfaces/FishCatalog.js | 82 ++++++ 24 files changed, 1285 insertions(+), 4 deletions(-) create mode 100644 code/__DEFINES/aquarium.dm create mode 100644 code/datums/components/aquarium.dm create mode 100644 code/datums/components/storage/concrete/fish_case.dm create mode 100644 code/datums/elements/deferred_aquarium_content.dm create mode 100644 code/modules/aquarium/aquarium.dm create mode 100644 code/modules/aquarium/aquarium_behaviour.dm create mode 100644 code/modules/aquarium/fish.dm create mode 100644 code/modules/aquarium/misc.dm create mode 100644 icons/obj/aquarium.dmi create mode 100644 tgui/packages/tgui/interfaces/Aquarium.js create mode 100644 tgui/packages/tgui/interfaces/FishCatalog.js diff --git a/code/__DEFINES/aquarium.dm b/code/__DEFINES/aquarium.dm new file mode 100644 index 00000000000..735c9a90a82 --- /dev/null +++ b/code/__DEFINES/aquarium.dm @@ -0,0 +1,27 @@ +#define AQUARIUM_ANIMATION_FISH_SWIM "fish" +#define AQUARIUM_ANIMATION_FISH_DEAD "dead" + +#define AQUARIUM_PROPERTIES_PX_MIN "px_min" +#define AQUARIUM_PROPERTIES_PX_MAX "px_max" +#define AQUARIUM_PROPERTIES_PY_MIN "py_min" +#define AQUARIUM_PROPERTIES_PY_MAX "py_max" + +#define AQUARIUM_LAYER_MODE_BOTTOM "bottom" +#define AQUARIUM_LAYER_MODE_TOP "top" +#define AQUARIUM_LAYER_MODE_AUTO "auto" + +#define FISH_ALIVE "alive" +#define FISH_DEAD "dead" + +#define MIN_AQUARIUM_TEMP T0C +#define MAX_AQUARIUM_TEMP T0C + 100 + +#define FISH_RARITY_BASIC 1000 +#define FISH_RARITY_RARE 400 +#define FISH_RARITY_VERY_RARE 200 +#define FISH_RARITY_GOOD_LUCK_FINDING_THIS 1 + +#define AQUARIUM_FLUID_FRESHWATER "Freshwater" +#define AQUARIUM_FLUID_SALTWATER "Saltwater" +#define AQUARIUM_FLUID_SULPHWATEVER "Sulphuric Water" +#define AQUARIUM_FLUID_AIR "Air" diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index dde65cf58be..2b75057dd0d 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -1000,3 +1000,9 @@ #define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack" ///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity) #define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" + + +// Aquarium related signals +#define COMSIG_AQUARIUM_BEFORE_INSERT_CHECK "aquarium_about_to_be_inserted" +#define COMSIG_AQUARIUM_SURFACE_CHANGED "aquarium_surface_changed" +#define COMSIG_AQUARIUM_FLUID_CHANGED "aquarium_fluid_changed" diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 5d508344dda..500ead5a708 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -318,6 +318,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_NO_TELEPORT "no-teleport" //you just can't #define TRAIT_FOOD_GRILLED "food_grilled" #define TRAIT_NEEDS_TWO_HANDS "needstwohands" //The items needs two hands to be carried +#define TRAIT_FISH_SAFE_STORAGE "fish_case" //Fish in this won't die +#define TRAIT_FISH_CASE_COMPATIBILE "fish_case_compatibile" //Stuff that can go inside fish cases //quirk traits #define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance" diff --git a/code/datums/components/aquarium.dm b/code/datums/components/aquarium.dm new file mode 100644 index 00000000000..f3b64aea165 --- /dev/null +++ b/code/datums/components/aquarium.dm @@ -0,0 +1,212 @@ +/// Allows movables to be inserted/displayed in aquariums. +/datum/component/aquarium_content + /// This is a datum that describes our in-aquarium functionality + var/datum/aquarium_behaviour/properties + + /// Keeps track of our current aquarium. + var/obj/structure/aquarium/current_aquarium + + //This is visual effect holder that will end up in aquarium's vis_contents + var/obj/effect/vc_obj + + /// Base px offset of the visual object in current aquarium aka current base position + var/base_px = 0 + /// Base px offset of the visual object in current aquarium aka current base position + var/base_py = 0 + //Current layer for the visual object + var/base_layer + +/datum/component/aquarium_content/Initialize(property_type) + if(!ismovable(parent)) + return COMPONENT_INCOMPATIBLE + if(ispath(property_type, /datum/aquarium_behaviour)) + properties = new property_type + else + CRASH("Invalid property type provided for aquarium content component") + properties.parent = src + + ADD_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, src) + RegisterSignal(parent, COMSIG_MOVABLE_MOVED, .proc/enter_aquarium) + +/datum/component/aquarium_content/PreTransfer() + . = ..() + REMOVE_TRAIT(parent, TRAIT_FISH_CASE_COMPATIBILE, src) + +/datum/component/aquarium_content/Destroy(force, silent) + if(current_aquarium) + remove_from_aquarium() + QDEL_NULL(vc_obj) + QDEL_NULL(properties) + return ..() + +/datum/component/aquarium_content/proc/enter_aquarium(datum/source, OldLoc, Dir, Forced) + SIGNAL_HANDLER + var/atom/movable/movable_parent = parent + if(istype(movable_parent.loc, /obj/structure/aquarium)) + on_inserted(movable_parent.loc) + if(HAS_TRAIT(movable_parent.loc, TRAIT_FISH_SAFE_STORAGE)) + on_tank_stasis() + +/datum/component/aquarium_content/proc/is_ready_to_insert(obj/structure/aquarium/aquarium) + //This is kinda awful but we're unaware of other fish + if(properties.unique) + for(var/atom/movable/fish_or_prop in aquarium) + if(fish_or_prop == parent) + continue + var/datum/component/aquarium_content/other_content = fish_or_prop.GetComponent(/datum/component/aquarium_content) + if(other_content && other_content.properties.type == properties.type) + return FALSE + return TRUE + +/datum/component/aquarium_content/proc/on_inserted(atom/aquarium) + current_aquarium = aquarium + RegisterSignal(current_aquarium, COMSIG_ATOM_EXITED, .proc/on_removed) + RegisterSignal(current_aquarium, COMSIG_AQUARIUM_SURFACE_CHANGED, .proc/on_surface_changed) + RegisterSignal(current_aquarium, COMSIG_AQUARIUM_FLUID_CHANGED,.proc/on_fluid_changed) + RegisterSignal(current_aquarium, COMSIG_PARENT_ATTACKBY, .proc/attack_reaction) + properties.on_inserted() + + //If we don't have vc object yet build it + if(!vc_obj) + vc_obj = generate_base_vc() + + //Set default position and layer + set_vc_base_position() + generate_animation() + + //Finally add it to to objects vis_contents + current_aquarium.vis_contents |= vc_obj + + +/// Aquarium surface changed in some way, we need to recalculate base position and aninmation +/datum/component/aquarium_content/proc/on_surface_changed() + SIGNAL_HANDLER + set_vc_base_position() + generate_animation() //our animation start point changed, gotta redo + +/// Our aquarium is hit with stuff +/datum/component/aquarium_content/proc/attack_reaction(datum/source, obj/item/thing, mob/user, params) + SIGNAL_HANDLER + if(istype(thing, /obj/item/fish_feed)) + properties.on_feeding(thing.reagents) + return COMPONENT_NO_AFTERATTACK + else + //stirred effect + generate_animation() + +/datum/component/aquarium_content/proc/on_fluid_changed() + SIGNAL_HANDLER + properties.on_fluid_changed() + +/datum/component/aquarium_content/proc/remove_visual_from_aquarium() + current_aquarium.vis_contents -= vc_obj + if(base_layer) + current_aquarium.free_layer(base_layer) + + +/// Generates common visual object, propeties that don't depend on aquarium surface +/datum/component/aquarium_content/proc/generate_base_vc() + if(!properties) + CRASH("Generating visual without properties.") + + var/obj/effect/visual = new + properties.apply_appearance(visual) + visual.vis_flags |= VIS_INHERIT_ID | VIS_INHERIT_PLANE //plane so it shows properly in containers on inventory ui for handheld cases + return visual + +/// Actually animates the vc holder +/datum/component/aquarium_content/proc/generate_animation() + switch(properties.current_animation) + if(AQUARIUM_ANIMATION_FISH_SWIM) + swim_animation() + return + if(AQUARIUM_ANIMATION_FISH_DEAD) + dead_animation() + return + + +/// Create looping random path animation, pixel offsets parameters include offsets already +/datum/component/aquarium_content/proc/swim_animation() + var/avg_width = round(properties.sprite_width / 2) + var/avg_height = round(properties.sprite_height / 2) + + var/list/aq_properties = current_aquarium.get_surface_properties() + var/px_min = aq_properties[AQUARIUM_PROPERTIES_PX_MIN] + avg_width - 16 + var/px_max = aq_properties[AQUARIUM_PROPERTIES_PX_MAX] - avg_width - 16 + var/py_min = aq_properties[AQUARIUM_PROPERTIES_PY_MIN] + avg_height - 16 + var/py_max = aq_properties[AQUARIUM_PROPERTIES_PY_MAX] - avg_width - 16 + + var/origin_x = base_px + var/origin_y = base_py + var/prev_x = origin_x + var/prev_y = origin_y + animate(vc_obj, pixel_x = origin_x, time = 0, loop = -1) //Just to start the animation + var/move_number = rand(3, 5) //maybe unhardcode this + for(var/i in 1 to move_number) + //If it's last movement, move back to start otherwise move to some random point + var/target_x = i == move_number ? origin_x : rand(px_min,px_max) //could do with enforcing minimal delta for prettier zigzags + var/target_y = i == move_number ? origin_y : rand(py_min,py_max) + var/dx = prev_x - target_x + var/dy = prev_y - target_y + prev_x = target_x + prev_y = target_y + var/dist = abs(dx) + abs(dy) + var/eyeballed_time = dist * 2 //2ds per px + //Face the direction we're going + var/matrix/dir_mx = properties.base_transform() + if(dx <= 0) //assuming default sprite is facing left here + dir_mx.Scale(-1, 1) + animate(transform = dir_mx, time = 0, loop = -1) + animate(pixel_x = target_x, pixel_y = target_y, time = eyeballed_time, loop = -1) + +/datum/component/aquarium_content/proc/dead_animation() + //Set base_py to lowest possible value + var/avg_height = round(properties.sprite_height / 2) + var/list/aq_properties = current_aquarium.get_surface_properties() + var/py_min = aq_properties[AQUARIUM_PROPERTIES_PY_MIN] + avg_height - 16 + base_py = py_min + animate(vc_obj, pixel_y = py_min, time = 1) //flop to bottom and end current animation. + + +/// Floating to top animation. +/datum/component/aquarium_content/proc/float_animation() + return + + +/datum/component/aquarium_content/proc/set_vc_base_position() + var/list/aq_properties = current_aquarium.get_surface_properties() + if(properties.randomize_position) + var/avg_width = round(properties.sprite_width / 2) + var/avg_height = round(properties.sprite_height / 2) + var/px_min = aq_properties[AQUARIUM_PROPERTIES_PX_MIN] + avg_width - 16 + var/px_max = aq_properties[AQUARIUM_PROPERTIES_PX_MAX] - avg_width - 16 + var/py_min = aq_properties[AQUARIUM_PROPERTIES_PY_MIN] + avg_height - 16 + var/py_max = aq_properties[AQUARIUM_PROPERTIES_PY_MAX] - avg_width - 16 + + base_px = rand(px_min,px_max) + base_py = rand(py_min,py_max) + + vc_obj.pixel_x = base_px + vc_obj.pixel_y = base_py + + if(base_layer) + current_aquarium.free_layer(base_layer) + base_layer = current_aquarium.request_layer(properties.layer_mode) + vc_obj.layer = base_layer + +/datum/component/aquarium_content/proc/on_removed(datum/source, atom/movable/mover) + SIGNAL_HANDLER + if(mover != parent) + return + remove_from_aquarium() + +/datum/component/aquarium_content/proc/remove_from_aquarium() + properties.before_removal() + UnregisterSignal(current_aquarium, list(COMSIG_AQUARIUM_SURFACE_CHANGED, COMSIG_AQUARIUM_FLUID_CHANGED, COMSIG_PARENT_ATTACKBY, COMSIG_ATOM_EXITED)) + remove_visual_from_aquarium() + current_aquarium = null + //We do not stop processing properties here. We want fish to die outside of aquariums after first insert. We only stop processing in properties.death or destroy + +/datum/component/aquarium_content/proc/on_tank_stasis() + // Stop processing until inserted into aquarium again. + STOP_PROCESSING(SSobj, properties) diff --git a/code/datums/components/crafting/recipes.dm b/code/datums/components/crafting/recipes.dm index bfd953e2684..472b098738e 100644 --- a/code/datums/components/crafting/recipes.dm +++ b/code/datums/components/crafting/recipes.dm @@ -1076,3 +1076,13 @@ /obj/item/grenade/gas_crystal/zauker_crystal = 1 ) category = CAT_MISC + +/datum/crafting_recipe/aquarium + name = "Aquarium" + result = /obj/structure/aquarium + time = 10 SECONDS + reqs = list(/obj/item/stack/sheet/metal = 15, + /obj/item/stack/sheet/glass = 10, + /obj/item/aquarium_kit = 1 + ) + category = CAT_MISC diff --git a/code/datums/components/storage/concrete/fish_case.dm b/code/datums/components/storage/concrete/fish_case.dm new file mode 100644 index 00000000000..4b74aa8c09b --- /dev/null +++ b/code/datums/components/storage/concrete/fish_case.dm @@ -0,0 +1,10 @@ +/datum/component/storage/concrete/fish_case + max_items = 1 + can_hold_trait = TRAIT_FISH_CASE_COMPATIBILE + can_hold_description = "fish and aquarium equipment" + +/datum/component/storage/concrete/fish_case/can_be_inserted(obj/item/I, stop_messages, mob/M) + /// Activate deferred components if any. + SEND_SIGNAL(I, COMSIG_AQUARIUM_BEFORE_INSERT_CHECK) + . = ..() + diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm index 536562a7344..adf3dd34747 100644 --- a/code/datums/components/storage/storage.dm +++ b/code/datums/components/storage/storage.dm @@ -8,7 +8,9 @@ var/list/can_hold //if this is set, only items, and their children, will fit var/list/cant_hold //if this is set, items, and their children, won't fit - var/list/exception_hold //if set, these items will be the exception to the max size of object that can fit. + var/list/exception_hold //if set, these items will be the exception to the max size of object that can fit. + /// If set can only contain stuff with this single trait present. + var/list/can_hold_trait var/can_hold_description @@ -630,7 +632,7 @@ if(!stop_messages) to_chat(M, "[host] cannot hold [I]!") return FALSE - if(is_type_in_typecache(I, cant_hold) || HAS_TRAIT(I, TRAIT_NO_STORAGE_INSERT)) //Items which this container can't hold. + if(is_type_in_typecache(I, cant_hold) || HAS_TRAIT(I, TRAIT_NO_STORAGE_INSERT) || (can_hold_trait && !HAS_TRAIT(I, can_hold_trait))) //Items which this container can't hold. if(!stop_messages) to_chat(M, "[host] cannot hold [I]!") return FALSE diff --git a/code/datums/elements/deferred_aquarium_content.dm b/code/datums/elements/deferred_aquarium_content.dm new file mode 100644 index 00000000000..007dae515a3 --- /dev/null +++ b/code/datums/elements/deferred_aquarium_content.dm @@ -0,0 +1,27 @@ +/** + * Create /datum/component/aquarium_content with the preset path on the target right before being inserted into aquarium and deletes itself. + * Used to save memory from aquarium properties on common objects/stacks that won't see aquarium in 99 out of 100 rounds. + */ +/datum/element/deferred_aquarium_content + element_flags = ELEMENT_BESPOKE + id_arg_index = 2 + var/aquarium_content_type + +/datum/element/deferred_aquarium_content/Attach(datum/target, aquarium_content_type) + . = ..() + if(!ismovable(target)) + return ELEMENT_INCOMPATIBLE + if(!aquarium_content_type) + CRASH("Deferred aquarium content missing behaviour type.") + src.aquarium_content_type = aquarium_content_type + RegisterSignal(target, COMSIG_AQUARIUM_BEFORE_INSERT_CHECK, .proc/create_aquarium_component) + +/datum/element/deferred_aquarium_content/Detach(datum/target) + . = ..() + UnregisterSignal(target, COMSIG_AQUARIUM_BEFORE_INSERT_CHECK) + +/datum/element/deferred_aquarium_content/proc/create_aquarium_component(datum/source) + SIGNAL_HANDLER + + source.AddComponent(/datum/component/aquarium_content, aquarium_content_type) + Detach(source) diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm index c8c62372b1a..50261b04ab6 100644 --- a/code/datums/mood_events/generic_negative_events.dm +++ b/code/datums/mood_events/generic_negative_events.dm @@ -305,3 +305,8 @@ description = "OW!! That was even worse than a regular noogie!\n" mood_change = -4 timeout = 1 MINUTES + +/datum/mood_event/aquarium_negative + description = "All the fish are dead...\n" + mood_change = -3 + timeout = 1.5 MINUTES diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index c8eaabd7e37..bd65ccf29b3 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -218,3 +218,8 @@ description = "HA! What a rube, they never stood a chance...\n" mood_change = 4 timeout = 1.5 MINUTES + +/datum/mood_event/aquarium_positive + description = "Watching fish in aquarium is calming.\n" + mood_change = 3 + timeout = 1.5 MINUTES diff --git a/code/game/objects/items/food/meat.dm b/code/game/objects/items/food/meat.dm index bac93865ad1..d4cff5baf7c 100644 --- a/code/game/objects/items/food/meat.dm +++ b/code/game/objects/items/food/meat.dm @@ -34,6 +34,11 @@ name = "imitation carp fillet" desc = "Almost just like the real thing, kinda." +/obj/item/food/carpmeat/icantbeliveitsnotcarp + name = "fish fillet" + desc = "A fillet of unspecified fish meat." + food_reagents = list(/datum/reagent/consumable/nutriment/protein = 4, /datum/reagent/consumable/nutriment/vitamin = 2) //No carpotoxin + /obj/item/food/fishfingers name = "fish fingers" desc = "A finger of fish." diff --git a/code/modules/aquarium/aquarium.dm b/code/modules/aquarium/aquarium.dm new file mode 100644 index 00000000000..6a4e48b64c1 --- /dev/null +++ b/code/modules/aquarium/aquarium.dm @@ -0,0 +1,251 @@ +#define AQUARIUM_LAYER_STEP 0.01 +/// Aquarium content layer offsets +#define AQUARIUM_MIN_OFFSET 0.01 +#define AQUARIUM_MAX_OFFSET 1 + +/obj/structure/aquarium + name = "aquarium" + density = TRUE + anchored = TRUE + + icon = 'icons/obj/aquarium.dmi' + icon_state = "aquarium_base" + + integrity_failure = 0.3 + + var/fluid_type = AQUARIUM_FLUID_FRESHWATER + var/fluid_temp = MIN_AQUARIUM_TEMP + var/min_fluid_temp = MIN_AQUARIUM_TEMP + var/max_fluid_temp = MAX_AQUARIUM_TEMP + var/lamp = FALSE + + var/glass_icon_state = "aquarium_glass" + var/broken_glass_icon_state = "aquarium_glass_broken" + + //This is the area where fish can swim + var/aquarium_zone_min_px = 2 + var/aquarium_zone_max_px = 31 + var/aquarium_zone_min_py = 10 + var/aquarium_zone_max_py = 24 + + var/list/fluid_types = list(AQUARIUM_FLUID_SALTWATER, AQUARIUM_FLUID_FRESHWATER, AQUARIUM_FLUID_SULPHWATEVER, AQUARIUM_FLUID_AIR) + + var/panel_open = TRUE + + ///Current layers in use by aquarium contents + var/list/used_layers = list() + + var/alive_fish = 0 + var/dead_fish = 0 + +/obj/structure/aquarium/Initialize() + . = ..() + update_icon() + RegisterSignal(src,COMSIG_PARENT_ATTACKBY, .proc/feed_feedback) + + +/obj/structure/aquarium/proc/request_layer(layer_type) + /** + * base aq layer + * min_offset = this value is returned on bottom layer mode + * min_offset + 0.1 fish1 + * min_offset + 0.2 fish2 + * ... these layers are returned for auto layer mode and tracked by used_layers + * min_offset + max_offset = this value is returned for top layer mode + * min_offset + max_offset + 1 = this is used for glass overlay + */ + //optional todo: hook up sending surface changed on aquarium changing layers + switch(layer_type) + if(AQUARIUM_LAYER_MODE_BOTTOM) + return layer + AQUARIUM_MIN_OFFSET + if(AQUARIUM_LAYER_MODE_TOP) + return layer + AQUARIUM_MAX_OFFSET + if(AQUARIUM_LAYER_MODE_AUTO) + var/chosen_layer = layer + AQUARIUM_MIN_OFFSET + AQUARIUM_LAYER_STEP + while((chosen_layer in used_layers) && (chosen_layer <= layer + AQUARIUM_MAX_OFFSET)) + chosen_layer += AQUARIUM_LAYER_STEP + used_layers += chosen_layer + return chosen_layer + +/obj/structure/aquarium/proc/free_layer(value) + used_layers -= value + +/obj/structure/aquarium/proc/get_surface_properties() + . = list() + .[AQUARIUM_PROPERTIES_PX_MIN] = aquarium_zone_min_px + .[AQUARIUM_PROPERTIES_PX_MAX] = aquarium_zone_max_px + .[AQUARIUM_PROPERTIES_PY_MIN] = aquarium_zone_min_py + .[AQUARIUM_PROPERTIES_PY_MAX] = aquarium_zone_max_py + +/obj/structure/aquarium/update_overlays() + . = ..() + if(panel_open) + . += "panel" + + //Glass overlay goes on top of everything else. + var/mutable_appearance/glass_overlay = mutable_appearance(icon,broken ? broken_glass_icon_state : glass_icon_state,layer=AQUARIUM_MAX_OFFSET-1) + . += glass_overlay + +/obj/structure/aquarium/examine(mob/user) + . = ..() + . += "Alt-click to [panel_open ? "close" : "open"] the control panel." + +/obj/structure/aquarium/AltClick(mob/user) + if(!user.canUseTopic(src, BE_CLOSE)) + return ..() + panel_open = !panel_open + update_icon() + +/obj/structure/aquarium/wrench_act(mob/living/user, obj/item/I) + if(default_unfasten_wrench(user,I)) + return TRUE + +/obj/structure/aquarium/attackby(obj/item/I, mob/living/user, params) + if(broken) + var/obj/item/stack/sheet/glass/glass = I + if(istype(glass)) + if(glass.get_amount() < 2) + to_chat(user, "You need two glass sheets to fix the case!") + return + to_chat(user, "You start fixing [src]...") + if(do_after(user, 2 SECONDS, target = src)) + glass.use(2) + broken = FALSE + obj_integrity = max_integrity + update_icon() + return TRUE + else + // This signal exists so we common items instead of adding component on init can just register creation of one in response. + // This way we can avoid the cost of 9999 aquarium components on rocks that will never see water in their life. + SEND_SIGNAL(I,COMSIG_AQUARIUM_BEFORE_INSERT_CHECK,src) + var/datum/component/aquarium_content/content_component = I.GetComponent(/datum/component/aquarium_content) + if(content_component && content_component.is_ready_to_insert(src)) + if(user.transferItemToLoc(I,src)) + update_icon() + return TRUE + else + return ..() + return ..() + +/obj/structure/aquarium/proc/feed_feedback(datum/source, obj/item/thing, mob/user, params) + SIGNAL_HANDLER + if(istype(thing, /obj/item/fish_feed)) + to_chat(user,"You feed the fish.") + return NONE + +/obj/structure/aquarium/interact(mob/user) + if(!broken && user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + var/mob/living/living_pulled = user.pulling + SEND_SIGNAL(living_pulled, COMSIG_AQUARIUM_BEFORE_INSERT_CHECK,src) + var/datum/component/aquarium_content/content_component = living_pulled.GetComponent(/datum/component/aquarium_content) + if(content_component && content_component.is_ready_to_insert(src)) + try_to_put_mob_in(user) + else if(panel_open) + . = ..() //call base ui_interact + else + admire(user) + +/// Tries to put mob pulled by the user in the aquarium after a delay +/obj/structure/aquarium/proc/try_to_put_mob_in(mob/user) + if(user.pulling && user.a_intent == INTENT_GRAB && isliving(user.pulling)) + var/mob/living/living_pulled = user.pulling + if(living_pulled.buckled || living_pulled.has_buckled_mobs()) + to_chat(user, "[living_pulled] is attached to something!") + return + user.visible_message("[user] starts to put [living_pulled] into [src]!") + if(do_after(user, 10 SECONDS, target = src)) + if(QDELETED(living_pulled) || user.pulling != living_pulled || living_pulled.buckled || living_pulled.has_buckled_mobs()) + return + var/datum/component/aquarium_content/content_component = living_pulled.GetComponent(/datum/component/aquarium_content) + if(content_component || content_component.is_ready_to_insert(src)) + return + user.visible_message("[user] stuffs [living_pulled] into [src]!") + living_pulled.forceMove(src) + update_icon() + +///Apply mood bonus depending on aquarium status +/obj/structure/aquarium/proc/admire(mob/user) + to_chat(user,"You take a moment to watch [src].") + if(do_after(user, 5 SECONDS, target = src)) + //Check if there are live fish - good mood + //All fish dead - bad mood. + //No fish - nothing. + if(alive_fish > 0) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "aquarium", /datum/mood_event/aquarium_positive) + else if(dead_fish > 0) + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "aquarium", /datum/mood_event/aquarium_negative) + // Could maybe scale power of this mood with number/types of fish + +/obj/structure/aquarium/ui_data(mob/user) + . = ..() + .["fluid_type"] = fluid_type + .["temperature"] = fluid_temp + var/list/content_data = list() + for(var/atom/movable/fish in contents) + content_data += list(list("name"=fish.name,"ref"=ref(fish))) + .["contents"] = content_data + +/obj/structure/aquarium/ui_static_data(mob/user) + . = ..() + //I guess these should depend on the fluid so lava critters can get high or stuff below water freezing point but let's keep it simple for now. + .["minTemperature"] = min_fluid_temp + .["maxTemperature"] = max_fluid_temp + .["fluidTypes"] = fluid_types + +/obj/structure/aquarium/ui_act(action, params) + . = ..() + if(.) + return + var/mob/user = usr + switch(action) + if("temperature") + var/temperature = params["temperature"] + if(isnum(temperature)) + fluid_temp = clamp(temperature, min_fluid_temp, max_fluid_temp) + . = TRUE + if("fluid") + if(params["fluid"] in fluid_types) + fluid_type = params["fluid"] + SEND_SIGNAL(src, COMSIG_AQUARIUM_FLUID_CHANGED, fluid_type) + . = TRUE + if("remove") + var/atom/movable/inside = locate(params["ref"]) in contents + if(inside) + if(isitem(inside)) + user.put_in_hands(inside) + else + inside.forceMove(get_turf(src)) + to_chat(user,"You take out [inside] from [src].") + +/obj/structure/aquarium/ui_interact(mob/user, datum/tgui/ui) + . = ..() + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Aquarium", name) + ui.open() + +/obj/structure/aquarium/obj_break(damage_flag) + . = ..() + if(!broken) + aquarium_smash() + +/obj/structure/aquarium/proc/aquarium_smash() + broken = TRUE + var/possible_destinations_for_fish = list() + var/droploc = drop_location() + if(isturf(droploc)) + possible_destinations_for_fish = get_adjacent_open_turfs(droploc) + else + possible_destinations_for_fish = list(droploc) + playsound(src, 'sound/effects/glassbr3.ogg', 100, TRUE) + for(var/atom/movable/fish in contents) + fish.forceMove(pick(possible_destinations_for_fish)) + if(fluid_type != AQUARIUM_FLUID_AIR) + var/datum/reagents/reagent_splash = new() + reagent_splash.add_reagent(/datum/reagent/water, 30) + chem_splash(droploc, 3, list(reagent_splash)) + update_icon() + +#undef AQUARIUM_LAYER_STEP +#undef AQUARIUM_MIN_OFFSET +#undef AQUARIUM_MAX_OFFSET diff --git a/code/modules/aquarium/aquarium_behaviour.dm b/code/modules/aquarium/aquarium_behaviour.dm new file mode 100644 index 00000000000..eadf21d07f2 --- /dev/null +++ b/code/modules/aquarium/aquarium_behaviour.dm @@ -0,0 +1,259 @@ +// Configuration objects defining prop/fish behaviour in the aquarium +// These are used as a base for autogenerating the actual instances +/datum/aquarium_behaviour + var/name = "base aquarium element" + var/desc = "" + + var/unique = FALSE + + var/icon = 'icons/obj/aquarium.dmi' + /// Icon state used for catalog/autogenerated fish item. Also used as basis for in aquarium visual if dedicated_in_aquarium_icon_state is not set. + var/icon_state + /// Applied and item/catalog for use with greyscaled icons. + var/color + + /// How the thing will be layered + var/layer_mode = AQUARIUM_LAYER_MODE_AUTO + /// If the starting position is randomised within bounds. + var/randomize_position = FALSE + + /** + * Fish sprite how to: + * Need to be centered on 16,16 in the dmi and facing left by default. + * sprite_height/sprite_width is the size it will have in aquarium and used to control animation boundaries. + * source_height/source_width is the size of the original icon (ideally only the non-empty parts) + */ + + /// If this is set this icon state will be used for the holder while icon_state will only be used for item/catalog. Transformation from source_width/height WON'T be applied. + var/dedicated_in_aquarium_icon_state + /// Applied to vc object only for use with greyscaled icons. + var/aquarium_vc_color + + //Target sprite size for path/position calculations. + var/sprite_height = 3 + var/sprite_width = 3 + //This is the size of the source sprite. This will be used to calculate scale down factor. + var/source_width = 32 + var/source_height = 32 + + /// Current animation + var/current_animation + + /// Does this behviour need additional processing in aquarium, will be added to SSobj processing on insertion + var/processing = FALSE + + /// Our holder component + var/datum/component/aquarium_content/parent + +/// Applies icon,color and base scaling to our visual holder +/datum/aquarium_behaviour/proc/apply_appearance(obj/effect/holder) + holder.icon = icon + if(dedicated_in_aquarium_icon_state) + holder.icon_state = dedicated_in_aquarium_icon_state + else + holder.icon_state = icon_state + holder.transform = base_transform() + if(aquarium_vc_color) + holder.color = aquarium_vc_color + +// Generates scaling matrix for our visual +/datum/aquarium_behaviour/proc/base_transform() + var/matrix/matrix = matrix() + if(!dedicated_in_aquarium_icon_state) + var/x_scale = sprite_width / source_width + var/y_scale = sprite_height / source_height + matrix.Scale(x_scale, y_scale) + return matrix + +/// Called when fed. +/datum/aquarium_behaviour/proc/on_feeding(datum/reagents/feed_reagents) + return + +/// Called when aquarium fluid changes. +/datum/aquarium_behaviour/proc/on_fluid_changed() + return + +/// Called to update current animation based on state +/datum/aquarium_behaviour/proc/update_animation() + return + +/// Called when inserted into new aquarium +/datum/aquarium_behaviour/proc/on_inserted() + if(processing) + START_PROCESSING(SSobj, src) + +/// Called just before the object gets removed from the aquarium +/datum/aquarium_behaviour/proc/before_removal() + return + +/datum/aquarium_behaviour/Destroy(force, ...) + STOP_PROCESSING(SSobj, src) + parent = null + return ..() + +/datum/aquarium_behaviour/prop + name = "aquarium prop" + unique = TRUE + layer_mode = AQUARIUM_LAYER_MODE_BOTTOM + + // Prop sprites do not need any scaling they go 1:1 + sprite_width = 32 + sprite_height = 32 + source_width = 32 + source_height = 32 + +/datum/aquarium_behaviour/prop/rocks + name = "rocks" + icon_state = "rocks" + +/datum/aquarium_behaviour/prop/seaweed_top + name = "dense seaweeds" + icon_state = "seaweeds_front" + layer_mode = AQUARIUM_LAYER_MODE_TOP + +/datum/aquarium_behaviour/prop/seaweed + name = "seaweeds" + icon_state = "seaweeds_back" + layer_mode = AQUARIUM_LAYER_MODE_BOTTOM + +/datum/aquarium_behaviour/prop/rockfloor + name = "rock floor" + icon_state = "rockfloor" + layer_mode = AQUARIUM_LAYER_MODE_BOTTOM + +/datum/aquarium_behaviour/prop/treasure + name = "tiny treasure chest" + icon_state = "treasure" + layer_mode = AQUARIUM_LAYER_MODE_BOTTOM + +/datum/aquarium_behaviour/fish + name = "generic fish" + icon_state = "fish_greyscale" + randomize_position = TRUE //We have random starting point of our swim path + + current_animation = AQUARIUM_ANIMATION_FISH_SWIM + processing = TRUE + + // Default size of the "greyscale_fish" icon_state + sprite_height = 3 + sprite_width = 3 + + /// Required fluid type for this fish to live. + var/required_fluid_type = AQUARIUM_FLUID_FRESHWATER + + /// Required minimum temperature for the fish to live. + var/required_temperature_min = MIN_AQUARIUM_TEMP + /// Maximum possible temperature for the fish to live. + var/required_temperature_max = MAX_AQUARIUM_TEMP + + /// What type of reagent this fish needs to be fed. + var/food = /datum/reagent/consumable/nutriment + /// How often the fish needs to be fed + var/feeding_frequency = 5 MINUTES + /// Time of last feedeing + var/last_feeding + + /// Fish status + var/status = FISH_ALIVE + + /// Current fish health. Dies at 0. + var/health = 100 + + /// Should this fish type show in fish catalog + var/show_in_catalog = TRUE + /// Should this fish spawn in random fish cases + var/availible_in_random_cases = TRUE + /// How rare this fish is in the random cases + var/random_case_rarity = FISH_RARITY_BASIC + + /// Fish autogenerated from this behaviour will be processable into this + var/fillet_type = /obj/item/food/carpmeat/icantbeliveitsnotcarp + + +/datum/aquarium_behaviour/fish/on_inserted() + . = ..() + if(isnull(last_feeding)) //Fish start fed. + last_feeding = world.time + if(status == FISH_DEAD) + parent.current_aquarium.dead_fish += 1 + else + parent.current_aquarium.alive_fish += 1 + +/datum/aquarium_behaviour/fish/before_removal() + . = ..() + if(status == FISH_DEAD) + parent.current_aquarium.dead_fish -= 1 + else + parent.current_aquarium.alive_fish -= 1 + +/datum/aquarium_behaviour/fish/on_fluid_changed() + //In case we'll flop to bottom from this or go back to swimming. + update_animation() + +/// Updates our animation variable based on state and prompts component to animate it. +/datum/aquarium_behaviour/fish/update_animation() + var/obj/structure/aquarium/aquarium = parent.current_aquarium + var/old_animation = current_animation + if(!aquarium || aquarium.fluid_type == AQUARIUM_FLUID_AIR || status == FISH_DEAD) + current_animation = AQUARIUM_ANIMATION_FISH_DEAD + else + current_animation = AQUARIUM_ANIMATION_FISH_SWIM + if(aquarium && old_animation != current_animation) + parent.generate_animation() + +/datum/aquarium_behaviour/fish/on_feeding(datum/reagents/feed_reagents) + if(feed_reagents.has_reagent(food)) + last_feeding = world.time + +/// Checks if our current environment lets us live. +/datum/aquarium_behaviour/fish/proc/proper_environment() + var/obj/structure/aquarium/aquarium = parent.current_aquarium + if(!aquarium) + return FALSE + if(aquarium.fluid_type != required_fluid_type) + return FALSE + if(aquarium.fluid_temp < required_temperature_min || aquarium.fluid_temp > required_temperature_max) + return FALSE + return TRUE + +/datum/aquarium_behaviour/fish/process(delta_time) + set waitfor = FALSE + + var/health_change_per_second = 0 + if(!proper_environment()) + health_change_per_second -= 3 //Dying here + if(world.time - last_feeding >= feeding_frequency) + health_change_per_second -= 0.5 //Starving + else + health_change_per_second += 0.5 //Slowly healing + health = clamp(health + health_change_per_second * delta_time, 0, initial(health)) + if(health <= 0) + death() + +/datum/aquarium_behaviour/fish/proc/death() + STOP_PROCESSING(SSobj, src) + status = FISH_DEAD + var/message = "\The [name] dies." + if(parent.current_aquarium) + parent.current_aquarium.visible_message(message) + parent.current_aquarium.alive_fish -= 1 + parent.current_aquarium.dead_fish += 1 + else + var/atom/movable/AM = parent.parent + AM.visible_message(message) + update_animation() + + +/// This path exists mostly for admin abuse. +/datum/aquarium_behaviour/fish/auto + name = "automatic fish" + desc = "generates fish appearance automatically from component parent appearance" + availible_in_random_cases = FALSE + sprite_width = 8 + sprite_height = 8 + show_in_catalog = FALSE + +/datum/aquarium_behaviour/fish/auto/apply_appearance(obj/effect/holder) + holder.appearance = parent.parent + holder.transform = base_transform() + holder.dir = WEST diff --git a/code/modules/aquarium/fish.dm b/code/modules/aquarium/fish.dm new file mode 100644 index 00000000000..b37e7ff30e7 --- /dev/null +++ b/code/modules/aquarium/fish.dm @@ -0,0 +1,143 @@ +// Fish path used for autogenerated fish +/obj/item/fish + name = "generic looking aquarium fish" + desc = "very bland" + w_class = WEIGHT_CLASS_TINY + +/// Automatically generates object of given base path from the behaviour type in loc +/proc/generate_fish(loc,behaviour_type,base_path=/obj/item/fish) + var/datum/aquarium_behaviour/behaviour = behaviour_type + var/obj/item/fish = new /obj/item/fish(loc) + fish.name = initial(behaviour.name) + fish.icon = initial(behaviour.icon) + fish.icon_state = initial(behaviour.icon_state) + fish.desc = initial(behaviour.desc) + if(initial(behaviour.color)) + fish.add_atom_colour(initial(behaviour.color), FIXED_COLOUR_PRIORITY) + if(ispath(behaviour_type,/datum/aquarium_behaviour/fish)) + var/datum/aquarium_behaviour/fish/fish_behaviour = behaviour_type + var/fillet_type = initial(fish_behaviour.fillet_type) + if(fillet_type) + fish.AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, 1, 5) + fish.AddElement(/datum/element/deferred_aquarium_content, behaviour_type) + return fish + +/// Returns random fish, using random_case_rarity probabilities. +/proc/random_fish_type(case_fish_only=TRUE, required_fluid) + var/static/probability_table + var/argkey = "fish_[required_fluid]_[case_fish_only]" //If this expands more extract bespoke element arg generation to some common helper. + if(!probability_table || !probability_table[argkey]) + if(!probability_table) + probability_table = list() + var/chance_table = list() + for(var/_fish_behavior in subtypesof(/datum/aquarium_behaviour/fish)) + var/datum/aquarium_behaviour/fish/fish_behavior = _fish_behavior + if(required_fluid && initial(fish_behavior.required_fluid_type) != required_fluid) + continue + if(initial(fish_behavior.availible_in_random_cases) || !case_fish_only) + chance_table[fish_behavior] = initial(fish_behavior.random_case_rarity) + probability_table[argkey] = chance_table + return pickweight(probability_table[argkey]) + +// Actual fish definitions below - there's no specific paths, they are autogenerated from behaviours + +// Freshwater fish + +/datum/aquarium_behaviour/fish/goldfish + name = "goldfish" + desc = "Despite common belief, goldfish do not have three-second memories. They can actually remember things that happened up to three months ago." + icon_state = "goldfish" + sprite_width = 8 + sprite_height = 8 + +/datum/aquarium_behaviour/fish/angelfish + name = "angelfish" + desc = "Young Angelfish often live in groups, while adults prefer solitary life. They become territorial and aggressive toward other fish when they reach adulthood." + icon_state = "angelfish" + dedicated_in_aquarium_icon_state = "bigfish" + sprite_height = 7 + source_height = 7 + +/datum/aquarium_behaviour/fish/guppy + name = "guppy" + desc = "Guppy is also known as rainbow fish because of the brightly colored body and fins." + icon_state = "guppy" + dedicated_in_aquarium_icon_state = "fish_greyscale" + aquarium_vc_color = "#91AE64" + sprite_width = 8 + sprite_height = 5 + +/datum/aquarium_behaviour/fish/plasmatetra + name = "plasma tetra" + desc = "Due to their small size, tetras are prey to many predators in their watery world, including eels, crustaceans, and invertebrates." + icon_state = "plastetra" + dedicated_in_aquarium_icon_state = "fish_greyscale" + aquarium_vc_color = "#D30EB0" + +/datum/aquarium_behaviour/fish/catfish + name = "cory catfish" + desc = "A catfish has about 100,000 taste buds, and their bodies are covered with them to help detect chemicals present in the water and also to respond to touch." + icon_state = "catfish" + dedicated_in_aquarium_icon_state = "fish_greyscale" + aquarium_vc_color = "#907420" + +/datum/aquarium_behaviour/fish/spacecarp + name = "space carp" + desc = "This space predator fish is known to cause yearly damage to space stations during their migrations." + icon_state = "carp" + sprite_width = 8 + sprite_height = 8 + availible_in_random_cases = FALSE + +// Saltwater fish below + +/datum/aquarium_behaviour/fish/clownfish + name = "clownfish" + desc = "Clownfish catch prey by swimming onto the reef, attracting larger fish, and luring them back to the anemone. The anemone will sting and eat the larger fish, leaving the remains for the clownfish." + icon_state = "clownfish" + dedicated_in_aquarium_icon_state = "clownfish_small" + required_fluid_type = AQUARIUM_FLUID_SALTWATER + sprite_width = 8 + sprite_height = 5 + +/datum/aquarium_behaviour/fish/cardinal + name = "cardinalfish" + desc = "Cardinalfish are often found near sea urchins, where the fish hide when threatened." + icon_state = "cardinalfish" + dedicated_in_aquarium_icon_state = "fish_greyscale" + required_fluid_type = AQUARIUM_FLUID_SALTWATER + +/datum/aquarium_behaviour/fish/greenchromis + name = "green chromis" + desc = "The Chromis can vary in color from blue to green depending on the lighting and distance from the lights." + icon_state = "greenchromis" + dedicated_in_aquarium_icon_state = "fish_greyscale" + aquarium_vc_color = "#00ff00" + required_fluid_type = AQUARIUM_FLUID_SALTWATER + +/datum/aquarium_behaviour/fish/firefish + name = "firefish goby" + desc = "To communicate in the wild, the firefish uses its dorsal fin to alert others of potential danger." + icon_state = "firefish" + sprite_width = 6 + sprite_height = 5 + required_fluid_type = AQUARIUM_FLUID_SALTWATER + +/datum/aquarium_behaviour/fish/pufferfish + name = "pufferfish" + desc = "One Pufferfish contains enough toxins in its liver to kill 30 people." + icon_state = "pufferfish" + required_fluid_type = AQUARIUM_FLUID_SALTWATER + sprite_width = 8 + sprite_height = 8 + +/datum/aquarium_behaviour/fish/lanternfish + name = "lanternfish" + desc = "Typically found in areas below 6600 feet below the surface of the ocean, they live in complete darkness." + icon_state = "lanternfish" + required_fluid_type = AQUARIUM_FLUID_SALTWATER + random_case_rarity = FISH_RARITY_VERY_RARE + source_width = 28 + source_height = 21 + sprite_width = 8 + sprite_height = 8 diff --git a/code/modules/aquarium/misc.dm b/code/modules/aquarium/misc.dm new file mode 100644 index 00000000000..cde04bf2935 --- /dev/null +++ b/code/modules/aquarium/misc.dm @@ -0,0 +1,125 @@ +#define AQUARIUM_COMPANY "Aquatech Ltd." + +// Fish feed can +/obj/item/fish_feed + name = "fish feed can" + desc = "Autogenerates nutritious fish feed based on sample inside." + icon = 'icons/obj/aquarium.dmi' + icon_state = "fish_feed" + w_class = WEIGHT_CLASS_TINY + +/obj/item/fish_feed/Initialize() + . = ..() + create_reagents(5, OPENCONTAINER) + reagents.add_reagent(/datum/reagent/consumable/nutriment, 1) //Default fish diet + +// Stasis fish case container for moving fish between aquariums safely. +/obj/item/storage/fish_case + name = "stasis fish case" + desc = "A small case keeping the fish inside in stasis." + icon_state = "fishbox" + + inhand_icon_state = "syringe_kit" + lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi' + righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi' + + component_type = /datum/component/storage/concrete/fish_case + +/obj/item/storage/fish_case/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_FISH_SAFE_STORAGE, TRAIT_GENERIC) + +/// Fish case with single random fish inside. +/obj/item/storage/fish_case/random/PopulateContents() + . = ..() + generate_fish(src, select_fish_type()) + +/obj/item/storage/fish_case/random/proc/select_fish_type() + return random_fish_type() + +/obj/item/storage/fish_case/random/freshwater/select_fish_type() + return random_fish_type(required_fluid=AQUARIUM_FLUID_FRESHWATER) + +/// Book detailing where to get the fish and their properties. +/obj/item/book/fish_catalog + name = "Fish Encyclopedia" + desc = "Indexes all fish known to mankind (and related species)" + icon_state = "fishbook" + dat = "Lot of fish stuff" //book wrappers could use cleaning so this is not necessary + +/obj/item/book/fish_catalog/on_read(mob/user) + ui_interact(user) + +/obj/item/book/fish_catalog/ui_interact(mob/user, datum/tgui/ui) + . = ..() + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "FishCatalog", name) + ui.open() + +/obj/item/book/fish_catalog/ui_static_data(mob/user) + . = ..() + var/static/fish_info + if(!fish_info) + fish_info = list() + for(var/_fish_behaviour in subtypesof(/datum/aquarium_behaviour/fish)) + var/datum/aquarium_behaviour/fish/fish_behaviour = _fish_behaviour + var/list/fish_data = list() + if(!initial(fish_behaviour.show_in_catalog)) + continue + fish_data["name"] = initial(fish_behaviour.name) + fish_data["desc"] = initial(fish_behaviour.desc) + fish_data["fluid"] = initial(fish_behaviour.required_fluid_type) + fish_data["temp_min"] = initial(fish_behaviour.required_temperature_min) + fish_data["temp_max"] = initial(fish_behaviour.required_temperature_max) + fish_data["icon"] = sanitize_css_class_name("[initial(fish_behaviour.icon)][initial(fish_behaviour.icon_state)]") + fish_data["color"] = initial(fish_behaviour.color) + fish_data["source"] = initial(fish_behaviour.availible_in_random_cases) ? "[AQUARIUM_COMPANY] Fish Packs" : "Unknown" + var/datum/reagent/food_type = initial(fish_behaviour.food) + if(food_type != /datum/reagent/consumable/nutriment) + fish_data["feed"] = initial(food_type.name) + else + fish_data["feed"] = "[AQUARIUM_COMPANY] Fish Feed" + fish_info += list(fish_data) + + .["fish_info"] = fish_info + .["sponsored_by"] = AQUARIUM_COMPANY + +/obj/item/book/fish_catalog/ui_assets(mob/user) + return list( + get_asset_datum(/datum/asset/spritesheet/fish) + ) + +/obj/item/aquarium_kit + name = "DIY Aquarium Construction Kit" + desc = "Everything you need to build your own aquarium.(Raw materials sold separately)" + icon = 'icons/obj/aquarium.dmi' + icon_state = "construction_kit" + w_class = WEIGHT_CLASS_TINY + +/obj/item/aquarium_kit/attack_self(mob/user) + . = ..() + to_chat(user,"There's instruction and tools necessary to build aquarium inside. All you need is to start crafting.") + + +/obj/item/aquarium_prop + name = "generic aquarium prop" + desc = "very boring" + w_class = WEIGHT_CLASS_TINY + +/obj/item/storage/box/aquarium_props + name = "aquarium props box" + desc = "All you need to make your aquarium look good" + +/obj/item/storage/box/aquarium_props/PopulateContents() + for(var/prop_type in subtypesof(/datum/aquarium_behaviour/prop)) + generate_fish(src, prop_type, /obj/item/aquarium_prop) + +/obj/item/storage/box/fish_debug + name = "box full of fish" + +/obj/item/storage/box/fish_debug/PopulateContents() + for(var/fish_type in subtypesof(/datum/aquarium_behaviour/fish)) + generate_fish(src,fish_type) + +#undef AQUARIUM_COMPANY diff --git a/code/modules/asset_cache/asset_list_items.dm b/code/modules/asset_cache/asset_list_items.dm index 29f7d87c080..9c67d148af5 100644 --- a/code/modules/asset_cache/asset_list_items.dm +++ b/code/modules/asset_cache/asset_list_items.dm @@ -516,3 +516,22 @@ assets = list( "safe_dial.png" = 'html/safe_dial.png' ) + +/datum/asset/spritesheet/fish + name = "fish" + +/datum/asset/spritesheet/fish/register() + for (var/path in subtypesof(/datum/aquarium_behaviour/fish)) + var/datum/aquarium_behaviour/fish/fish_type = path + var/fish_icon = initial(fish_type.icon) + var/fish_icon_state = initial(fish_type.icon_state) + var/id = sanitize_css_class_name("[fish_icon][fish_icon_state]") + if(sprites[id]) //no dupes + continue + Insert(id, fish_icon, fish_icon_state) + ..() + +/// Removes all non-alphanumerics from the text, keep in mind this can lead to id conflicts +/proc/sanitize_css_class_name(name) + var/static/regex/regex = new(@"[^a-zA-Z0-9]","g") + return replacetext(name, regex, "") diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 1bf49c68d9a..7c87ad27a8b 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -2373,6 +2373,27 @@ crate_name = "art supply crate" crate_type = /obj/structure/closet/crate/wooden +/datum/supply_pack/misc/aquarium_kit + name = "Aquarium Kit" + desc = "Everything you need to start your own aquarium. Contains aquarium construction kit, fish catalog, feed can and three freshwater fish from our collection." + cost = CARGO_CRATE_VALUE * 10 + contains = list(/obj/item/book/fish_catalog, + /obj/item/storage/fish_case/random/freshwater, + /obj/item/storage/fish_case/random/freshwater, + /obj/item/storage/fish_case/random/freshwater, + /obj/item/fish_feed, + /obj/item/storage/box/aquarium_props, + /obj/item/aquarium_kit) + crate_name = "aquarium kit crate" + crate_type = /obj/structure/closet/crate/wooden + +/datum/supply_pack/misc/aquarium_fish + name = "Aquarium Fish Case" + desc = "An aquarium fish handpicked by monkeys from our collection." + cost = CARGO_CRATE_VALUE * 2 + contains = list(/obj/item/storage/fish_case/random) + crate_name = "aquarium fish crate" + /datum/supply_pack/misc/bicycle name = "Bicycle" desc = "Nanotrasen reminds all employees to never toy with powers outside their control." diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index f92bf1c2fbb..2a797148b14 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -225,10 +225,13 @@ /obj/item/book/attack_self(mob/user) if(!user.can_read(src)) return + user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.") + SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "book_nerd", /datum/mood_event/book_nerd) + on_read(user) + +/obj/item/book/proc/on_read(mob/user) if(dat) user << browse("Penned by [author].
" + "[dat]", "window=book[window_size != null ? ";size=[window_size]" : ""]") - user.visible_message("[user] opens a book titled \"[title]\" and begins reading intently.") - SEND_SIGNAL(user, COMSIG_ADD_MOOD_EVENT, "book_nerd", /datum/mood_event/book_nerd) onclose(user, "book") else to_chat(user, "This book is completely blank!") diff --git a/icons/obj/aquarium.dmi b/icons/obj/aquarium.dmi new file mode 100644 index 0000000000000000000000000000000000000000..025967ac6ee1134c8d9413e4432dfc96dfc47b5f GIT binary patch literal 9640 zcmZ8{Wmr_-7w(y17`hvzqy&+YQfg?B4(S*`8tKjfq`OO6N=2kWx<$HCxy# zSp9VkJmsuCtlaHgJ?&kb0l@ct!t|JP9}_;-vBxQSWrxP?x8DMdAN}pjK`;6d6yO{+ zy^BMiO7Cp;v1Ql|4&7~+2;x=DDm$4H$_;g}>AX7$keGW8|Nd*lLir1%F7797V&~{Ig9)|;Z^^K{*QPYm!t;s; z$|V=kY4>-jWv9QnGMsFu#R!+atzP)PU1bre{z+ysAFp$m^tXlSUgh402Y9qIjBdF9>jGW7nvKp618@Lf0+i*Xb$#C- z<_CD{EaV?`4QX^Z{WKt5?DvlES>((n#=zkOH4ZvHVOGnvWgbfw#QAXeCcAag^~l6s zUq8y;#ZH{y@GYGThs8A1D79RbiSvp!OpSpRVRaz7i0D}y=W#o7%^M2^JY;86zIp@uipniOGAKyS>bL~i2 z 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 PumELwb-6Dx@UZ^_A}%4l literal 0 HcmV?d00001 diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 3944513c5999ae37f0c857c1fa2f13a6972c9dfa..50063c0fd6d2e48297796a20093f111f58c4a191 100644 GIT binary patch delta 7191 zcmZv>2T)Vb7dCt$G{HzwlqS7NN4k_C9YH`45GkPvN|&ZU;D%ukF3;EX2H4R=hB3-mr_1!*sx{s9bYfpV={Dr!iU&GuYc{zLN%DY zpEzpwdSs_bjh@5qhdM#ahPA{$?F$jj>+*uUfsw2CDCdI> z|6IvmcPnH~qg_wcvk$q$@_k}1GVG)LBBLooaG zWpum)O2nJyv}~oRa$w=(a9ZzMeSh+LaWp0WmsqXBV`oYh(zO(rbtI zej{}?;!N;iol=+K1yf z)yPPjNtoZ#J;dPXljL(_4BF<`*ys0-R6Bbm@FoinD0{$pczC$PIO{q#uaYEo8x)l2 zI(`Dl2VYj7&$R^0z`;G=SeO@Im{1K-+k=Ma7vcSE{QMLI8I*^jB+chwNx(f8CLHg6$h~8}GM&KaGdj67jod4Yj@DuZxdFCiiBtAaAF#1ic zmkw!3r|@ut=X`uME*$=#9{V9$f$ts^=<25qaFjSPX-g_#n|bC9)mL~R(M6&+|Gl7e zWof=XOl^;Xg1}R`oi||=_mq#1@0zPA94`E$cuIJ3`sHsCa&mHgW*3UZz2lJC^2zlk zgxK@|!>7+|;0Hg&iK{&9PvdYlz5_f1mS20fxdm7fs;y#;^pB_e81;M%KW7EFmywFw z_cKj6n?8R01Hxb*FlOltrJsh7M@0ZF?TsOIJ`khcvtnDakj2&nPU-J4-EjQ6`G8yc ze?-3Tzg0PnbT^%V49mX0Glq5c^5QKYY$~f|00fG_tk1<)7=Nt`6lLX?Q9C1_NQBIS zMx#_%oK!Z6vf5f3Ho7G+@EwLelpdF;PmwLoYNcEuMg|Ou+P?wX%)AYp>In*BpO>7QbaHl z{*o;L?S67&u|rAplKOP?(mRjjNjOn6l=RsB5!Xn#A)v~#d+&e@D4iI5h#*uov8KFK zumiavtWA4gRh3vLT`sv4ak9Vm>ge53q^Ie{+E|d_LRrVLAxlvBd3hoeO0@Jv=J(l) z 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 diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 5802bda90862ad1bb864b5ee2561f43aa37ae82b..5b34ac4773ae70a8e4e4c039beca841ef20c533f 100644 GIT binary patch literal 79729 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 j|$k#tZ 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ΡI^-JJ2u_{HXMHe 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%0A3p=aq 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 { + const { act, data } = useBackend(context); + const { + temperature, + fluid_type, + minTemperature, + maxTemperature, + fluidTypes, + contents, + } = data; + return ( + + +

+ + + act('temperature', { + temperature: value, + })} /> + + + {fluidTypes.map(f => ( +
+
+ {contents.map(movable => ( +
+ + + ); +}; diff --git a/tgui/packages/tgui/interfaces/FishCatalog.js b/tgui/packages/tgui/interfaces/FishCatalog.js new file mode 100644 index 00000000000..51226bf3bc3 --- /dev/null +++ b/tgui/packages/tgui/interfaces/FishCatalog.js @@ -0,0 +1,82 @@ +import { sortBy } from 'common/collections'; +import { flow } from 'common/fp'; +import { classes } from 'common/react'; +import { useBackend, useLocalState } from '../backend'; +import { Box, Button, LabeledList, Section, Stack } from '../components'; +import { Window } from '../layouts'; +import { capitalize } from 'common/string'; + +export const FishCatalog = (props, context) => { + const { act, data } = useBackend(context); + const { + fish_info, + sponsored_by, + } = data; + const fish_by_name = flow([ + sortBy(fish => fish.name), + ])(data.fish_info || []); + const [ + currentFish, + setCurrentFish, + ] = useLocalState(context, 'currentFish', null); + return ( + + + + +
+ {fish_by_name.map(f => ( + + ))} +
+
+ +
+ {currentFish && ( + + + {currentFish.desc} + + + {currentFish.fluid} + + + {currentFish.temp_min} to {currentFish.temp_max} + + + {currentFish.feed} + + + {currentFish.source} + + + + + + )} +
+
+
+
+
+ ); +};