From 60df7291ce424cdb8ea75c11f1e38ca393e3d82d Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Fri, 28 Jul 2023 00:41:43 +0200 Subject: [PATCH] [MIRROR] [READY] Fishing and aquarium expansion. [MDB IGNORE] (#22731) * [READY] Fishing and aquarium expansion. * Update general.dm * Update production_skill.dm * Merge conflict * Merge branch 'upstream-merge-76531' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-merge-76531 --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com> Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com> --- _maps/templates/holodeck_beach.dmm | 21 +- code/__DEFINES/achievements.dm | 1 + code/__DEFINES/aquarium.dm | 14 +- code/__DEFINES/colors.dm | 1 + .../signals/signals_atom/signals_atom_main.dm | 2 +- code/__DEFINES/dcs/signals/signals_fish.dm | 15 + code/__DEFINES/dcs/signals/signals_object.dm | 4 + code/__DEFINES/fishing.dm | 21 + code/__DEFINES/is_helpers.dm | 4 + code/__DEFINES/skills.dm | 17 +- code/__DEFINES/traits.dm | 16 + code/__HELPERS/atmospherics.dm | 28 ++ code/_globalvars/lists/maintenance_loot.dm | 2 +- code/_globalvars/traits.dm | 9 + code/_onclick/hud/radial_persistent.dm | 15 +- .../datums/achievements/skill_achievements.dm | 5 + .../{aquarium.dm => aquarium_content.dm} | 2 + code/datums/components/chasm.dm | 94 ++-- code/datums/components/fishing_spot.dm | 12 +- code/datums/elements/skill_reward.dm | 48 ++ .../greyscale_configs/greyscale_items.dm | 15 + .../json_configs/fish_analyzer_worn.json | 15 + code/datums/helper_datums/teleport.dm | 24 +- code/datums/skills/_skill.dm | 8 +- code/datums/skills/cleaning.dm | 2 +- code/datums/skills/fishing.dm | 10 + code/datums/skills/gaming.dm | 2 +- code/datums/skills/mining.dm | 2 +- code/datums/storage/subtypes/fish_case.dm | 33 ++ code/game/objects/items.dm | 20 +- code/game/objects/items/food/meatdish.dm | 2 +- code/game/objects/items/storage/wallets.dm | 9 + code/game/objects/structures/watercloset.dm | 6 +- code/game/turfs/open/lava.dm | 8 +- code/modules/cargo/goodies.dm | 6 + .../cargo/markets/market_items/misc.dm | 17 + code/modules/cargo/packs/general.dm | 9 + code/modules/clothing/head/soft_caps.dm | 28 +- code/modules/clothing/suits/cloaks.dm | 28 +- code/modules/fishing/aquarium/aquarium.dm | 65 ++- code/modules/fishing/aquarium/aquarium_kit.dm | 81 ++-- .../modules/fishing/aquarium/fish_analyzer.dm | 241 ++++++++++ code/modules/fishing/fish/_fish.dm | 432 +++++++++++++----- code/modules/fishing/fish/chasm_detritus.dm | 74 ++- code/modules/fishing/fish/fish_evolution.dm | 113 +++++ code/modules/fishing/fish/fish_traits.dm | 338 ++++++++++++++ code/modules/fishing/fish/fish_types.dm | 281 +++++++++++- code/modules/fishing/fish_catalog.dm | 6 +- code/modules/fishing/fishing_equipment.dm | 21 +- code/modules/fishing/fishing_minigame.dm | 139 ++++-- code/modules/fishing/fishing_rod.dm | 127 ++++- code/modules/fishing/fishing_traits.dm | 82 ---- code/modules/fishing/sources/_fish_source.dm | 69 ++- code/modules/fishing/sources/source_types.dm | 84 +++- code/modules/holodeck/computer.dm | 80 ++-- code/modules/holodeck/turfs.dm | 4 + .../lavalandruin_code/elephantgraveyard.dm | 3 + code/modules/mob/inventory.dm | 9 +- code/modules/mob/living/carbon/inventory.dm | 2 +- .../mob/living/silicon/robot/inventory.dm | 2 +- .../simple_animal/friendly/drone/inventory.dm | 2 +- .../living/simple_animal/guardian/guardian.dm | 2 +- code/modules/reagents/chemistry/holder.dm | 11 +- .../chemistry/reagents/toxin_reagents.dm | 103 +++++ code/modules/research/designs/misc_designs.dm | 25 + code/modules/research/techweb/all_nodes.dm | 4 +- code/modules/tgui/tgui_window.dm | 21 +- code/modules/unit_tests/_unit_tests.dm | 1 + code/modules/unit_tests/fish_unit_tests.dm | 127 +++++ icons/mob/clothing/belt.dmi | Bin 48230 -> 50148 bytes icons/mob/clothing/head/hats.dmi | Bin 4862 -> 5290 bytes icons/mob/inhands/clothing/hats_lefthand.dmi | Bin 22318 -> 21741 bytes icons/mob/inhands/clothing/hats_righthand.dmi | Bin 22563 -> 23214 bytes icons/mob/inhands/fish_lefthand.dmi | Bin 0 -> 879 bytes icons/mob/inhands/fish_righthand.dmi | Bin 0 -> 880 bytes icons/mob/inhands/items_lefthand.dmi | Bin 30190 -> 30607 bytes icons/mob/inhands/items_righthand.dmi | Bin 32933 -> 33465 bytes icons/obj/aquarium.dmi | Bin 16711 -> 26713 bytes icons/obj/aquarium_wide.dmi | Bin 0 -> 570 bytes icons/obj/clothing/head/hats.dmi | Bin 4854 -> 10758 bytes icons/obj/device.dmi | Bin 80461 -> 84195 bytes icons/obj/fishing.dmi | Bin 3255 -> 4692 bytes icons/ui_icons/achievements/achievements.dmi | Bin 220757 -> 223219 bytes .../code/production_skill.dm | 2 +- .../reagent_forging/code/smith_skill.dm | 2 +- tgstation.dme | 9 +- tgui/packages/tgui/backend.ts | 8 + tgui/packages/tgui/interfaces/FishCatalog.tsx | 2 +- tgui/packages/tgui/interfaces/Fishing.tsx | 88 +++- 89 files changed, 2657 insertions(+), 578 deletions(-) rename code/datums/components/{aquarium.dm => aquarium_content.dm} (99%) create mode 100644 code/datums/elements/skill_reward.dm create mode 100644 code/datums/greyscale/json_configs/fish_analyzer_worn.json create mode 100644 code/datums/skills/fishing.dm create mode 100644 code/datums/storage/subtypes/fish_case.dm create mode 100644 code/modules/fishing/aquarium/fish_analyzer.dm create mode 100644 code/modules/fishing/fish/fish_evolution.dm create mode 100644 code/modules/fishing/fish/fish_traits.dm delete mode 100644 code/modules/fishing/fishing_traits.dm create mode 100644 code/modules/unit_tests/fish_unit_tests.dm create mode 100644 icons/mob/inhands/fish_lefthand.dmi create mode 100644 icons/mob/inhands/fish_righthand.dmi create mode 100644 icons/obj/aquarium_wide.dmi diff --git a/_maps/templates/holodeck_beach.dmm b/_maps/templates/holodeck_beach.dmm index 6260ed27862..d485a495db3 100644 --- a/_maps/templates/holodeck_beach.dmm +++ b/_maps/templates/holodeck_beach.dmm @@ -30,6 +30,9 @@ /obj/item/toy/seashell, /turf/open/floor/holofloor/beach, /area/template_noop) +"N" = ( +/turf/open/floor/holofloor/beach/water, +/area/template_noop) "Q" = ( /obj/effect/holodeck_effect/mobspawner/crab/jon, /turf/open/floor/holofloor/beach, @@ -64,8 +67,8 @@ R R R R -R a +N "} (2,1,1) = {" R @@ -76,8 +79,8 @@ R S R Q -R a +N "} (3,1,1) = {" X @@ -88,8 +91,8 @@ R t t R -R a +N "} (4,1,1) = {" R @@ -100,8 +103,8 @@ h R R R -R a +N "} (5,1,1) = {" R @@ -112,8 +115,8 @@ R t t R -R a +N "} (6,1,1) = {" R @@ -124,8 +127,8 @@ X g R q -R a +N "} (7,1,1) = {" R @@ -136,8 +139,8 @@ R R R f -R a +N "} (8,1,1) = {" W @@ -148,8 +151,8 @@ H R M R -R a +N "} (9,1,1) = {" R @@ -160,6 +163,6 @@ R R R R -R a +N "} diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index d533e0feab2..7307a7e9b01 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -50,6 +50,7 @@ //Skill medal hub IDs #define MEDAL_LEGENDARY_MINER "Legendary Miner" +#define MEDAL_LEGENDARY_FISHER "Legendary Fisher" //Mafia medal hub IDs (wins) #define MAFIA_MEDAL_ASSISTANT "Assistant" diff --git a/code/__DEFINES/aquarium.dm b/code/__DEFINES/aquarium.dm index 5e60e2a7a64..263f86db3e6 100644 --- a/code/__DEFINES/aquarium.dm +++ b/code/__DEFINES/aquarium.dm @@ -13,9 +13,20 @@ #define FISH_ALIVE "alive" #define FISH_DEAD "dead" +#define FISH_SIZE_TINY_MAX 30 +#define FISH_SIZE_SMALL_MAX 50 +#define FISH_SIZE_NORMAL_MAX 90 +#define FISH_SIZE_BULKY_MAX 130 + +#define FISH_GRIND_RESULTS_WEIGHT_DIVISOR 500 +#define FISH_FILLET_NUMBER_SIZE_DIVISOR 30 + +#define NEW_FISH_BREEDING_TIMEOUT_MULT 2 +#define NEW_FISH_LAST_FEEDING_MULT 0.5 + #define MIN_AQUARIUM_TEMP T0C #define MAX_AQUARIUM_TEMP (T0C + 100) -#define DEFAULT_AQUARIUM_TEMP 300 +#define DEFAULT_AQUARIUM_TEMP (T0C + 24) #define FISH_RARITY_BASIC 1000 #define FISH_RARITY_RARE 400 @@ -27,5 +38,6 @@ #define AQUARIUM_FLUID_SULPHWATEVER "Sulfuric Water" #define AQUARIUM_FLUID_AIR "Air" #define AQUARIUM_FLUID_ANADROMOUS "Adaptive to both Freshwater and Saltwater" +#define AQUARIUM_FLUID_ANY_WATER "Adaptive to all kind of water" #define AQUARIUM_COMPANY "Aquatech Ltd." diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 76d1ef360c4..98d32719099 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -56,6 +56,7 @@ #define COLOR_VIBRANT_LIME "#00FF00" #define COLOR_SERVICE_LIME "#58C800" #define COLOR_JADE "#5EFB6E" +#define COLOR_EMERALD "#00CC66" #define COLOR_LIME "#32CD32" #define COLOR_DARK_LIME "#00aa00" #define COLOR_VERY_PALE_LIME_GREEN "#DDFFD3" diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm index bae03993319..242385fa3e3 100644 --- a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm +++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_main.dm @@ -76,7 +76,7 @@ #define COMPONENT_ALLOW_REACH (1<<0) ///for when an atom has been created through processing (atom/original_atom, list/chosen_processing_option) #define COMSIG_ATOM_CREATEDBY_PROCESSING "atom_createdby_processing" -///when an atom is processed (mob/living/user, obj/item/I, list/atom/results) +///when an atom is processed (mob/living/user, obj/item/process_item, list/atom/results) #define COMSIG_ATOM_PROCESSED "atom_processed" ///called when teleporting into a possibly protected turf: (channel, turf/origin, turf/destination) #define COMSIG_ATOM_INTERCEPT_TELEPORTING "intercept_teleporting" diff --git a/code/__DEFINES/dcs/signals/signals_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm index 89e25d85136..7da86f90acc 100644 --- a/code/__DEFINES/dcs/signals/signals_fish.dm +++ b/code/__DEFINES/dcs/signals/signals_fish.dm @@ -5,9 +5,18 @@ // Fish signals #define COMSIG_FISH_STATUS_CHANGED "fish_status_changed" #define COMSIG_FISH_STIRRED "fish_stirred" +///From /obj/item/fish/process: (seconds_per_tick) +#define COMSIG_FISH_LIFE "fish_life" +///From /datum/fish_trait/eat_fish: (predator) +#define COMSIG_FISH_EATEN_BY_OTHER_FISH "fish_eaten_by_other_fish" +///From /obj/item/fish/feed: (fed_reagents, fed_reagent_type) +#define COMSIG_FISH_FED "fish_on_fed" /// Fishing challenge completed #define COMSIG_FISHING_CHALLENGE_COMPLETED "fishing_completed" +/// Sent to the fisherman when the reward is dispensed: (reward) +#define COMSIG_MOB_FISHING_REWARD_DISPENSED "mob_fishing_reward_dispensed" + /// Called when you try to use fishing rod on anything #define COMSIG_PRE_FISHING "pre_fishing" @@ -17,3 +26,9 @@ /// Sent when fishing line is snapped #define COMSIG_FISHING_LINE_SNAPPED "fishing_line_interrupted" + +/// Sent when the challenge is to be interrupted: (reason) +#define COMSIG_FISHING_SOURCE_INTERRUPT_CHALLENGE "fishing_spot_interrupt_challenge" + +/// Sent to the reward after it's been generated by fishing: (fishing_spot) +#define COMSIG_ATOM_FISHING_REWARD "atom_fishing_reward" diff --git a/code/__DEFINES/dcs/signals/signals_object.dm b/code/__DEFINES/dcs/signals/signals_object.dm index 6083a9ae1db..420147f0c1e 100644 --- a/code/__DEFINES/dcs/signals/signals_object.dm +++ b/code/__DEFINES/dcs/signals/signals_object.dm @@ -104,6 +104,10 @@ ///from base of obj/item/equipped(): (mob/equipper, slot) #define COMSIG_ITEM_EQUIPPED "item_equip" +///From base of obj/item/on_equipped() (mob/equipped, slot) +#define COMSIG_ITEM_POST_EQUIPPED "item_post_equipped" + /// This will make the on_equipped proc return FALSE. + #define COMPONENT_EQUIPPED_FAILED (1<<0) /// A mob has just equipped an item. Called on [/mob] from base of [/obj/item/equipped()]: (/obj/item/equipped_item, slot) #define COMSIG_MOB_EQUIPPED_ITEM "mob_equipped_item" /// A mob has just unequipped an item. diff --git a/code/__DEFINES/fishing.dm b/code/__DEFINES/fishing.dm index b20d3ebe1a0..4cc2695b798 100644 --- a/code/__DEFINES/fishing.dm +++ b/code/__DEFINES/fishing.dm @@ -35,18 +35,39 @@ /// Fishing hook trait that's used to make the bait more weighted, for the /// fishing minigame itself. #define FISHING_HOOK_WEIGHTED (1 << 1) +/** + * During the fishing minigame, it stops the bait from being pulled down by gravity, + * while also allowing the player to move it down with right-click. + */ +#define FISHING_HOOK_BIDIRECTIONAL (1 << 2) +///Prevents the user from losing the game by letting the fish get away. +#define FISHING_HOOK_NO_ESCAPE (1 << 3) +///Limits the completion loss of the minigame when the fsh is not on the bait area. +#define FISHING_HOOK_ENSNARE (1 << 4) +///Slowly damages the fish, until it dies, then it's victory. +#define FISHING_HOOK_KILL (1 << 5) +///Reduces the difficulty of the minigame #define FISHING_LINE_CLOAKED (1 << 0) +///Required to cast a line on lava. #define FISHING_LINE_REINFORCED (1 << 1) +/// Much like FISHING_HOOK_ENSNARE but for the reel. #define FISHING_LINE_BOUNCY (1 << 2) #define FISHING_SPOT_PRESET_BEACH "beach" #define FISHING_SPOT_PRESET_LAVALAND_LAVA "lavaland lava" +#define FISHING_SPOT_PRESET_ICEMOON_PLASMA "icemoon plasma" #define FISHING_SPOT_PRESET_CHASM "chasm" +#define FISHING_SPOT_PRESET_TOILET "toilet" #define FISHING_MINIGAME_RULE_HEAVY_FISH "heavy" +#define FISHING_MINIGAME_RULE_LUBED_FISH "lubed" #define FISHING_MINIGAME_RULE_WEIGHTED_BAIT "weighted" #define FISHING_MINIGAME_RULE_LIMIT_LOSS "limit_loss" +#define FISHING_MINIGAME_RULE_BIDIRECTIONAL "bidirectional" +#define FISHING_MINIGAME_RULE_NO_ESCAPE "no_escape" +#define FISHING_MINIGAME_RULE_KILL "kill" +#define FISHING_MINIGAME_RULE_NO_EXP "no_exp" /// The default additive value for fishing hook catch weight modifiers. #define FISHING_DEFAULT_HOOK_BONUS_ADDITIVE 0 diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index a8c25365676..2ef23a0eedd 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -190,6 +190,8 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define isitem(A) (istype(A, /obj/item)) +#define isfish(A) (istype(A, /obj/item/fish)) + #define isstack(A) (istype(A, /obj/item/stack)) #define isgrenade(A) (istype(A, /obj/item/grenade)) @@ -204,6 +206,8 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define isstructure(A) (istype(A, /obj/structure)) +#define isaquarium(A) (istype(A, /obj/structure/aquarium)) + #define ismachinery(A) (istype(A, /obj/machinery)) #define isvendor(A) (istype(A, /obj/machinery/vending)) diff --git a/code/__DEFINES/skills.dm b/code/__DEFINES/skills.dm index 6329989b3c8..26e66eee1f5 100644 --- a/code/__DEFINES/skills.dm +++ b/code/__DEFINES/skills.dm @@ -24,9 +24,14 @@ #define SKILL_EXP_LIST list(SKILL_EXP_NONE, SKILL_EXP_NOVICE, SKILL_EXP_APPRENTICE, SKILL_EXP_JOURNEYMAN, SKILL_EXP_EXPERT, SKILL_EXP_MASTER, SKILL_EXP_LEGENDARY) //Skill modifier types -#define SKILL_SPEED_MODIFIER "skill_speed_modifier"//ideally added/subtracted in speed calculations to make you do stuff faster -#define SKILL_PROBS_MODIFIER "skill_probability_modifier"//ideally added/subtracted where beneficial in prob(x) calls -#define SKILL_RANDS_MODIFIER "skill_randomness_modifier"//ideally added/subtracted where beneficial in rand(x,y) calls +///ideally added/subtracted in speed calculations to make you do stuff faster +#define SKILL_SPEED_MODIFIER "skill_speed_modifier" +///ideally added/subtracted where beneficial in prob(x) calls +#define SKILL_PROBS_MODIFIER "skill_probability_modifier" +///ideally added/subtracted where beneficial in rand(x,y) calls +#define SKILL_RANDS_MODIFIER "skill_randomness_modifier" +///ideally for addittive operations +#define SKILL_VALUE_MODIFIER "skill_value_modifier" // Gets the reference for the skill type that was given #define GetSkillRef(A) (SSskills.all_skills[A]) @@ -34,3 +39,9 @@ //number defines #define CLEAN_SKILL_BEAUTY_ADJUSTMENT -15//It's a denominator so no 0. Higher number = less cleaning xp per cleanable. Negative value means cleanables with negative beauty give xp. #define CLEAN_SKILL_GENERIC_WASH_XP 1.5//Value. Higher number = more XP when cleaning non-cleanables (walls/floors/lips) +///The multiplier of the extra experience given by the fishing minigame based on difficulty. At the default difficulty of 15, the bonus will be of 21%. +#define FISHING_SKILL_DIFFIULTY_EXP_MULT 0.015 +///How much exp one would gain per spent playing the fishing minigame at minimum difficulty. +#define FISHING_SKILL_EXP_PER_SECOND (SKILL_EXP_LEGENDARY / (22 MINUTES)) +///The maximum amount of experience one can get per fishing minigame. I appreciate the effort though. +#define FISHING_SKILL_EXP_CAP_PER_GAME (SKILL_EXP_LEGENDARY / 5) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index fc319f086c4..7647bec63b2 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -852,6 +852,17 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// Trait given to mechs that can have orebox functionality on movement #define TRAIT_OREBOX_FUNCTIONAL "orebox_functional" +///fish traits +#define TRAIT_RESIST_EMULSIFY "resist_emulsify" +#define TRAIT_FISH_SELF_REPRODUCE "fish_self_reproduce" +#define TRAIT_FISH_NO_MATING "fish_no_mating" +#define TRAIT_YUCKY_FISH "yucky_fish" +#define TRAIT_FISH_TOXIN_IMMUNE "fish_toxin_immune" +#define TRAIT_FISH_CROSSBREEDER "fish_crossbreeder" +#define TRAIT_FISH_AMPHIBIOUS "fish_amphibious" +///Trait needed for the lubefish evolution +#define TRAIT_FISH_FED_LUBE "fish_fed_lube" + // common trait sources #define TRAIT_GENERIC "generic" #define UNCONSCIOUS_TRAIT "unconscious" @@ -1189,6 +1200,11 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai /// the object has a label applied #define TRAIT_HAS_LABEL "labeled" +///coming from a fish trait datum. +#define FISH_TRAIT_DATUM "fish_trait_datum" +///coming from a fish evolution datum +#define FISH_EVOLUTION "fish_evolution" + /// some trait sorces dirived from bodyparts BODYPART_TRAIT is generic. #define BODYPART_TRAIT "bodypart" #define HEAD_TRAIT "head" diff --git a/code/__HELPERS/atmospherics.dm b/code/__HELPERS/atmospherics.dm index 0139fc08114..940418f2ebc 100644 --- a/code/__HELPERS/atmospherics.dm +++ b/code/__HELPERS/atmospherics.dm @@ -171,3 +171,31 @@ GLOBAL_LIST_EMPTY(gas_handbook) return object return null + +/** + * A simple helped proc that checks if the contents of a list of gases are within acceptable terms. + * + * Arguments: + * * gases: The list of gases which contents are being checked + * * gases to check: An associated list of gas types and acceptable boundaries in moles. e.g. /datum/gas/oxygen = list(16, 30) + * * * if the assoc list is null, then it'll be considered a safe gas and won't return FALSE. + * * extraneous_gas_limit: If a gas not in gases is found, this is the limit above which the proc will return FALSE. + */ +/proc/check_gases(list/gases, list/gases_to_check, extraneous_gas_limit = 0.1) + gases_to_check = gases_to_check.Copy() + for(var/id in gases) + var/gas_moles = gases[id][MOLES] + if(!(id in gases_to_check)) + if(gas_moles > extraneous_gas_limit) + return FALSE + continue + var/list/boundaries = gases_to_check[id] + if(boundaries && !ISINRANGE(gas_moles, boundaries[1], boundaries[2])) + return FALSE + gases_to_check -= id + ///Check that gases absent from the turf have a lower boundary of zero or none at all, otherwise return FALSE + for(var/id in gases_to_check) + var/list/boundaries = gases_to_check[id] + if(boundaries && boundaries[1] > 0) + return FALSE + return TRUE diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm index b08284c5434..d2178d6adfe 100644 --- a/code/_globalvars/lists/maintenance_loot.dm +++ b/code/_globalvars/lists/maintenance_loot.dm @@ -301,7 +301,7 @@ GLOBAL_LIST_INIT(rarity_loot, list(//rare: really good items /obj/item/shield/buckler = 1, /obj/item/throwing_star = 1, /obj/item/weldingtool/hugetank = 1, - /obj/item/fishing_rod/master = 1, + /obj/item/fishing_rod/telescopic/master = 1, /obj/item/spess_knife = 1, ) = 1, diff --git a/code/_globalvars/traits.dm b/code/_globalvars/traits.dm index 718e2d0f80c..fc924d2d7f0 100644 --- a/code/_globalvars/traits.dm +++ b/code/_globalvars/traits.dm @@ -256,6 +256,15 @@ GLOBAL_LIST_INIT(traits_by_type, list( /obj/item/card/id = list( "TRAIT_MAGNETIC_ID_CARD" = TRAIT_MAGNETIC_ID_CARD, ), + /obj/item/fish = list( + "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, + "TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE, + "TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING, + "TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH, + "TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE, + "TRAIT_FISH_CROSSBREEDER" = TRAIT_FISH_CROSSBREEDER, + "TRAIT_FISH_FED_LUBE" = TRAIT_FISH_FED_LUBE, + ), )) /// value -> trait name, generated on use from trait_by_type global diff --git a/code/_onclick/hud/radial_persistent.dm b/code/_onclick/hud/radial_persistent.dm index 4e83f161a3b..58dfa0e07ef 100644 --- a/code/_onclick/hud/radial_persistent.dm +++ b/code/_onclick/hud/radial_persistent.dm @@ -32,6 +32,13 @@ /datum/radial_menu/persistent/element_chosen(choice_id, mob/user, params) select_proc_callback.Invoke(choices_values[choice_id], params) +///Version of wait used by persistent radial menus. +/datum/radial_menu/persistent/wait() + while(!QDELETED(src)) + if(custom_check_callback && next_check < world.time) + custom_check_callback.Invoke() + next_check = world.time + check_delay + stoplag(1) /datum/radial_menu/persistent/proc/change_choices(list/newchoices, tooltips = FALSE, animate = FALSE, keep_same_page = FALSE) if(!newchoices.len) @@ -55,7 +62,7 @@ Select_proc is the proc to be called each time an element on the menu is clicked, and should accept the chosen element as its final argument Clicking the center button will return a choice of null */ -/proc/show_radial_menu_persistent(mob/user, atom/anchor, list/choices, datum/callback/select_proc, uniqueid, radius, tooltips = FALSE, radial_slice_icon = "radial_slice") +/proc/show_radial_menu_persistent(mob/user, atom/anchor, list/choices, datum/callback/select_proc, uniqueid, radius, tooltips = FALSE, radial_slice_icon = "radial_slice", datum/callback/custom_check) if(!user || !anchor || !length(choices) || !select_proc) return if(!uniqueid) @@ -71,9 +78,13 @@ menu.radius = radius menu.radial_slice_icon = radial_slice_icon menu.select_proc_callback = select_proc + if(istype(custom_check)) + menu.custom_check_callback = custom_check menu.anchor = anchor menu.check_screen_border(user) //Do what's needed to make it look good near borders or on hud menu.set_choices(choices, tooltips) menu.show_to(user) + if(menu.custom_check_callback) + menu.next_check = world.time + menu.check_delay + INVOKE_ASYNC(menu, TYPE_PROC_REF(/datum/radial_menu, wait)) return menu - diff --git a/code/datums/achievements/skill_achievements.dm b/code/datums/achievements/skill_achievements.dm index 128b35a6a4e..6384b1b3db4 100644 --- a/code/datums/achievements/skill_achievements.dm +++ b/code/datums/achievements/skill_achievements.dm @@ -7,3 +7,8 @@ database_id = MEDAL_LEGENDARY_MINER icon = "mining" +/datum/award/achievement/skill/legendary_fisher + name = "Legendary fisher" + desc = "Give a spaceman a fish and you feed him for a while; teach a spaceman to fish and you feed him until the shuttle arrives." + database_id = MEDAL_LEGENDARY_FISHER + icon = "fishing_hat" diff --git a/code/datums/components/aquarium.dm b/code/datums/components/aquarium_content.dm similarity index 99% rename from code/datums/components/aquarium.dm rename to code/datums/components/aquarium_content.dm index 25a95105174..589b831aa72 100644 --- a/code/datums/components/aquarium.dm +++ b/code/datums/components/aquarium_content.dm @@ -95,6 +95,8 @@ aquarium_vc_color = fish.aquarium_vc_color if(fish.dedicated_in_aquarium_icon_state) + if(fish.dedicated_in_aquarium_icon) + icon = fish.dedicated_in_aquarium_icon icon_state = fish.dedicated_in_aquarium_icon_state base_transform = matrix() else diff --git a/code/datums/components/chasm.dm b/code/datums/components/chasm.dm index 0064999d798..30c63ebd021 100644 --- a/code/datums/components/chasm.dm +++ b/code/datums/components/chasm.dm @@ -1,6 +1,3 @@ -/// List of weakrefs to containers for things which have fallen into chasms -GLOBAL_LIST_INIT(chasm_storage, list()) - // Used by /turf/open/chasm and subtypes to implement the "dropping" mechanic /datum/component/chasm var/turf/target_turf @@ -35,6 +32,8 @@ GLOBAL_LIST_INIT(chasm_storage, list()) )) /datum/component/chasm/Initialize(turf/target, mapload) + if(!isturf(parent)) + return COMPONENT_INCOMPATIBLE RegisterSignal(parent, SIGNAL_ADDTRAIT(TRAIT_CHASM_STOPPED), PROC_REF(on_chasm_stopped)) RegisterSignal(parent, SIGNAL_REMOVETRAIT(TRAIT_CHASM_STOPPED), PROC_REF(on_chasm_no_longer_stopped)) target_turf = target @@ -45,24 +44,10 @@ GLOBAL_LIST_INIT(chasm_storage, list()) //otherwise don't do anything because turfs and areas are initialized before movables. if(!mapload) addtimer(CALLBACK(src, PROC_REF(drop_stuff)), 0) - src.parent.AddElement(/datum/element/lazy_fishing_spot, FISHING_SPOT_PRESET_CHASM) + parent.AddElement(/datum/element/lazy_fishing_spot, FISHING_SPOT_PRESET_CHASM) /datum/component/chasm/UnregisterFromParent() - remove_storage() - -/** - * Deletes the chasm storage object and removes empty weakrefs from global list - */ -/datum/component/chasm/proc/remove_storage() - if (!storage) - return - QDEL_NULL(storage) - var/list/chasm_storage = list() - for (var/datum/weakref/ref as anything in GLOB.chasm_storage) - if (!ref.resolve()) - continue - chasm_storage += ref - GLOB.chasm_storage = chasm_storage + storage = null /datum/component/chasm/proc/entered(datum/source, atom/movable/arrived, atom/old_loc, list/atom/old_locs) SIGNAL_HANDLER @@ -197,9 +182,7 @@ GLOBAL_LIST_INIT(chasm_storage, list()) return if(!storage) - storage = new(get_turf(parent)) - RegisterSignal(storage, COMSIG_ATOM_EXITED, PROC_REF(left_chasm)) - GLOB.chasm_storage += WEAKREF(storage) + storage = (locate() in parent) || new(parent) if(storage.contains(dropped_thing)) return @@ -209,14 +192,11 @@ GLOBAL_LIST_INIT(chasm_storage, list()) dropped_thing.transform = oldtransform dropped_thing.pixel_y = oldoffset - if(dropped_thing.forceMove(storage)) - if (isliving(dropped_thing)) - RegisterSignal(dropped_thing, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) - else + if(!dropped_thing.forceMove(storage)) parent.visible_message(span_boldwarning("[parent] spits out [dropped_thing]!")) dropped_thing.throw_at(get_edge_target_turf(parent, pick(GLOB.alldirs)), rand(1, 10), rand(1, 10)) - if(isliving(dropped_thing)) + else if(isliving(dropped_thing)) var/mob/living/fallen_mob = dropped_thing fallen_mob.notransform = FALSE if (fallen_mob.stat != DEAD) @@ -237,27 +217,8 @@ GLOBAL_LIST_INIT(chasm_storage, list()) SIGNAL_HANDLER UnregisterSignal(gone, COMSIG_LIVING_REVIVE) -#define CHASM_TRAIT "chasm trait" - -/** - * Called if something comes back to life inside the pit. Expected sources are badmins and changelings. - * Ethereals should take enough damage to be smashed and not revive. - * - * Arguments - * * escapee - Lucky guy who just came back to life at the bottom of a hole. - */ -/datum/component/chasm/proc/on_revive(mob/living/escapee) - SIGNAL_HANDLER - var/atom/parent = src.parent - parent.visible_message(span_boldwarning("After a long climb, [escapee] leaps out of [parent]!")) - ADD_TRAIT(escapee, TRAIT_MOVE_FLYING, CHASM_TRAIT) //Otherwise they instantly fall back in - escapee.forceMove(get_turf(parent)) - escapee.throw_at(get_edge_target_turf(parent, pick(GLOB.alldirs)), rand(1, 10), rand(1, 10)) - REMOVE_TRAIT(escapee, TRAIT_MOVE_FLYING, CHASM_TRAIT) - escapee.Paralyze(20 SECONDS, TRUE) - UnregisterSignal(escapee, COMSIG_LIVING_REVIVE) - -#undef CHASM_TRAIT +///Global list needed to let fishermen with a rescue hook fish fallen mobs from any place +GLOBAL_LIST_EMPTY(chasm_fallen_mobs) /** * An abstract object which is basically just a bag that the chasm puts people inside @@ -271,3 +232,40 @@ GLOBAL_LIST_INIT(chasm_storage, list()) /obj/effect/abstract/chasm_storage/Initialize(mapload) . = ..() ADD_TRAIT(src, TRAIT_SECLUDED_LOCATION, INNATE_TRAIT) + +/obj/effect/abstract/chasm_storage/Entered(atom/movable/arrived) + . = ..() + if (isliving(arrived)) + RegisterSignal(arrived, COMSIG_LIVING_REVIVE, PROC_REF(on_revive)) + GLOB.chasm_fallen_mobs += arrived + +/obj/effect/abstract/chasm_storage/Exited(atom/movable/gone) + . = ..() + if (isliving(gone)) + UnregisterSignal(gone, COMSIG_LIVING_REVIVE) + GLOB.chasm_fallen_mobs -= gone + +#define CHASM_TRAIT "chasm trait" +/** + * Called if something comes back to life inside the pit. Expected sources are badmins and changelings. + * Ethereals should take enough damage to be smashed and not revive. + * Arguments + * escapee - Lucky guy who just came back to life at the bottom of a hole. + */ +/obj/effect/abstract/chasm_storage/proc/on_revive(mob/living/escapee) + SIGNAL_HANDLER + var/turf/turf = get_turf(src) + if(turf.GetComponent(/datum/component/chasm)) + turf.visible_message(span_boldwarning("After a long climb, [escapee] leaps out of [turf]!")) + else + playsound(turf, 'sound/effects/bang.ogg', 50, TRUE) + turf.visible_message(span_boldwarning("[escapee] busts through [turf], leaping out of the chasm below")) + turf.ScrapeAway(2, flags = CHANGETURF_INHERIT_AIR) + ADD_TRAIT(escapee, TRAIT_MOVE_FLYING, CHASM_TRAIT) //Otherwise they instantly fall back in + escapee.forceMove(turf) + escapee.throw_at(get_edge_target_turf(turf, pick(GLOB.alldirs)), rand(1, 10), rand(1, 10)) + REMOVE_TRAIT(escapee, TRAIT_MOVE_FLYING, CHASM_TRAIT) + escapee.Paralyze(20 SECONDS, TRUE) + UnregisterSignal(escapee, COMSIG_LIVING_REVIVE) + +#undef CHASM_TRAIT diff --git a/code/datums/components/fishing_spot.dm b/code/datums/components/fishing_spot.dm index a43aef04906..0c8b5caabce 100644 --- a/code/datums/components/fishing_spot.dm +++ b/code/datums/components/fishing_spot.dm @@ -51,14 +51,6 @@ /datum/component/fishing_spot/proc/start_fishing_challenge(obj/item/fishing_rod/rod, mob/user) /// Roll what we caught based on modified table var/result = fish_source.roll_reward(rod, user) - var/datum/fishing_challenge/challenge = new(parent, result, rod, user) - challenge.background = fish_source.background - challenge.difficulty = fish_source.calculate_difficulty(result, rod, user) - RegisterSignal(challenge, COMSIG_FISHING_CHALLENGE_COMPLETED, PROC_REF(fishing_completed)) + var/datum/fishing_challenge/challenge = new(src, result, rod, user) + fish_source.pre_challenge_started(rod, user) challenge.start(user) - -/datum/component/fishing_spot/proc/fishing_completed(datum/fishing_challenge/source, mob/user, success, perfect) - if(success) - var/obj/item/fish/caught = source.reward_path - user.add_mob_memory(/datum/memory/caught_fish, protagonist = user, deuteragonist = initial(caught.name)) - fish_source.dispense_reward(source.reward_path, user) diff --git a/code/datums/elements/skill_reward.dm b/code/datums/elements/skill_reward.dm new file mode 100644 index 00000000000..ac80c53449d --- /dev/null +++ b/code/datums/elements/skill_reward.dm @@ -0,0 +1,48 @@ +///An element that forbids mobs without a required skill level from equipping the item. +/datum/element/skill_reward + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + ///The required skill the user has to have to equip the item. + var/associated_skill + +/datum/element/skill_reward/Attach(datum/target, associated_skill) + . = ..() + if(!isitem(target)) + return ELEMENT_INCOMPATIBLE + + src.associated_skill = associated_skill + RegisterSignal(target, COMSIG_ATOM_EXAMINE, PROC_REF(on_examine)) + RegisterSignal(target, COMSIG_ATOM_ATTACK_HAND, PROC_REF(on_attack_hand)) + RegisterSignal(target, COMSIG_ITEM_POST_EQUIPPED, PROC_REF(drop_if_unworthy)) + +/datum/element/skill_reward/proc/on_examine(datum/source, mob/user, list/examine_list) + SIGNAL_HANDLER + examine_list += span_notice("You notice a powerful aura about this item, suggesting that only the truly experienced may wield it.") + +/datum/element/skill_reward/proc/on_attack_hand(datum/source, mob/living/user, list/modifiers) + SIGNAL_HANDLER + if(!LAZYACCESS(modifiers, CTRL_CLICK) && !check_equippable(user)) //Allows other players to drag it around at least. + to_chat(user, span_warning("You feel completely and utterly unworthy to even touch \the [source].")) + return COMPONENT_CANCEL_ATTACK_CHAIN + +///We check if the item can be equipped, otherwise we drop it. +/datum/element/skill_reward/proc/drop_if_unworthy(datum/source, mob/living/user) + SIGNAL_HANDLER + if(check_equippable(user) | !(source in user.get_equipped_items(TRUE))) + return + to_chat(user, span_warning("You feel completely and utterly unworthy to even touch \the [source].")) + user.dropItemToGround(src, TRUE) + return COMPONENT_EQUIPPED_FAILED + +/datum/element/skill_reward/proc/check_equippable(mob/living/user) + return user.mind?.get_skill_level(associated_skill) >= SKILL_LEVEL_LEGENDARY + +/** + * Welp, the code is pretty much the same, except for one tiny detail, I suppose it's ok to make a subtype of this element. + * That tiny detail is that we don't check for skills, but if the player has played for thousands of hours. + */ +/datum/element/skill_reward/veteran + element_flags = NONE + +/datum/element/skill_reward/veteran/check_equippable(mob/user) + return user.client?.is_veteran() diff --git a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm index 9cfd47a4e38..a345aba0b81 100644 --- a/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm +++ b/code/datums/greyscale/config_types/greyscale_configs/greyscale_items.dm @@ -42,6 +42,21 @@ icon_file = 'icons/obj/clothing/belt_overlays.dmi' json_config = 'code/datums/greyscale/json_configs/screwdriver_worn.json' +/datum/greyscale_config/fish_analyzer_inhand_left + name = "Held Fish Analyzer, Left" + icon_file = 'icons/mob/inhands/items_lefthand.dmi' + json_config = 'code/datums/greyscale/json_configs/fish_analyzer_worn.json' + +/datum/greyscale_config/fish_analyzer_inhand_right + name = "Held Fish Analyzer, Right" + icon_file = 'icons/mob/inhands/items_righthand.dmi' + json_config = 'code/datums/greyscale/json_configs/fish_analyzer_worn.json' + +/datum/greyscale_config/fish_analyzer_worn + name = "Worn Fish Analyzer" + icon_file = 'icons/mob/clothing/belt.dmi' + json_config = 'code/datums/greyscale/json_configs/fish_analyzer_worn.json' + // // WEAPONS // diff --git a/code/datums/greyscale/json_configs/fish_analyzer_worn.json b/code/datums/greyscale/json_configs/fish_analyzer_worn.json new file mode 100644 index 00000000000..f2cc22bf1b5 --- /dev/null +++ b/code/datums/greyscale/json_configs/fish_analyzer_worn.json @@ -0,0 +1,15 @@ +{ + "fish_analyzer": [ + { + "type": "icon_state", + "icon_state": "fish_analyzer_outer", + "blend_mode": "overlay", + "color_ids": [ 1 ] + }, + { + "type": "icon_state", + "icon_state": "fish_analyzer_inner", + "blend_mode": "overlay" + } + ] +} \ No newline at end of file diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm index a9c69bf223d..c0217d95774 100644 --- a/code/datums/helper_datums/teleport.dm +++ b/code/datums/helper_datums/teleport.dm @@ -131,23 +131,13 @@ return var/list/floor_gases = floor_gas_mixture.gases - var/list/gases_to_check = list(/datum/gas/oxygen, /datum/gas/nitrogen, /datum/gas/carbon_dioxide, /datum/gas/plasma) - var/trace_gases - for(var/id in floor_gases) - if(id in gases_to_check) - continue - trace_gases = TRUE - break - - // Can most things breathe? - if(trace_gases) - return - if(!(floor_gases[/datum/gas/oxygen] && floor_gases[/datum/gas/oxygen][MOLES] >= 16)) - return - if(floor_gases[/datum/gas/plasma]) - return - if(floor_gases[/datum/gas/carbon_dioxide] && floor_gases[/datum/gas/carbon_dioxide][MOLES] >= 10) - return + var/static/list/gases_to_check = list( + /datum/gas/oxygen = list(16, 100), + /datum/gas/nitrogen, + /datum/gas/carbon_dioxide = list(0, 10) + ) + if(!check_gases(floor_gases, gases_to_check)) + return FALSE // Aim for goldilocks temperatures and pressure if((floor_gas_mixture.temperature <= 270) || (floor_gas_mixture.temperature >= 360)) diff --git a/code/datums/skills/_skill.dm b/code/datums/skills/_skill.dm index c4ba1500e45..ec52ebd9e96 100644 --- a/code/datums/skills/_skill.dm +++ b/code/datums/skills/_skill.dm @@ -6,8 +6,8 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) var/desc = "the art of doing things" ///Dictionary of modifier type - list of modifiers (indexed by level). 7 entries in each list for all 7 skill levels. var/modifiers = list(SKILL_SPEED_MODIFIER = list(1, 1, 1, 1, 1, 1, 1)) //Dictionary of modifier type - list of modifiers (indexed by level). 7 entries in each list for all 7 skill levels. - ///List Path pointing to the skill cape reward that will appear when a user finishes leveling up a skill - var/skill_cape_path + ///List Path pointing to the skill item reward that will appear when a user finishes leveling up a skill + var/skill_item_path ///List associating different messages that appear on level up with different levels var/list/levelUpMessages = list() ///List associating different messages that appear on level up with different levels @@ -66,7 +66,7 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) /datum/skill/proc/try_skill_reward(datum/mind/mind, new_level) if (new_level != SKILL_LEVEL_LEGENDARY) return - if (!ispath(skill_cape_path)) + if (!ispath(skill_item_path)) to_chat(mind.current, span_nicegreen("My legendary [name] skill is quite impressive, though it seems the Professional [title] Association doesn't have any status symbols to commemorate my abilities with. I should let Centcom know of this travesty, maybe they can do something about it.")) return if (LAZYFIND(mind.skills_rewarded, src.type)) @@ -75,7 +75,7 @@ GLOBAL_LIST_INIT(skill_types, subtypesof(/datum/skill)) podspawn(list( "target" = get_turf(mind.current), "style" = STYLE_BLUESPACE, - "spawn" = skill_cape_path, + "spawn" = skill_item_path, "delays" = list(POD_TRANSIT = 150, POD_FALLING = 4, POD_OPENING = 30, POD_LEAVING = 30) )) to_chat(mind.current, span_nicegreen("My legendary skill has attracted the attention of the Professional [title] Association. It seems they are sending me a status symbol to commemorate my abilities.")) diff --git a/code/datums/skills/cleaning.dm b/code/datums/skills/cleaning.dm index 6b797384d48..b3ccad7eb4c 100644 --- a/code/datums/skills/cleaning.dm +++ b/code/datums/skills/cleaning.dm @@ -3,4 +3,4 @@ title = "Cleaner" desc = "It’s not who I am underneath, but what I mop up that defines me." modifiers = list(SKILL_SPEED_MODIFIER = list(1, 0.9, 0.8, 0.7, 0.6, 0.5, 0.36)) //speed also touches probability in using up a soap's charge - skill_cape_path = /obj/item/clothing/neck/cloak/skill_reward/cleaning + skill_item_path = /obj/item/clothing/neck/cloak/skill_reward/cleaning diff --git a/code/datums/skills/fishing.dm b/code/datums/skills/fishing.dm new file mode 100644 index 00000000000..d5ecff3c8f5 --- /dev/null +++ b/code/datums/skills/fishing.dm @@ -0,0 +1,10 @@ +/** + * skill associated with the fishing feature. It modifies the fishing minigame difficulty + * and is gained each time one is completed. + */ +/datum/skill/fishing + name = "Fishing" + title = "Fisher" + desc = "How empty and alone you are on this barren Earth." + modifiers = list(SKILL_VALUE_MODIFIER = list(1, 1, 0, -1, -2, -4, -6)) + skill_item_path = /obj/item/clothing/head/soft/fishing_hat diff --git a/code/datums/skills/gaming.dm b/code/datums/skills/gaming.dm index 794ab1fb864..75d90f3d8c0 100644 --- a/code/datums/skills/gaming.dm +++ b/code/datums/skills/gaming.dm @@ -4,7 +4,7 @@ desc = "My proficiency as a gamer. This helps me beat bosses with ease, powergame in Orion Trail, and makes me wanna slam some gamer fuel." modifiers = list(SKILL_PROBS_MODIFIER = list(0, 5, 10, 15, 15, 20, 25), SKILL_RANDS_MODIFIER = list(0, 1, 2, 3, 4, 5, 7)) - skill_cape_path = /obj/item/clothing/neck/cloak/skill_reward/gaming + skill_item_path = /obj/item/clothing/neck/cloak/skill_reward/gaming /datum/skill/gaming/New() . = ..() diff --git a/code/datums/skills/mining.dm b/code/datums/skills/mining.dm index e1b698a3d87..db79c2801a4 100644 --- a/code/datums/skills/mining.dm +++ b/code/datums/skills/mining.dm @@ -3,4 +3,4 @@ title = "Miner" desc = "A dwarf's biggest skill, after drinking." modifiers = list(SKILL_SPEED_MODIFIER = list(1, 0.95, 0.9, 0.85, 0.75, 0.6, 0.5),SKILL_PROBS_MODIFIER=list(10, 15, 20, 25, 30, 35, 40)) - skill_cape_path = /obj/item/clothing/neck/cloak/skill_reward/mining + skill_item_path = /obj/item/clothing/neck/cloak/skill_reward/mining diff --git a/code/datums/storage/subtypes/fish_case.dm b/code/datums/storage/subtypes/fish_case.dm new file mode 100644 index 00000000000..bc16f1607bf --- /dev/null +++ b/code/datums/storage/subtypes/fish_case.dm @@ -0,0 +1,33 @@ +/datum/storage/fish_case + max_slots = 1 + max_specific_storage = WEIGHT_CLASS_HUGE + can_hold_trait = TRAIT_FISH_CASE_COMPATIBILE + can_hold_description = "fish and aquarium equipment" + +/** + * Change the size of the storage item to match the inserted item's + * Because of that, we also check if conditions to keep it inside another storage or pockets are still met. + */ +/datum/storage/fish_case/handle_enter(obj/item/storage/fish_case/source, obj/item/arrived) + . = ..() + if(!istype(arrived) || arrived.w_class == source.w_class) + return + source.w_class = arrived.w_class + var/obj/item/resolve_parent = parent?.resolve() + if(resolve_parent?.item_flags & IN_STORAGE) + source.moveToNullspace() //temporarily remove source from its location so that attempt_insert may work correctly. + if(!resolve_parent.atom_storage?.attempt_insert(source, override = TRUE)) + source.forceMove(resolve_parent.drop_location()) + source.visible_message("[source] spills out of [resolve_parent] as it expands to hold [arrived]", vision_distance = 1) + else if(!isliving(source.loc)) + return + var/mob/living/living_loc = source.loc + var/equipped_slot = living_loc.get_slot_by_item(source) + if(equipped_slot & (ITEM_SLOT_RPOCKET|ITEM_SLOT_LPOCKET) && source.w_class > WEIGHT_CLASS_SMALL) + source.forceMove(living_loc.drop_location()) + to_chat(living_loc, "[source] drops out of your pockets as it expands to hold [arrived]") + +/datum/storage/fish_case/handle_exit(obj/item/storage/fish_case/source, obj/item/gone) + . = ..() + if(istype(gone)) + source.w_class = initial(source.w_class) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index bf1413dca16..dd1e2ee4ded 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -663,6 +663,22 @@ /obj/item/proc/on_found(mob/finder) return +/** + * Called after an item is placed in an equipment slot. Runs equipped(), then sends a signal. + * This should be called last or near-to-last, after all other inventory code stuff is handled. + * + * Arguments: + * * user is mob that equipped it + * * slot uses the slot_X defines found in setup.dm for items that can be placed in multiple slots + * * initial is used to indicate whether or not this is the initial equipment (job datums etc) or just a player doing it + */ +/obj/item/proc/on_equipped(mob/user, slot, initial = FALSE) + SHOULD_NOT_OVERRIDE(TRUE) + equipped(user, slot, initial) + if(SEND_SIGNAL(src, COMSIG_ITEM_POST_EQUIPPED, user, slot) && COMPONENT_EQUIPPED_FAILED) + return FALSE + return TRUE + /** * To be overwritten to only perform visual tasks; * this is directly called instead of `equipped` on visual-only features like human dummies equipping outfits. @@ -674,7 +690,7 @@ return /** - * Called after an item is placed in an equipment slot. + * Called by on_equipped. Don't call this directly, we want the ITEM_POST_EQUIPPED signal to be sent after everything else. * * Note that hands count as slots. * @@ -685,7 +701,7 @@ */ /obj/item/proc/equipped(mob/user, slot, initial = FALSE) SHOULD_CALL_PARENT(TRUE) - SEND_SIGNAL(user, COMSIG_HUMAN_EQUIPPING_ITEM, src, slot) + PROTECTED_PROC(TRUE) visual_equipped(user, slot, initial) SEND_SIGNAL(src, COMSIG_ITEM_EQUIPPED, user, slot) SEND_SIGNAL(user, COMSIG_MOB_EQUIPPED_ITEM, src, slot) diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm index b08551fa5ae..ac2ec39974d 100644 --- a/code/game/objects/items/food/meatdish.dm +++ b/code/game/objects/items/food/meatdish.dm @@ -81,11 +81,11 @@ icon_state = "armorfish_fillet" food_reagents = list(/datum/reagent/consumable/nutriment/protein = 3) +///donkfish fillets. The yuck reagent is now added by the fish trait of the same name. /obj/item/food/fishmeat/donkfish name = "donkfillet" desc = "The dreaded donkfish fillet. No sane spaceman would eat this, and it does not get better when cooked." icon_state = "donkfillet" - food_reagents = list(/datum/reagent/yuck = 3) /obj/item/food/fishfingers name = "fish fingers" diff --git a/code/game/objects/items/storage/wallets.dm b/code/game/objects/items/storage/wallets.dm index 4294722be35..7a75ba88674 100644 --- a/code/game/objects/items/storage/wallets.dm +++ b/code/game/objects/items/storage/wallets.dm @@ -168,3 +168,12 @@ /obj/item/storage/wallet/random/PopulateContents() new /obj/item/holochip(src, rand(5, 30)) new /obj/effect/spawner/random/entertainment/wallet_storage(src) + +///Used by the toilet fish source. +/obj/item/storage/wallet/money + desc = "It can hold a few small and personal things. This one reeks of toilet water." + +/obj/item/storage/wallet/money/PopulateContents() + for(var/iteration in 1 to pick(3, 4)) + new /obj/item/holochip(src, rand(50, 450)) + diff --git a/code/game/objects/structures/watercloset.dm b/code/game/objects/structures/watercloset.dm index b0ca7679915..dc95c046456 100644 --- a/code/game/objects/structures/watercloset.dm +++ b/code/game/objects/structures/watercloset.dm @@ -16,7 +16,8 @@ . = ..() open = round(rand(0, 1)) update_appearance() - + if(mapload && SSmapping.level_trait(z, ZTRAIT_STATION)) + AddElement(/datum/element/lazy_fishing_spot, FISHING_SPOT_PRESET_TOILET) /obj/structure/toilet/attack_hand(mob/living/user, list/modifiers) . = ..() @@ -120,8 +121,9 @@ return w_items += I.w_class to_chat(user, span_notice("You carefully place [I] into the cistern.")) + return - else if(is_reagent_container(I) && !user.combat_mode) + if(is_reagent_container(I) && !user.combat_mode) if (!open) return if(istype(I, /obj/item/food/monkeycube)) diff --git a/code/game/turfs/open/lava.dm b/code/game/turfs/open/lava.dm index 6f734763e5c..f9f5d5c8fbb 100644 --- a/code/game/turfs/open/lava.dm +++ b/code/game/turfs/open/lava.dm @@ -38,10 +38,13 @@ var/mask_icon = 'icons/turf/floors.dmi' /// The icon state that covers the lava bits of our turf var/mask_state = "lava-lightmask" + /// The configuration key for the preset fishing spot for this type of turf. + var/fish_source_type = FISHING_SPOT_PRESET_LAVALAND_LAVA /turf/open/lava/Initialize(mapload) . = ..() - AddElement(/datum/element/lazy_fishing_spot, FISHING_SPOT_PRESET_LAVALAND_LAVA) + if(fish_source_type) + AddElement(/datum/element/lazy_fishing_spot, fish_source_type) refresh_light() if(!smoothing_flags) update_appearance() @@ -342,6 +345,7 @@ icon_state = "liquidplasma" initial_gas_mix = BURNING_COLD baseturfs = /turf/open/lava/plasma + fish_source_type = FISHING_SPOT_PRESET_ICEMOON_PLASMA light_range = 3 light_power = 0.75 @@ -423,8 +427,10 @@ initial_gas_mix = OPENTURF_DEFAULT_ATMOS baseturfs = /turf/open/lava/plasma/mafia slowdown = 0 + fish_source_type = null //basketball specific lava (normal atmos, no slowdown) /turf/open/lava/smooth/basketball initial_gas_mix = OPENTURF_DEFAULT_ATMOS slowdown = 0 + fish_source_type = null diff --git a/code/modules/cargo/goodies.dm b/code/modules/cargo/goodies.dm index 56e9c757a2e..6fc900ce183 100644 --- a/code/modules/cargo/goodies.dm +++ b/code/modules/cargo/goodies.dm @@ -243,6 +243,12 @@ cost = PAYCHECK_CREW contains = list(/obj/item/bait_can/worm/premium) +/datum/supply_pack/goody/telescopic_fishing_rod + name = "Telescopic Fishing Rod" + desc = "A collapsible fishing rod that can fit within a backpack." + cost = PAYCHECK_CREW * 8 + contains = list(/obj/item/fishing_rod/telescopic) + /datum/supply_pack/goody/coffee_mug name = "Coffee Mug" desc = "A bog standard coffee mug, for drinking coffee." diff --git a/code/modules/cargo/markets/market_items/misc.dm b/code/modules/cargo/markets/market_items/misc.dm index d0ba6b26e9f..937bbc33232 100644 --- a/code/modules/cargo/markets/market_items/misc.dm +++ b/code/modules/cargo/markets/market_items/misc.dm @@ -95,6 +95,13 @@ stock_max = 3 availability_prob = 50 +/datum/market_item/misc/jawed_hook + name = "Jawed Fishing Hook" + desc = "The thing ya use if y'are strugglin' with fishes. Just rememeber to whoop yer rod before it's too late, 'cause this thing's gonna hurt them like an Arkansas toothpick." + price_min = CARGO_CRATE_VALUE * 0.75 + price_max = CARGO_CRATE_VALUE * 2 + stock_max = 3 + availability_prob = 70 /datum/market_item/misc/v8_engine name = "Genuine V8 Engine (Perserved)" @@ -104,3 +111,13 @@ price_max = CARGO_CRATE_VALUE * 6 stock_max = 1 availability_prob = 15 + +/datum/market_item/misc/fish + name = "Fish" + desc = "Fish! Fresh fish! Fish you can cut, grind and even keep in aquarium if you want to! Get some before the next fight at my village breaks out!" + price_min = PAYCHECK_CREW * 0.5 + price_max = PAYCHECK_CREW * 1.2 + item = /obj/item/storage/fish_case/blackmarket + stock_min = 3 + stock_max = 8 + availability_prob = 90 diff --git a/code/modules/cargo/packs/general.dm b/code/modules/cargo/packs/general.dm index 14ff4643a6d..73f958c0144 100644 --- a/code/modules/cargo/packs/general.dm +++ b/code/modules/cargo/packs/general.dm @@ -67,6 +67,14 @@ cost = CARGO_CRATE_VALUE * 2 contains = list(/obj/item/storage/fish_case/tiziran = 2) crate_name = "tiziran fish crate" + +/datum/supply_pack/misc/fish_analyzers + name = "Fish Analyzers" + desc = "A pack containing three analyzers to monitor fish's status and traits with." + cost = CARGO_CRATE_VALUE * 2.5 + contains = list(/obj/item/fish_analyzer = 3) + crate_name = "fish analyzers crate" + /* SKYRAT REMOVAL /datum/supply_pack/misc/bicycle name = "Bicycle" @@ -76,6 +84,7 @@ crate_name = "bicycle crate" crate_type = /obj/structure/closet/crate/large SKYRAT REMOVAL END */ + /datum/supply_pack/misc/bigband name = "Big Band Instrument Collection" desc = "Get your sad station movin' and groovin' with this fine collection! \ diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 33119b598be..08562481a44 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -6,13 +6,14 @@ icon_state = "cargosoft" inhand_icon_state = "greyscale_softcap" //todo wip var/soft_type = "cargo" + var/soft_suffix = "soft" dog_fashion = /datum/dog_fashion/head/cargo_tech var/flipped = FALSE /obj/item/clothing/head/soft/dropped() - icon_state = "[soft_type]soft" + icon_state = "[soft_type][soft_suffix]" flipped = FALSE ..() @@ -33,10 +34,10 @@ if(!user.incapacitated()) flipped = !flipped if(flipped) - icon_state = "[soft_type]soft_flipped" + icon_state = "[soft_type][soft_suffix]_flipped" to_chat(user, span_notice("You flip the hat backwards.")) else - icon_state = "[soft_type]soft" + icon_state = "[soft_type][soft_suffix]" to_chat(user, span_notice("You flip the hat back in normal position.")) usr.update_worn_head() //so our mob-overlays update @@ -139,3 +140,24 @@ icon_state = "paramedicsoft" soft_type = "paramedic" dog_fashion = null + +/obj/item/clothing/head/soft/fishing_hat + name = "legendary fishing hat" + desc = "An ancient relic of a bygone era of bountiful catches and endless rivers. Printed on the front is a poem:\n\ + Women Fear Me\n\ + Fish Fear Me\n\ + Men Turn Their Eyes Away From Me\n\ + As I Walk No Beast Dares Make A Sound In My Presence\n\ + I Am Alone On This Barren Earth." + icon_state = "fishing_hat" + soft_type = "fishing_hat" + inhand_icon_state = "fishing_hat" + soft_suffix = null + worn_y_offset = 5 + clothing_flags = SNUG_FIT + resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE + dog_fashion = null + +/obj/item/clothing/head/soft/fishing_hat/Initialize(mapload) + . = ..() + AddElement(/datum/element/skill_reward, /datum/skill/fishing) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index b061d4cb298..5d31ee29e4a 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -55,31 +55,12 @@ /obj/item/clothing/neck/cloak/skill_reward var/associated_skill_path = /datum/skill + var/element_type = /datum/element/skill_reward resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE -/obj/item/clothing/neck/cloak/skill_reward/examine(mob/user) +/obj/item/clothing/neck/cloak/skill_reward/Initialize(mapload) . = ..() - . += span_notice("You notice a powerful aura about this cloak, suggesting that only the truly experienced may wield it.") - -/obj/item/clothing/neck/cloak/skill_reward/proc/check_wearable(mob/user) - return user.mind?.get_skill_level(associated_skill_path) >= SKILL_LEVEL_LEGENDARY - -/obj/item/clothing/neck/cloak/skill_reward/proc/unworthy_unequip(mob/user) - to_chat(user, span_warning("You feel completely and utterly unworthy to even touch \the [src].")) - var/hand_index = user.get_held_index_of_item(src) - if (hand_index) - user.dropItemToGround(src, TRUE) - return FALSE - -/obj/item/clothing/neck/cloak/skill_reward/equipped(mob/user, slot) - if (!check_wearable(user)) - unworthy_unequip(user) - return ..() - -/obj/item/clothing/neck/cloak/skill_reward/attack_hand(mob/user, list/modifiers) - if (!check_wearable(user)) - unworthy_unequip(user) - return ..() + AddElement(element_type, associated_skill_path) /obj/item/clothing/neck/cloak/skill_reward/gaming name = "legendary gamer's cloak" @@ -103,6 +84,5 @@ name = "legendary veteran's cloak" desc = "Worn by the wisest of veteran employees, this legendary cloak is only attainable by maintaining a living employment agreement with Nanotrasen for over five thousand hours. This status symbol represents a being is better than you in nearly every quantifiable way, simple as that." icon_state = "playercloak" + element_type = /datum/element/skill_reward/veteran -/obj/item/clothing/neck/cloak/skill_reward/playing/check_wearable(mob/user) - return user.client?.is_veteran() diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index 56d3e1ca805..8d6baa732e5 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -37,22 +37,39 @@ ///Current layers in use by aquarium contents var/list/used_layers = list() - /// /obj/item/fish in the aquarium - does not include things with aquarium visuals that are not fish - var/list/tracked_fish = list() + /// /obj/item/fish in the aquarium, sorted by type - does not include things with aquarium visuals that are not fish + var/list/tracked_fish_by_type /obj/structure/aquarium/Initialize(mapload) . = ..() update_appearance() - RegisterSignal(src,COMSIG_ATOM_ATTACKBY, PROC_REF(feed_feedback)) + RegisterSignal(src, COMSIG_ATOM_AFTER_SUCCESSFUL_INITIALIZED_ON, PROC_REF(track_if_fish)) + AddElement(/datum/element/relay_attackers) + RegisterSignal(src, COMSIG_ATOM_WAS_ATTACKED, PROC_REF(on_attacked)) + +/obj/structure/aquarium/proc/track_if_fish(atom/source, atom/initialized) + SIGNAL_HANDLER + if(isfish(initialized)) + LAZYADDASSOCLIST(tracked_fish_by_type, initialized.type, initialized) /obj/structure/aquarium/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) . = ..() - if(istype(arrived,/obj/item/fish)) - tracked_fish += arrived + if(isfish(arrived)) + LAZYADDASSOCLIST(tracked_fish_by_type, arrived.type, arrived) /obj/structure/aquarium/Exited(atom/movable/gone, direction) . = ..() - tracked_fish -= gone + LAZYREMOVEASSOC(tracked_fish_by_type, gone.type, gone) + +/// Returns tracked_fish_by_type but flattened and without the items in the blacklist, also shuffled if shuffle is TRUE. +/obj/structure/aquarium/proc/get_fishes(shuffle = FALSE, blacklist) + . = list() + for(var/fish_type in tracked_fish_by_type) + . += tracked_fish_by_type[fish_type] + . -= blacklist + if(shuffle) + . = shuffle(.) + return . /obj/structure/aquarium/proc/request_layer(layer_type) /** @@ -111,9 +128,9 @@ default_unfasten_wrench(user, tool) return TOOL_ACT_TOOLTYPE_SUCCESS -/obj/structure/aquarium/attackby(obj/item/I, mob/living/user, params) +/obj/structure/aquarium/attackby(obj/item/item, mob/living/user, params) if(broken) - var/obj/item/stack/sheet/glass/glass = I + var/obj/item/stack/sheet/glass/glass = item if(istype(glass)) if(glass.get_amount() < 2) to_chat(user, span_warning("You need two glass sheets to fix the case!")) @@ -126,20 +143,27 @@ update_appearance() return TRUE else - 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_appearance() - return TRUE - else - return ..() + var/datum/component/aquarium_content/content_component = item.GetComponent(/datum/component/aquarium_content) + if(content_component && content_component.is_ready_to_insert(src) && user.transferItemToLoc(item, src)) + update_appearance() + return TRUE + + if(istype(item, /obj/item/fish_feed)) + if(!item.reagents.total_volume) + to_chat(user, span_warning("[item] is empty.")) + return TRUE + var/list/fishes = get_fishes() + for(var/obj/item/fish/fish as anything in fishes) + fish.feed(item.reagents) + to_chat(user, span_notice("You feed the fish.")) + return TRUE 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,span_notice("You feed the fish.")) - return NONE +/obj/structure/aquarium/proc/on_attacked(datum/source, mob/attacker, attack_flags) + var/list/fishes = get_fishes() + //I wish this were an aquarium signal, but the aquarium_content component got in the way. + for(var/obj/item/fish/fish as anything in fishes) + SEND_SIGNAL(fish, COMSIG_FISH_STIRRED) /obj/structure/aquarium/interact(mob/user) if(!broken && user.pulling && isliving(user.pulling)) @@ -176,6 +200,7 @@ if(do_after(user, 5 SECONDS, target = src)) var/alive_fish = 0 var/dead_fish = 0 + var/list/tracked_fish = get_fishes() for(var/obj/item/fish/fish in tracked_fish) if(fish.status == FISH_ALIVE) alive_fish++ diff --git a/code/modules/fishing/aquarium/aquarium_kit.dm b/code/modules/fishing/aquarium/aquarium_kit.dm index 1522e212f92..2279b1c4ad3 100644 --- a/code/modules/fishing/aquarium/aquarium_kit.dm +++ b/code/modules/fishing/aquarium/aquarium_kit.dm @@ -1,7 +1,7 @@ ///Fish feed can /obj/item/fish_feed name = "fish feed can" - desc = "Autogenerates nutritious fish feed based on sample inside." + desc = "A refillable can that dispenses nutritious fish feed." icon = 'icons/obj/aquarium.dmi' icon_state = "fish_feed" w_class = WEIGHT_CLASS_TINY @@ -9,57 +9,85 @@ /obj/item/fish_feed/Initialize(mapload) . = ..() create_reagents(5, OPENCONTAINER) - reagents.add_reagent(/datum/reagent/consumable/nutriment, 1) //Default fish diet + reagents.add_reagent(/datum/reagent/consumable/nutriment, 2.5) //Default fish diet -///Stasis fish case container for moving fish between aquariums safely. +/** + * Stasis fish case container for moving fish between aquariums safely. + * Their w_class scales with that of the fish inside it. + * Most subtypes of this also start with a fish already inside. + */ /obj/item/storage/fish_case name = "stasis fish case" - desc = "A small case keeping the fish inside in stasis." + desc = "A resizable case keeping the fish inside in stasis." icon = 'icons/obj/storage/case.dmi' 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' + storage_type = /datum/storage/fish_case /obj/item/storage/fish_case/Initialize(mapload) ADD_TRAIT(src, TRAIT_FISH_SAFE_STORAGE, TRAIT_GENERIC) // Before populate so fish instatiates in ready container already - . = ..() + return ..() - create_storage(max_slots = 1) - atom_storage.can_hold_trait = TRAIT_FISH_CASE_COMPATIBILE - atom_storage.can_hold_description = "fish and aquarium equipment" +/obj/item/storage/fish_case/PopulateContents() + var/fish_type = get_fish_type() + if(fish_type) + var/obj/item/fish/spawned_fish = new fish_type(null) + spawned_fish.forceMove(src) // trigger storage.handle_entered -///Fish case with single random fish inside. -/obj/item/storage/fish_case/random/PopulateContents() - . = ..() - var/fish_type = select_fish_type() - new fish_type(src) +/obj/item/storage/fish_case/proc/get_fish_type() + return -/obj/item/storage/fish_case/random/proc/select_fish_type() - return random_fish_type() +/obj/item/storage/fish_case/random -/obj/item/storage/fish_case/random/freshwater/select_fish_type() - return random_fish_type(required_fluid=AQUARIUM_FLUID_FRESHWATER) + var/fluid_type -/obj/item/storage/fish_case/random/saltwater/select_fish_type() - return random_fish_type(required_fluid=AQUARIUM_FLUID_SALTWATER) +/obj/item/storage/fish_case/random/get_fish_type() + return random_fish_type(required_fluid = fluid_type) + +/obj/item/storage/fish_case/random/freshwater + fluid_type = AQUARIUM_FLUID_FRESHWATER + +/obj/item/storage/fish_case/random/saltwater + fluid_type = AQUARIUM_FLUID_SALTWATER /obj/item/storage/fish_case/syndicate name = "ominous fish case" -/obj/item/storage/fish_case/syndicate/PopulateContents() - . = ..() - var/fish_type = pick(/obj/item/fish/donkfish, /obj/item/fish/emulsijack) - new fish_type(src) +/obj/item/storage/fish_case/syndicate/get_fish_type() + return pick(/obj/item/fish/donkfish, /obj/item/fish/emulsijack) /obj/item/storage/fish_case/tiziran name = "imported fish case" -/obj/item/storage/fish_case/tiziran/PopulateContents() +/obj/item/storage/fish_case/tiziran/get_fish_type() + return pick(/obj/item/fish/dwarf_moonfish, /obj/item/fish/gunner_jellyfish, /obj/item/fish/needlefish, /obj/item/fish/armorfish) + +///Subtype bought from the blackmarket at a gratuitously cheap price. The catch? The fish inside it is dead. +/obj/item/storage/fish_case/blackmarket + name = "ominous fish case" + desc = "A resizable case keeping the fish inside in stasis. This one holds a faint cadaverine smell." + +/obj/item/storage/fish_case/blackmarket/get_fish_type() + var/static/list/weighted_list = list( + /obj/item/fish/boned = 1, + /obj/item/fish/clownfish/lube = 3, + /obj/item/fish/emulsijack = 1, + /obj/item/fish/sludgefish/purple = 1, + /obj/item/fish/pufferfish = 3, + /obj/item/fish/slimefish = 2, + /obj/item/fish/ratfish = 2, + /obj/item/fish/chasm_crab/ice = 2, + /obj/item/fish/chasm_crab = 2, + ) + return pick_weight(weighted_list) + +/obj/item/storage/fish_cas/blackmarket/Initialize(mapload) . = ..() - var/fish_type = pick(/obj/item/fish/dwarf_moonfish, /obj/item/fish/gunner_jellyfish, /obj/item/fish/needlefish, /obj/item/fish/armorfish) - new fish_type(src) + for(var/obj/item/fish/fish as anything in contents) + fish.set_status(FISH_DEAD) /obj/item/aquarium_kit name = "DIY Aquarium Construction Kit" @@ -72,7 +100,6 @@ . = ..() to_chat(user,span_notice("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" diff --git a/code/modules/fishing/aquarium/fish_analyzer.dm b/code/modules/fishing/aquarium/fish_analyzer.dm new file mode 100644 index 00000000000..c7feab860ca --- /dev/null +++ b/code/modules/fishing/aquarium/fish_analyzer.dm @@ -0,0 +1,241 @@ +///An item that can be used to gather information on the fish, such as but not limited to: health, hunger and traits. +/obj/item/fish_analyzer + name = "fish analyzer" + icon = 'icons/obj/device.dmi' + icon_state = "fish_analyzer_map" + base_icon_state = "fish_analyzer" + inhand_icon_state = "fish_analyzer" + worn_icon_state = "fish_analyzer" + desc = "A fish-shaped scanner used to monitor fish's status and evolutionary traits." + flags_1 = CONDUCT_1 + item_flags = NOBLUDGEON + slot_flags = ITEM_SLOT_BELT + throwforce = 3 + w_class = WEIGHT_CLASS_TINY + throw_speed = 3 + throw_range = 7 + custom_materials = list(/datum/material/iron= SMALL_MATERIAL_AMOUNT *2) + greyscale_config_inhand_left = /datum/greyscale_config/fish_analyzer_inhand_left + greyscale_config_inhand_right = /datum/greyscale_config/fish_analyzer_inhand_right + greyscale_config_worn = /datum/greyscale_config/fish_analyzer_worn + ///The color of the case. Used by grayscale configs and update_overlays() + var/case_color + /** + * The radial menu shown when analyzing aquariums. Having a persistent one allows us + * to update it whenever fish come and go, and is also required since we have a select callback + * used to check right clicks for scanning traits instead of status. + */ + var/datum/radial_menu/persistent/fish_menu + /// A cached list of the current choices for the aforedefined radial menu. + var/list/radial_choices + +/obj/item/fish_analyzer/Initialize(mapload) + case_color = rgb(rand(16, 255), rand(16, 255), rand(16, 255)) + set_greyscale(colors = list(case_color)) + . = ..() + register_item_context() + update_appearance() + +/obj/item/fish_analyzer/Destroy() + if(fish_menu) + QDEL_NULL(fish_menu) + radial_choices = null + return ..() + +/obj/item/fish_analyzer/update_icon_state() + . = ..() + icon_state = base_icon_state + +/obj/item/fish_analyzer/update_overlays() + . = ..() + var/mutable_appearance/case = mutable_appearance(icon, "fish_analyzer_case") + case.color = case_color + . += case + . += emissive_appearance(icon, "fish_analyzer_emissive", src) + +/obj/item/fish_analyzer/add_item_context(obj/item/source, list/context, atom/target) + if (isfish(target)) + context[SCREENTIP_CONTEXT_LMB] = "Analyze status" + context[SCREENTIP_CONTEXT_RMB] = "Analyze traits" + return CONTEXTUAL_SCREENTIP_SET + else if(isaquarium(target)) + context[SCREENTIP_CONTEXT_LMB] = "Open radial menu" + return CONTEXTUAL_SCREENTIP_SET + return NONE + +/obj/item/fish_analyzer/afterattack(atom/target, mob/user, proximity) + . = ..() + if(!proximity || !user.can_read(src) || user.is_blind()) + return + + if(isfish(target)) + balloon_alert(user, "analyzing stats") + + user.visible_message(span_notice("[user] analyzes [target]."), span_notice("You analyze [target].")) + analyze_status(target, user) + else if(istype(target, /obj/structure/aquarium)) + scan_aquarium(target, user) + + +/obj/item/fish_analyzer/afterattack_secondary(atom/target, mob/user, proximity_flag, click_parameters) + if(!isfish(target)) + return + + if(!proximity_flag || !user.can_read(src) || user.is_blind()) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + + balloon_alert(user, "analyzing traits") + + analyze_traits(target, user) + return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN + +///Instantiates the radial menu, populates the list of choices, shows it and register signals on the aquarium. +/obj/item/fish_analyzer/proc/scan_aquarium(obj/structure/aquarium/aquarium, mob/user) + if(fish_menu) + balloon_alert(user, "already scanning") + return + var/list/fishes = aquarium.get_fishes() + if(!length(fishes)) + balloon_alert(user, "no fish to scan") + return + radial_choices = list() + for(var/obj/item/fish/fish as anything in fishes) + radial_choices(fish) + fish_menu = show_radial_menu_persistent(user, aquarium, radial_choices, select_proc = CALLBACK(src, PROC_REF(choice_selected), user, aquarium), tooltips = TRUE, custom_check = CALLBACK(src, PROC_REF(can_select_fish), user, aquarium)) + RegisterSignal(aquarium, COMSIG_ATOM_ABSTRACT_ENTERED, PROC_REF(on_aquarium_entered)) + RegisterSignal(aquarium, COMSIG_ATOM_ABSTRACT_EXITED, PROC_REF(on_aquarium_exited)) + RegisterSignal(aquarium, COMSIG_QDELETING, PROC_REF(delete_radial)) + +///Instantiates a radial menu choice datum for the current fish and adds it to the list of choices. +/obj/item/fish_analyzer/proc/radial_choices(obj/item/fish/fish) + var/datum/radial_menu_choice/menu_choice = new + menu_choice.name = fish.name + menu_choice.info = "[fish.status == FISH_ALIVE ? "Alive" : "Dead"]\n[fish.size] cm\n[fish.weight] g\nProgenitors: [fish.progenitors]\nRight-click to analyze traits" + var/mutable_appearance/fish_appearance = new(fish) + fish_appearance.layer = FLOAT_LAYER + fish_appearance.plane = FLOAT_PLANE + menu_choice.image = fish_appearance + radial_choices[fish] = menu_choice + +///Called when the user has selected a choice. If it's a right click, analyze the traits, else the status +/obj/item/fish_analyzer/proc/choice_selected(mob/user, obj/structure/aquarium/aquarium, obj/item/fish/choice, params) + if(!choice || !can_select_fish(user, aquarium)) + delete_radial(aquarium) + return + var/is_right_clicking = LAZYACCESS(params2list(params), RIGHT_CLICK) + user.visible_message(span_notice("[user] analyzes [choice] inside [aquarium]."), span_notice("You analyze [choice] inside [aquarium].")) + if(is_right_clicking) + analyze_traits(choice, user) + else + analyze_status(choice, user) + +///Whether the item should continue to show its radial menu or delete it. +/obj/item/fish_analyzer/proc/can_select_fish(mob/user, obj/structure/aquarium/aquarium) + if(!user.is_holding(src) || !user?.CanReach(aquarium) || IS_DEAD_OR_INCAP(user)) + delete_radial(aquarium) + return FALSE + return TRUE + +///Called when something enters the aquarium. If it's a fish, update the choices. +/obj/item/fish_analyzer/proc/on_aquarium_entered(obj/structure/aquarium/source, atom/movable/arrived) + SIGNAL_HANDLER + if(isfish(arrived)) + radial_choices(arrived) + fish_menu.change_choices(radial_choices, tooltips = TRUE, animate = TRUE) + +///Called when something exits the aquarium. If it's a fish, update the choices. +/obj/item/fish_analyzer/proc/on_aquarium_exited(obj/structure/aquarium/source, atom/movable/gone) + SIGNAL_HANDLER + if(!isfish(gone)) + return + radial_choices -= gone + if(!length(radial_choices)) + delete_radial(source) + return + fish_menu.change_choices(radial_choices, tooltips = TRUE, animate = TRUE) + +///Unregisters signals, delete the radial menu, unsets the choices. +/obj/item/fish_analyzer/proc/delete_radial(obj/structure/aquarium/source) + SIGNAL_HANDLER + UnregisterSignal(source, list(COMSIG_ATOM_ABSTRACT_EXITED, COMSIG_ATOM_ABSTRACT_ENTERED, COMSIG_QDELETING)) + QDEL_NULL(fish_menu) + radial_choices = null + +/** + * Called when a fish or a menu choice is left-clicked. + * This returns the fish's status, size, weight, feed type, hunger, breeding timeout. + */ +/obj/item/fish_analyzer/proc/analyze_status(obj/item/fish/fish, mob/user) + + // the final list of strings to render + var/render_list = list() + + var/fish_status = fish.status == FISH_DEAD ? span_alert("Deceased") : "[PERCENT(fish.health/initial(fish.health))]% healthy" + + render_list += "[span_info("Analyzing status for [fish]:")]\nOverrall status: [fish_status]\n" + render_list += "Size: [fish.size] cm - Weight: [fish.weight] g\n" + render_list += "Required feed type: [initial(fish.food.name)]\n" + render_list += "Safe temperature: [fish.required_temperature_min] - [fish.required_temperature_max]K" + if(isaquarium(fish.loc)) + var/obj/structure/aquarium/aquarium = fish.loc + if(!ISINRANGE(aquarium.fluid_temp, fish.required_temperature_min, fish.required_temperature_max)) + render_list += span_alert("(OUT OF RANGE)") + render_list += "\n" + render_list += "Safe fluid type: [fish.required_fluid_type]" + if(isaquarium(fish.loc)) + var/obj/structure/aquarium/aquarium = fish.loc + if(!compatible_fluid_type(fish.required_fluid_type, aquarium.fluid_type)) + render_list += span_alert("(IN UNSAFE FLUID)") + render_list += "" + + if(fish.status != FISH_DEAD) + render_list += "\n" + var/hunger = PERCENT(min((world.time - fish.last_feeding) / fish.feeding_frequency, 1)) + var/hunger_string = "[hunger]%" + switch(hunger) + if(0 to 60) + hunger_string = span_info(hunger_string) + if(60 to 90) + hunger_string = span_warning(hunger_string) + if(90 to 100) + hunger_string = span_alert(hunger_string) + render_list += "Hunger: [hunger_string]\n" + var/time_left = round(max(fish.breeding_wait - world.time, 0)/10) + render_list += "Time until it can breed: [time_left] seconds" + + to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO) + +/** + * Called when a fish or a menu choice is left-clicked. + * This returns the fish's progenitors, traits and their inheritability. + */ +/obj/item/fish_analyzer/proc/analyze_traits(obj/item/fish/fish, mob/user) + + // the final list of strings to render + var/render_list = list() + + render_list += "[span_info("Analyzing traits for [fish]:")]\nProgenitor species: [fish.progenitors]\n" + + if(!length(fish.fish_traits)) + render_list += "This fish has no trait to speak of...\n" + else + render_list += "Traits:\n" + for(var/trait_type in fish.fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + var/tooltipped_trait = span_tooltip(trait.catalog_description, trait.name) + render_list += "[tooltipped_trait] - Inheritabilities: [trait.inheritability]% - [trait.diff_traits_inheritability]%\n" + + var/evolution_len = length(fish.evolution_types) + if(!evolution_len) + render_list += "This fish has no evolution to speak of..." + for(var/index in 1 to evolution_len) + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[fish.evolution_types[index]] + var/evolution_name = evolution.name + var/evolution_tooltip = evolution.get_evolution_tooltip() + if(evolution_tooltip) + evolution_name = span_tooltip(evolution_tooltip, evolution_name) + render_list += "[evolution_name] - Base Probability: [evolution.probability]%" + if(index != evolution_len) + render_list += "\n" + + to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO) diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index b896b44ef5c..a5149b29e3d 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -4,8 +4,16 @@ desc = "very bland" icon = 'icons/obj/aquarium.dmi' icon_state = "bugfish" - - w_class = WEIGHT_CLASS_TINY + lefthand_file = 'icons/mob/inhands/fish_lefthand.dmi' + righthand_file = 'icons/mob/inhands/fish_righthand.dmi' + inhand_icon_state = "fish_normal" + force = 6 + attack_verb_continuous = list("slaps", "whacks") + attack_verb_simple = list("slap", "whack") + hitsound = 'sound/weapons/slap.ogg' + ///The grind results of the fish. They scale with the weight of the fish. + grind_results = list(/datum/reagent/blood = 20, /datum/reagent/consumable/liquidgibs = 5) + obj_flags = UNIQUE_RENAME /// Resulting width of aquarium visual icon - default size of "fish_greyscale" state var/sprite_width = 3 @@ -17,6 +25,11 @@ /// Original height of aquarium visual icon - used to calculate scaledown factor var/source_height = 32 + /** + * If present and it also has a dedicated icon state, this icon file will + * be used for in-aquarium visual for the fish instead of its icon + */ + var/dedicated_in_aquarium_icon /// If present this icon will be used for in-aquarium visual for the fish instead of icon_state var/dedicated_in_aquarium_icon_state @@ -31,7 +44,7 @@ var/required_temperature_max = MAX_AQUARIUM_TEMP /// What type of reagent this fish needs to be fed. - var/food = /datum/reagent/consumable/nutriment + var/datum/reagent/food = /datum/reagent/consumable/nutriment /// How often the fish needs to be fed var/feeding_frequency = 5 MINUTES /// Time of last feedeing @@ -39,9 +52,15 @@ /// Fish status var/status = FISH_ALIVE + ///icon used when the fish is dead, ifset. + var/icon_state_dead + ///If this fish should do the flopping animation + var/do_flop_animation = TRUE /// Current fish health. Dies at 0. var/health = 100 + /// The message shown when the fish dies. + var/death_text = "%SRC dies." /// Should this fish type show in fish catalog var/show_in_catalog = TRUE @@ -52,13 +71,21 @@ /// Fish autogenerated from this behaviour will be processable into this var/fillet_type = /obj/item/food/fishmeat + /// number of fillets given by the fish. It scales with its size. + var/num_fillets = 1 /// Won't breed more than this amount in single aquarium. var/stable_population = 1 - /// Last time new fish was created - var/last_breeding + /// The time limit before new fish can be created + var/breeding_wait /// How long it takes to produce new fish var/breeding_timeout = 2 MINUTES + /// If set, the fish can also breed with these fishes types + var/list/compatible_types + /// A list of possible evolutions. If set, offsprings may be of a different, new fish type if conditions are met. + var/list/evolution_types + /// The species' name(s) of the parents of the fish. Shown by the fish analyzer. + var/progenitors var/flopping = FALSE @@ -66,8 +93,11 @@ // Fishing related properties - /// List of fishing trait types, these modify probabilty/difficulty depending on rod/user properties - var/list/fishing_traits = list() + /** + * List of fish trait types, these may modify probabilty/difficulty depending on rod/user properties + * or dictate how the fish behaves or some of its qualities. + */ + var/list/fish_traits = list() /// Fishing behaviour var/fish_ai_type = FISH_AI_DUMB @@ -87,32 +117,44 @@ */ var/list/disliked_bait = list() - /// Size in centimeters + /// Size in centimeters. Item size class scales with it. var/size = 50 /// Average size for this fish type in centimeters. Will be used as gaussian distribution with 20% deviation for fishing, bought fish are always standard size var/average_size = 50 - /// Weight in grams + /// Weight in grams. number of fillets and grind results scale with it, just don't think too hard how someone could manage to fit a trout in a blender. var/weight = 1000 /// Average weight for this fish type in grams var/average_weight = 1000 - - -/obj/item/fish/Initialize(mapload) +/obj/item/fish/Initialize(mapload, apply_qualities = TRUE) . = ..() - if(fillet_type) - AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, 1, 5, screentip_verb = "Cut") AddComponent(/datum/component/aquarium_content, PROC_REF(get_aquarium_animation), list(COMSIG_FISH_STATUS_CHANGED,COMSIG_FISH_STIRRED)) - RegisterSignal(src, COMSIG_ATOM_TEMPORARY_ANIMATION_START, PROC_REF(on_temp_animation)) - RegisterSignal(src, COMSIG_ATOM_ON_LAZARUS_INJECTOR, PROC_REF(use_lazarus)) - check_environment_after_movement() + RegisterSignal(src, COMSIG_ATOM_ON_LAZARUS_INJECTOR, PROC_REF(use_lazarus)) + if(do_flop_animation) + RegisterSignal(src, COMSIG_ATOM_TEMPORARY_ANIMATION_START, PROC_REF(on_temp_animation)) + check_environment() if(status != FISH_DEAD) START_PROCESSING(SSobj, src) - size = average_size - weight = average_weight + //stops new fish from being able to reproduce right away. + breeding_wait = world.time + (breeding_timeout * NEW_FISH_BREEDING_TIMEOUT_MULT) + last_feeding = world.time - (feeding_frequency * NEW_FISH_LAST_FEEDING_MULT) + + if(apply_qualities) + apply_traits() //Make sure traits are applied before size and weight. + update_size_and_weight(first_run = TRUE) + progenitors = full_capitalize(name) //default value + + register_evolutions() + +/obj/item/fish/update_icon_state() + if(status == FISH_DEAD && icon_state_dead) + icon_state = icon_state_dead + else + icon_state = initial(icon_state) + return ..() /obj/item/fish/examine(mob/user) . = ..() @@ -120,18 +162,111 @@ . += span_notice("It's [size] cm long.") . += span_notice("It weighs [weight] g.") -/obj/item/fish/proc/randomize_weight_and_size(modifier = 0) - var/size_deviation = 0.2 * average_size - var/size_mod = modifier * average_size - size = max(1,gaussian(average_size + size_mod, size_deviation)) +///Randomizes weight and size. +/obj/item/fish/proc/randomize_size_and_weight(avg_size = average_size, avg_weight = average_weight, deviation = 0.2, first_run = FALSE) + var/size_deviation = 0.2 * avg_size + var/new_size = round(max(1,gaussian(avg_size, size_deviation)), 1) - var/weight_deviation = 0.2 * average_weight - var/weight_mod = modifier * average_weight - weight = max(1,gaussian(average_weight + weight_mod, weight_deviation)) + var/weight_deviation = 0.2 * avg_weight + var/new_weight = round(max(1,gaussian(avg_weight, weight_deviation)), 1) + + update_size_and_weight(new_size, new_weight, first_run) + +///Updates weight and size, along with weight class, number of fillets you can get and grind results. +/obj/item/fish/proc/update_size_and_weight(new_size = average_size, new_weight = average_weight, first_run = FALSE) + if(!first_run && fillet_type) + RemoveElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS, screentip_verb = "Cut") + size = new_size + switch(size) + if(0 to FISH_SIZE_TINY_MAX) + w_class = WEIGHT_CLASS_TINY + inhand_icon_state = "fish_small" + if(FISH_SIZE_TINY_MAX to FISH_SIZE_SMALL_MAX) + inhand_icon_state = "fish_small" + w_class = WEIGHT_CLASS_SMALL + if(FISH_SIZE_SMALL_MAX to FISH_SIZE_NORMAL_MAX) + inhand_icon_state = "fish_normal" + w_class = WEIGHT_CLASS_NORMAL + if(FISH_SIZE_NORMAL_MAX to FISH_SIZE_BULKY_MAX) + inhand_icon_state = "fish_bulky" + w_class = WEIGHT_CLASS_BULKY + if(FISH_SIZE_BULKY_MAX to INFINITY) + inhand_icon_state = "fish_huge" + w_class = WEIGHT_CLASS_HUGE + if(fillet_type) + var/init_fillets = initial(num_fillets) + var/amount = max(round(init_fillets * size / FISH_FILLET_NUMBER_SIZE_DIVISOR, 1), 1) + num_fillets = amount + AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS, screentip_verb = "Cut") + + if(!first_run) + for(var/reagent_type in grind_results) + grind_results[reagent_type] /= FLOOR(weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR, 0.1) + weight = new_weight + for(var/reagent_type in grind_results) + grind_results[reagent_type] *= FLOOR(weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR, 0.1) + +/** + * This proc has fish_traits list populated with fish_traits paths from three different lists: + * traits from x_traits and y_traits are compared, and inserted if conditions are met; + * traits from fixed_traits are inserted unconditionally. + * traits from removed_traits will be removed from the for loop. + * + * This proc should only be called if the fish was spawned with the apply_qualities arg set to FALSE + * and hasn't had inherited traits already. + */ +/obj/item/fish/proc/inherit_traits(list/x_traits, list/y_traits, list/fixed_traits, list/removed_traits) + + fish_traits = fixed_traits?.Copy() || list() + + var/list/same_traits = x_traits & y_traits + var/list/all_traits = (x_traits|y_traits)-removed_traits + /** + * Traits that the fish is guaranteed to inherit will be inherited, + * with the assertion that they're compatible anyway. + */ + for(var/trait_type in all_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + if(type in trait.guaranteed_inheritance_types) + fish_traits |= trait_type + all_traits -= trait_type + + ///Build a list of incompatible traits. Don't let any such trait pass onto the fish. + var/list/incompatible_traits = list() + for(var/trait_type in fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + incompatible_traits |= trait.incompatible_traits + /** + * shuffle the traits, so, in the case of incompatible traits, we don't have to choose which to discard. + * Instead we let the random numbers do it for us in a first come, first served basis. + */ + for(var/trait_type in shuffle(all_traits)) + if(trait_type in fish_traits) + continue //likely a fixed trait + if(trait_type in incompatible_traits) + continue + var/datum/fish_trait/trait = GLOB.fish_traits[trait_type] + if(length(fish_traits & trait.incompatible_traits)) + continue + if((trait_type in same_traits) ? prob(trait.inheritability) : prob(trait.diff_traits_inheritability)) + fish_traits |= trait_type + incompatible_traits |= trait.incompatible_traits + + apply_traits() + +/obj/item/fish/proc/apply_traits() + for(var/fish_trait_type in fish_traits) + var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait_type] + trait.apply_to_fish(src) + +/obj/item/fish/proc/register_evolutions() + for(var/evolution_type in evolution_types) + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[evolution_type] + evolution.register_fish(src) /obj/item/fish/Moved(atom/old_loc, movement_dir, forced, list/old_locs, momentum_change = TRUE) . = ..() - check_environment_after_movement() + check_environment() /obj/item/fish/proc/enter_stasis() in_stasis = TRUE @@ -144,49 +279,35 @@ if(status != FISH_DEAD) START_PROCESSING(SSobj, src) -/obj/item/fish/proc/on_aquarium_insertion(obj/structure/aquarium) - if(isnull(last_feeding)) //Fish start fed. - last_feeding = world.time - RegisterSignal(aquarium, COMSIG_ATOM_EXITED, PROC_REF(aquarium_exited)) - RegisterSignal(aquarium, COMSIG_ATOM_ATTACKBY, PROC_REF(attack_reaction)) - -/obj/item/fish/proc/aquarium_exited(datum/source, atom/movable/gone, direction) - SIGNAL_HANDLER - if(src != gone) +///Feed the fishes with the contents of the fish feed +/obj/item/fish/proc/feed(datum/reagents/fed_reagents) + if(status != FISH_ALIVE) return - UnregisterSignal(source,list(COMSIG_ATOM_EXITED,COMSIG_ATOM_ATTACKBY)) - -/// Our aquarium is hit with stuff -/obj/item/fish/proc/attack_reaction(datum/source, obj/item/thing, mob/user, params) - SIGNAL_HANDLER - if(is_food(thing)) - on_feeding(thing.reagents) - return COMPONENT_NO_AFTERATTACK - else - //stirred effect - SEND_SIGNAL(src, COMSIG_FISH_STIRRED) - -/obj/item/fish/proc/is_food(obj/item/thing) - return istype(thing, /obj/item/fish_feed) - -/obj/item/fish/proc/on_feeding(datum/reagents/feed_reagents) - if(feed_reagents.has_reagent(food)) + var/fed_reagent_type + if(fed_reagents.remove_reagent(food, 0.1)) + fed_reagent_type = food last_feeding = world.time + else + var/datum/reagent/wrong_reagent = pick(fed_reagents.reagent_list) + fed_reagent_type = wrong_reagent.type + fed_reagents.remove_reagent(fed_reagent_type, 0.1) + SEND_SIGNAL(src, COMSIG_FISH_FED, fed_reagents, fed_reagent_type) -/obj/item/fish/proc/check_environment_after_movement() +/obj/item/fish/proc/check_environment(stasis_check = TRUE) if(QDELETED(src)) //we don't care anymore return - // Apply/remove stasis as needed - if(loc && HAS_TRAIT(loc, TRAIT_FISH_SAFE_STORAGE)) - enter_stasis() - else if(in_stasis) - exit_stasis() + if(stasis_check) + // Apply/remove stasis as needed + if(loc && HAS_TRAIT(loc, TRAIT_FISH_SAFE_STORAGE)) + enter_stasis() + else if(in_stasis) + exit_stasis() + + if(!do_flop_animation) + return // Do additional stuff - var/in_aquarium = istype(loc,/obj/structure/aquarium) - if(in_aquarium) - on_aquarium_insertion(loc) - + var/in_aquarium = isaquarium(loc) // Start flopping if outside of fish container var/should_be_flopping = status == FISH_ALIVE && loc && !HAS_TRAIT(loc,TRAIT_FISH_SAFE_STORAGE) && !in_aquarium @@ -203,22 +324,28 @@ if(ready_to_reproduce()) try_to_reproduce() + SEND_SIGNAL(src, COMSIG_FISH_LIFE, seconds_per_tick) + /obj/item/fish/proc/set_status(new_status) + if(status == new_status) + return switch(new_status) if(FISH_ALIVE) status = FISH_ALIVE health = initial(health) // since the fishe has been revived - start_flopping() + last_feeding = world.time //reset hunger + check_environment(FALSE) START_PROCESSING(SSobj, src) if(FISH_DEAD) status = FISH_DEAD STOP_PROCESSING(SSobj, src) stop_flopping() - var/message = span_notice("\The [name] dies.") - if(istype(loc,/obj/structure/aquarium)) + var/message = span_notice(replacetext(death_text, "%SRC", "[src]")) + if(isaquarium(loc)) loc.visible_message(message) else visible_message(message) + update_appearance() SEND_SIGNAL(src, COMSIG_FISH_STATUS_CHANGED) /obj/item/fish/proc/use_lazarus(datum/source, obj/item/lazarus_injector/injector, mob/user) @@ -243,16 +370,31 @@ /// Checks if our current environment lets us live. /obj/item/fish/proc/proper_environment() var/obj/structure/aquarium/aquarium = loc - if(!istype(aquarium)) - return FALSE + if(istype(aquarium)) + if(!compatible_fluid_type(required_fluid_type, aquarium.fluid_type)) + if(aquarium.fluid_type != AQUARIUM_FLUID_AIR || !HAS_TRAIT(src, TRAIT_FISH_AMPHIBIOUS)) + return FALSE + if(!ISINRANGE(aquarium.fluid_temp, required_temperature_min, required_temperature_max)) + return FALSE + return TRUE - if(required_fluid_type != AQUARIUM_FLUID_ANADROMOUS) - if(aquarium.fluid_type != required_fluid_type) - return FALSE - else - if(aquarium.fluid_type != AQUARIUM_FLUID_SALTWATER && aquarium.fluid_type != AQUARIUM_FLUID_FRESHWATER) - return FALSE - if(aquarium.fluid_temp < required_temperature_min || aquarium.fluid_temp > required_temperature_max) + if(required_fluid_type != AQUARIUM_FLUID_AIR && !HAS_TRAIT(src, TRAIT_FISH_AMPHIBIOUS)) + return FALSE + var/datum/gas_mixture/mixture = loc.return_air() + if(!mixture) + return FALSE + var/static/list/gases_to_check = list( + /datum/gas/oxygen = list(12, 100), + /datum/gas/nitrogen, + /datum/gas/carbon_dioxide = list(0, 10), + /datum/gas/water_vapor, + ) + if(!check_gases(mixture.gases, gases_to_check)) + return FALSE + if(!ISINRANGE(mixture.temperature, required_temperature_min, required_temperature_max)) + return FALSE + var/pressure = mixture.return_pressure() + if((pressure <= 20) || (pressure >= 550)) return FALSE return TRUE @@ -272,37 +414,109 @@ set_status(FISH_DEAD) -/obj/item/fish/proc/ready_to_reproduce() +//Fish breeding stops if fish count exceeds this. +#define AQUARIUM_MAX_BREEDING_POPULATION 20 + +/obj/item/fish/proc/ready_to_reproduce(being_targetted = FALSE) var/obj/structure/aquarium/aquarium = loc if(!istype(aquarium)) return FALSE - return aquarium.allow_breeding && health == initial(health) && stable_population > 1 && world.time - last_breeding >= breeding_timeout + if(being_targetted && HAS_TRAIT(src, TRAIT_FISH_NO_MATING)) + return FALSE + if(!being_targetted && length(aquarium.get_fishes()) >= AQUARIUM_MAX_BREEDING_POPULATION) + return FALSE + return aquarium.allow_breeding && health >= initial(health) * 0.8 && stable_population > 1 && world.time >= breeding_wait + +#undef AQUARIUM_MAX_BREEDING_POPULATION -//Fish breeding stops if fish count exceeds this. -#define AQUARIUM_MAX_BREEDING_POPULATION 20 /obj/item/fish/proc/try_to_reproduce() var/obj/structure/aquarium/aquarium = loc if(!istype(aquarium)) - return - if(length(aquarium.tracked_fish) >= AQUARIUM_MAX_BREEDING_POPULATION) //so aquariums full of fish don't need to do these expensive checks - return - var/list/other_fish_of_same_type = list() - for(var/obj/item/fish/fish_in_aquarium in aquarium) - if(fish_in_aquarium == src || fish_in_aquarium.type != type) - continue - other_fish_of_same_type += fish_in_aquarium - if(length(other_fish_of_same_type) >= stable_population) - return + return FALSE + var/obj/item/fish/second_fish - for(var/obj/item/fish/other_fish in other_fish_of_same_type) - if(other_fish.ready_to_reproduce()) - second_fish = other_fish - break - if(second_fish) - new type(loc) //could use child_type var - last_breeding = world.time - second_fish.last_breeding = world.time -#undef AQUARIUM_MAX_BREEDING_POPULATION + + /** + * Fishes with this trait cannot mate, but could still reproduce asexually, so don't early return. + * Also mating takes priority over that. + */ + if(!HAS_TRAIT(src, TRAIT_FISH_NO_MATING)) + var/list/available_fishes = list() + var/types_to_mate_with = aquarium.tracked_fish_by_type + if(!HAS_TRAIT(src, TRAIT_FISH_CROSSBREEDER)) + var/list/types_to_check = list(src) + if(compatible_types) + types_to_check |= compatible_types + types_to_mate_with = types_to_mate_with & types_to_check + + for(var/obj/item/fish/fish_type as anything in types_to_mate_with) + var/list/type_fishes = types_to_mate_with[fish_type] + if(length(type_fishes) >= initial(fish_type.stable_population)) + continue + available_fishes += type_fishes + + available_fishes -= src //no self-mating. + if(length(available_fishes)) + for(var/obj/item/fish/other_fish as anything in shuffle(available_fishes)) + if(other_fish.ready_to_reproduce(TRUE)) + second_fish = other_fish + break + + if(!second_fish && !HAS_TRAIT(src, TRAIT_FISH_SELF_REPRODUCE)) + return FALSE + + var/chosen_type + var/datum/fish_evolution/chosen_evolution + if(PERFORM_ALL_TESTS(fish_breeding) && second_fish && !length(evolution_types)) + chosen_type = second_fish.type + else + var/list/possible_evolutions = list() + for(var/evolution_type in evolution_types) + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[evolution_type] + if(evolution.check_conditions(src, second_fish, aquarium)) + possible_evolutions += evolution + if(second_fish?.evolution_types) + var/secondary_evolutions = (second_fish.evolution_types - evolution_types) + for(var/evolution_type in secondary_evolutions) + var/datum/fish_evolution/evolution = GLOB.fish_evolutions[evolution_type] + if(evolution.check_conditions(second_fish, src, aquarium)) + possible_evolutions += evolution + + if(length(possible_evolutions)) + chosen_evolution = pick(possible_evolutions) + chosen_type = chosen_evolution.new_fish_type + else if(second_fish) + if(length(aquarium.tracked_fish_by_type[type]) >= stable_population) + chosen_type = second_fish.type + else + chosen_type = pick(second_fish.type, type) + else + chosen_type = type + + return create_offspring(chosen_type, second_fish, chosen_evolution) + +/obj/item/fish/proc/create_offspring(chosen_type, obj/item/fish/partner, datum/fish_evolution/evolution) + var/obj/item/fish/new_fish = new chosen_type (loc, FALSE) + //Try to pass down compatible traits based on inheritability + new_fish.inherit_traits(fish_traits, partner?.fish_traits, evolution?.new_traits, evolution?.removed_traits) + + if(partner) + var/mean_size = (size + partner.size)/2 + var/mean_weight = (weight + partner.weight)/2 + new_fish.randomize_size_and_weight(mean_size, mean_weight, 0.3, TRUE) + partner.breeding_wait = world.time + breeding_timeout + else //Make a close of this fish. + new_fish.update_size_and_weight(size, weight, TRUE) + new_fish.progenitors = initial(name) + if(partner && type != partner.type) + var/string = "[initial(name)] - [initial(partner.name)]" + new_fish.progenitors = full_capitalize(string) + else + new_fish.progenitors = full_capitalize(initial(name)) + + breeding_wait = world.time + breeding_timeout + + return new_fish #define PAUSE_BETWEEN_PHASES 15 #define PAUSE_BETWEEN_FLOPS 2 @@ -345,9 +559,10 @@ /// Starts flopping animation /obj/item/fish/proc/start_flopping() - if(!flopping) //Requires update_transform/animate_wrappers to be less restrictive. - flopping = TRUE - flop_animation(src) + if(flopping) //Requires update_transform/animate_wrappers to be less restrictive. + return + flopping = TRUE + flop_animation(src) /// Stops flopping animation /obj/item/fish/proc/stop_flopping() @@ -374,11 +589,20 @@ var/chance_table = list() for(var/_fish_type in subtypesof(/obj/item/fish)) var/obj/item/fish/fish = _fish_type - if(required_fluid && initial(fish.required_fluid_type) != required_fluid) - continue + if(required_fluid) + var/init_fish_fluid_type = initial(fish.required_fluid_type) + if(!compatible_fluid_type(init_fish_fluid_type, required_fluid)) + continue if(initial(fish.available_in_random_cases) || !case_fish_only) chance_table[fish] = initial(fish.random_case_rarity) probability_table[argkey] = chance_table return pick_weight(probability_table[argkey]) - +/proc/compatible_fluid_type(fish_fluid_type, fluid_type) + switch(fish_fluid_type) + if(AQUARIUM_FLUID_ANY_WATER) + return fluid_type != AQUARIUM_FLUID_AIR + if(AQUARIUM_FLUID_ANADROMOUS) + return fluid_type == AQUARIUM_FLUID_SALTWATER || fluid_type == AQUARIUM_FLUID_FRESHWATER + else + return fish_fluid_type == fluid_type diff --git a/code/modules/fishing/fish/chasm_detritus.dm b/code/modules/fishing/fish/chasm_detritus.dm index 69105daeba4..a5102b97f64 100644 --- a/code/modules/fishing/fish/chasm_detritus.dm +++ b/code/modules/fishing/fish/chasm_detritus.dm @@ -40,15 +40,7 @@ if (prob(default_contents_chance)) create_default_object() return - - var/list/chasm_stuff = find_chasm_contents() - if (!chasm_stuff.len) - create_default_object() - return - - var/atom/movable/detritus = determine_detritus(chasm_stuff) - detritus.forceMove(get_turf(src)) - qdel(src) + RegisterSignal(src, COMSIG_ATOM_FISHING_REWARD, PROC_REF(find_chasm_contents)) /// Returns the chosen detritus from the given list of things to choose from /obj/item/chasm_detritus/proc/determine_detritus(list/chasm_stuff) @@ -60,19 +52,24 @@ new contents_type(get_turf(src)) qdel(src) -/// Returns a list of every object which is currently inside of a chasm. -/obj/item/chasm_detritus/proc/find_chasm_contents() - var/list/chasm_contents = list() - if (!GLOB.chasm_storage.len) - return chasm_contents +/// Returns an objected which is currently inside of a nearby chasm. +/obj/item/chasm_detritus/proc/find_chasm_contents(datum/source, turf/fishing_spot) + SIGNAL_HANDLER + var/list/chasm_contents = get_chasm_contents(fishing_spot) - var/list/chasm_storage_resolved = recursive_list_resolve(GLOB.chasm_storage) - for (var/obj/storage as anything in chasm_storage_resolved) + if (length(chasm_contents)) + create_default_object() + return + + var/atom/movable/detritus = determine_detritus(chasm_contents) + detritus.forceMove(get_turf(src)) + qdel(src) + +/obj/item/chasm_detritus/proc/get_chasm_contents(turf/fishing_spot) + . = list() + for (var/obj/effect/abstract/chasm_storage/storage in range(5, fishing_spot)) for (var/thing as anything in storage.contents) - chasm_contents += thing - - return chasm_contents - + . += thing /// Variant of the chasm detritus that allows for an easier time at fishing out /// bodies, and sometimes less desireable monsters too. @@ -81,21 +78,27 @@ /// contained in the `GLOB.chasm_storage` global list in `find_chasm_contents()`. var/chasm_storage_restricted_type = /obj - -/obj/item/chasm_detritus/restricted/find_chasm_contents() - var/list/chasm_contents = list() - if (!GLOB.chasm_storage.len) - return chasm_contents - - var/list/chasm_storage_resolved = recursive_list_resolve(GLOB.chasm_storage) - for (var/obj/storage as anything in chasm_storage_resolved) +/obj/item/chasm_detritus/restricted/get_chasm_contents(turf/fishing_spot) + . = list() + for (var/obj/effect/abstract/chasm_storage/storage in range(5, fishing_spot)) for (var/thing as anything in storage.contents) if(!istype(thing, chasm_storage_restricted_type)) continue + . += thing - chasm_contents += thing +/obj/item/chasm_detritus/restricted/objects + default_contents_chance = 12.5 + default_contents_key = NO_CORPSES - return chasm_contents +/obj/item/chasm_detritus/restricted/bodies + default_contents_chance = 12.5 + default_contents_key = BODIES_ONLY + chasm_storage_restricted_type = /mob + +/// This also includes all mobs fallen into chasms, regardless of distance +/obj/item/chasm_detritus/restricted/bodies/get_chasm_contents(turf/fishing_spot) + . = ..() + . |= GLOB.chasm_fallen_mobs /// Body detritus is selected in favor of bodies belonging to sentient mobs /// The first sentient body found in the list of contents is returned, otherwise @@ -106,17 +109,6 @@ return fallen_mob return ..() -/obj/item/chasm_detritus/restricted/objects - default_contents_chance = 12.5 - default_contents_key = NO_CORPSES - - -/obj/item/chasm_detritus/restricted/bodies - default_contents_chance = 12.5 - default_contents_key = BODIES_ONLY - chasm_storage_restricted_type = /mob - - #undef NORMAL_CONTENTS #undef BODIES_ONLY #undef NO_CORPSES diff --git a/code/modules/fishing/fish/fish_evolution.dm b/code/modules/fishing/fish/fish_evolution.dm new file mode 100644 index 00000000000..ccdf50f9e0e --- /dev/null +++ b/code/modules/fishing/fish/fish_evolution.dm @@ -0,0 +1,113 @@ +GLOBAL_LIST_INIT(fish_evolutions, init_fish_evolutions()) + +/proc/init_fish_evolutions() + . = list() + for(var/datum/fish_evolution/evolution as anything in subtypesof(/datum/fish_evolution)) + //Skip abstract types. + if(!initial(evolution.probability) || !initial(evolution.new_fish_type)) + continue + .[evolution] = new evolution + +/** + * Fish evolution datums + * + * If present in a fish's evolution_types list, and other conditions are met in check_conditions() + * then there's a chance the offspring may be of a new type rather than the same as its source or mate (if any). + */ +/datum/fish_evolution + var/name + var/probability = 0 + ///The obj/item/fish path of the new fish + var/obj/item/fish/new_fish_type = /obj/item/fish + ///The minimum required temperature for the evolved fish to spawn + var/required_temperature_min = MIN_AQUARIUM_TEMP + ///The maximum required temperature for the evolved fish to spawn + var/required_temperature_max = MAX_AQUARIUM_TEMP + ///A list of traits added to the new fish. These take priority over the parents' traits. + var/list/new_traits + ///If set, these traits will be removed from the new fish. + var/list/removed_traits + ///A text string shown in the catalog, containing information on conditions specific to this evolution. + var/conditions_note + +/datum/fish_evolution/New() + if(!ispath(new_fish_type, /obj/item/fish)) + stack_trace("[type] instantiated with a new fish type of [new_fish_type]. That's not a fish, hun, things will break.") + if(!name) + name = full_capitalize(initial(new_fish_type.name)) +/** + * The main proc that checks whether this can happen or not. + * Please do keep in mind a mate may not be present for fish with the + * self-reproductive trait. + */ +/datum/fish_evolution/proc/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium) + SHOULD_CALL_PARENT(TRUE) + //chances are halved if only one parent has this evolution. + var/real_probability = (mate && (type in mate.evolution_types)) ? probability : probability/2 + if(!prob(real_probability)) + return FALSE + if(!ISINRANGE(aquarium.fluid_temp, required_temperature_min, required_temperature_max)) + return FALSE + return TRUE + +///Called by the fish analyzer right click function. Returns a text string used as tooltip. +/datum/fish_evolution/proc/get_evolution_tooltip() + . = "" + if(required_temperature_min != MIN_AQUARIUM_TEMP || required_temperature_max != MAX_AQUARIUM_TEMP) + . = "An aquarium temperature between [required_temperature_min] and [required_temperature_max] is required." + if(conditions_note) + . += " [conditions_note]" + return . + +///Proc called to let evolution register signals that are needed for various conditions. +/datum/fish_evolution/proc/register_fish(obj/item/fish/fish) + return + +/datum/fish_evolution/lubefish + probability = 25 + new_fish_type = /obj/item/fish/clownfish/lube + new_traits = list(/datum/fish_trait/lubed) + conditions_note = "The fish must be fed lube beforehand." + +/datum/fish_evolution/lubefish/register_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_FISH_FED, PROC_REF(check_for_lube)) + +/datum/fish_evolution/lubefish/proc/check_for_lube(obj/item/fish/source, datum/reagents/fed_reagents, wrong_reagent_type) + SIGNAL_HANDLER + if((wrong_reagent_type == /datum/reagent/lube) || fed_reagents.remove_reagent(/datum/reagent/lube, 0.1)) + ADD_TRAIT(source, TRAIT_FISH_FED_LUBE, FISH_EVOLUTION) + addtimer(TRAIT_CALLBACK_REMOVE(source, TRAIT_FISH_FED_LUBE, FISH_EVOLUTION), source.feeding_frequency) + +/datum/fish_evolution/lubefish/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium) + if(!HAS_TRAIT(source, TRAIT_FISH_FED_LUBE)) + return FALSE + return ..() + +/datum/fish_evolution/purple_sludgefish + probability = 5 + new_fish_type = /obj/item/fish/sludgefish/purple + removed_traits = list(/datum/fish_trait/no_mating) + +/datum/fish_evolution/mastodon + name = "???" //The resulting fish is not shown on the catalog. + probability = 40 + new_fish_type = /obj/item/fish/mastodon + new_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/amphibious, /datum/fish_trait/predator, /datum/fish_trait/aggressive) + conditions_note = "The fish (and its mate) need to be unusually big both in size and weight." + +/datum/fish_evolution/mastodon/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium) + if((source.size < 144 || source.weight < 4000) || (mate && (mate.size < 144 || mate.weight < 4000))) + return FALSE + return ..() + +/datum/fish_evolution/chasm_chrab + probability = 50 + new_fish_type = /obj/item/fish/chasm_crab + required_temperature_min = MIN_AQUARIUM_TEMP+14 + required_temperature_max = MIN_AQUARIUM_TEMP+15 + +/datum/fish_evolution/ice_chrab + probability = 50 + new_fish_type = /obj/item/fish/chasm_crab/ice + required_temperature_min = MIN_AQUARIUM_TEMP+9 + required_temperature_max = MIN_AQUARIUM_TEMP+10 diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm new file mode 100644 index 00000000000..efe7f8f9a32 --- /dev/null +++ b/code/modules/fishing/fish/fish_traits.dm @@ -0,0 +1,338 @@ +GLOBAL_LIST_INIT(fish_traits, init_subtypes_w_path_keys(/datum/fish_trait, list())) + +/datum/fish_trait + var/name = "Unnamed Trait" + /// Description of the trait in the fishing catalog and scanner + var/catalog_description = "Uh uh, someone has forgotten to set description to this trait. Yikes!" + ///A list of traits fish cannot have in conjunction with this trait. + var/list/incompatible_traits + /// The probability this trait can be inherited by offsprings when both mates have it + var/inheritability = 100 + /// Same as above, but for when only one has it. + var/diff_traits_inheritability = 50 + /// fishes of types within this list are granted to have this trait, no matter the probability + var/list/guaranteed_inheritance_types + +/// Difficulty modifier from this mod, needs to return a list with two values +/datum/fish_trait/proc/difficulty_mod(obj/item/fishing_rod/rod, mob/fisherman) + SHOULD_CALL_PARENT(TRUE) //Technically it doesn't but this makes it saner without custom unit test + return list(ADDITIVE_FISHING_MOD = 0, MULTIPLICATIVE_FISHING_MOD = 1) + +/// Catch weight table modifier from this mod, needs to return a list with two values +/datum/fish_trait/proc/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) + SHOULD_CALL_PARENT(TRUE) + return list(ADDITIVE_FISHING_MOD = 0, MULTIPLICATIVE_FISHING_MOD = 1) + +/// Returns special minigame rules applied by this trait +/datum/fish_trait/proc/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman) + return list() + +/// Applies some special qualities to the fish that has been spawned +/datum/fish_trait/proc/apply_to_fish(obj/item/fish/fish) + return + +/// Proc used by both the predator and necrophage traits. +/datum/fish_trait/proc/eat_fish(obj/item/fish/predator, obj/item/fish/prey) + predator.last_feeding = world.time + var/message = prey.status == FISH_DEAD ? "[src] eats [prey]'s carcass." : "[src] hunts down and eats [prey]." + predator.loc.visible_message(span_warning(message)) + SEND_SIGNAL(prey, COMSIG_FISH_EATEN_BY_OTHER_FISH, predator) + qdel(prey) + +/datum/fish_trait/wary + name = "Wary" + catalog_description = "This fish will avoid visible fish lines, cloaked line recommended." + +/datum/fish_trait/wary/difficulty_mod(obj/item/fishing_rod/rod, mob/fisherman) + . = ..() + // Wary fish require transparent line or they're harder + if(!rod.line || !(rod.line.fishing_line_traits & FISHING_LINE_CLOAKED)) + .[ADDITIVE_FISHING_MOD] = -FISH_TRAIT_MINOR_DIFFICULTY_BOOST + +/datum/fish_trait/shiny_lover + name = "Shiny Lover" + catalog_description = "This fish loves shiny things, shiny lure recommended." + +/datum/fish_trait/shiny_lover/difficulty_mod(obj/item/fishing_rod/rod, mob/fisherman) + . = ..() + // These fish are easier to catch with shiny lure + if(rod.hook && rod.hook.fishing_hook_traits & FISHING_HOOK_SHINY) + .[ADDITIVE_FISHING_MOD] = FISH_TRAIT_MINOR_DIFFICULTY_BOOST + +/datum/fish_trait/picky_eater + name = "Picky Eater" + catalog_description = "This fish is very picky and will ignore low quality bait." + +/datum/fish_trait/picky_eater/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) + . = ..() + if(!rod.bait || !(HAS_TRAIT(rod.bait, GOOD_QUALITY_BAIT_TRAIT) || HAS_TRAIT(rod.bait, GREAT_QUALITY_BAIT_TRAIT))) + .[MULTIPLICATIVE_FISHING_MOD] = 0 + + +/datum/fish_trait/nocturnal + name = "Nocturnal" + catalog_description = "This fish avoids bright lights, fishing and storing in darkness recommended." + +/datum/fish_trait/nocturnal/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) + . = ..() + var/turf/turf = get_turf(fisherman) + var/light_amount = turf.get_lumcount() + if(light_amount > SHADOW_SPECIES_LIGHT_THRESHOLD) + .[MULTIPLICATIVE_FISHING_MOD] = 0 + +/datum/fish_trait/nocturnal/apply_to_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(check_light)) + +/datum/fish_trait/nocturnal/proc/check_light(obj/item/fish/source, seconds_per_tick) + SIGNAL_HANDLER + if(isturf(source.loc) || isaquarium(source)) + var/turf/turf = get_turf(source) + var/light_amount = turf.get_lumcount() + if(light_amount > SHADOW_SPECIES_LIGHT_THRESHOLD) + source.adjust_health(source.health - 0.5 * seconds_per_tick) + +/datum/fish_trait/heavy + name = "Heavy" + catalog_description = "This fish tends to stay near the waterbed."; + +/datum/fish_trait/heavy/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman) + return list(FISHING_MINIGAME_RULE_HEAVY_FISH) + +/datum/fish_trait/carnivore + name = "Carnivore" + catalog_description = "This fish can only be baited with meat." + incompatible_traits = list(/datum/fish_trait/vegan) + +/datum/fish_trait/carnivore/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) + . = ..() + .[MULTIPLICATIVE_FISHING_MOD] = 0 + if(rod.bait && istype(rod.bait, /obj/item/food)) + var/obj/item/food/food_bait = rod.bait + if(food_bait.foodtypes & MEAT) + .[MULTIPLICATIVE_FISHING_MOD] = 1 + +/datum/fish_trait/vegan + name = "Herbivore" + catalog_description = "This fish can only be baited with fresh produce." + incompatible_traits = list(/datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/necrophage) + +/datum/fish_trait/vegan/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) + . = ..() + .[MULTIPLICATIVE_FISHING_MOD] = 0 + if(rod.bait && istype(rod.bait, /obj/item/food/grown)) + .[MULTIPLICATIVE_FISHING_MOD] = 1 + +/datum/fish_trait/emulsijack + name = "Emulsifier" + catalog_description = "This fish emits an invisible toxin that emulsifies other fish for it to feed on." + +/datum/fish_trait/emulsijack/apply_to_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(emulsify)) + ADD_TRAIT(fish, TRAIT_RESIST_EMULSIFY, FISH_TRAIT_DATUM) + +/datum/fish_trait/emulsijack/proc/emulsify(obj/item/fish/source, seconds_per_tick) + SIGNAL_HANDLER + if(!isaquarium(source.loc)) + return + var/emulsified = FALSE + for(var/obj/item/fish/victim in source.loc) + if(HAS_TRAIT(victim, TRAIT_RESIST_EMULSIFY) || HAS_TRAIT(victim, TRAIT_FISH_TOXIN_IMMUNE)) //no team killing + continue + victim.adjust_health(victim.health - 3 * seconds_per_tick) //the victim may heal a bit but this will quickly kill + emulsified = TRUE + if(emulsified) + source.adjust_health(source.health + 3 * seconds_per_tick) + source.last_feeding = world.time //it feeds on the emulsion! + +/datum/fish_trait/necrophage + name = "Necrophage" + catalog_description = "This fish will eat the carcasses of dead fishes when hungry." + incompatible_traits = list(/datum/fish_trait/vegan) + +/datum/fish_trait/necrophage/apply_to_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(eat_dead_fishes)) + +/datum/fish_trait/necrophage/proc/eat_dead_fishes(obj/item/fish/source, seconds_per_tick) + SIGNAL_HANDLER + if(world.time - source.last_feeding >= source.feeding_frequency || !isaquarium(source.loc)) + return + for(var/obj/item/fish/victim in source.loc) + if(victim.status != FISH_DEAD || victim == source || HAS_TRAIT(victim, TRAIT_YUCKY_FISH)) + continue + eat_fish(source, victim) + return + +/datum/fish_trait/parthenogenesis + name = "Parthenogenesis" + catalog_description = "This fish can reproduce asexually, without the need of a mate." + inheritability = 80 + diff_traits_inheritability = 25 + +/datum/fish_trait/parthenogenesis/apply_to_fish(obj/item/fish/fish) + ADD_TRAIT(fish, TRAIT_FISH_SELF_REPRODUCE, FISH_TRAIT_DATUM) + +/** + * Useful for those species with the parthenogenesis trait if you don't want them to mate with each other, + * or for similar shenanigeans, I don't know. + * Otherwise you could just set the stable_population to 1. + */ +/datum/fish_trait/no_mating + name = "Mateless" + catalog_description = "This fish cannot reproduce with other fishes." + incompatible_traits = list(/datum/fish_trait/crossbreeder) + +/datum/fish_trait/no_mating/apply_to_fish(obj/item/fish/fish) + ADD_TRAIT(fish, TRAIT_FISH_NO_MATING, FISH_TRAIT_DATUM) + +/datum/fish_trait/revival + diff_traits_inheritability = 15 + name = "Self-Revival" + catalog_description = "This fish shows a peculiar ability of reviving itself a minute or two after death." + guaranteed_inheritance_types = list(/obj/item/fish/boned, /obj/item/fish/mastodon) + +/datum/fish_trait/revival/apply_to_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(check_status)) + +/datum/fish_trait/revival/proc/check_status(obj/item/fish/source) + SIGNAL_HANDLER + if(source.status == FISH_DEAD) + addtimer(CALLBACK(src, PROC_REF(revive), source), rand(1 MINUTES, 2 MINUTES)) + +/datum/fish_trait/revival/proc/revive(obj/item/fish/source) + if(QDELETED(source) || source.status != FISH_DEAD) + return + source.set_status(FISH_ALIVE) + var/message = span_nicegreen("[source] twitches. It's alive!") + if(isaquarium(source.loc)) + source.loc.visible_message(message) + else + source.visible_message(message) + +/datum/fish_trait/predator + name = "Predator" + catalog_description = "It's a predatory fish. It'll hunt down and eat live fishes of smaller size when hungry." + incompatible_traits = list(/datum/fish_trait/vegan) + +/datum/fish_trait/predator/apply_to_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(eat_fishes)) + +/datum/fish_trait/predator/proc/eat_fishes(obj/item/fish/source, seconds_per_tick) + SIGNAL_HANDLER + if(world.time - source.last_feeding >= source.feeding_frequency || !isaquarium(source.loc)) + return + var/obj/structure/aquarium/aquarium = source.loc + for(var/obj/item/fish/victim in aquarium.get_fishes(TRUE, source)) + if(victim.size < source.size * 0.75) // It's a big fish eat small fish world + continue + if(victim.status != FISH_ALIVE || victim == source || HAS_TRAIT(victim, TRAIT_YUCKY_FISH) || SPT_PROB(80, seconds_per_tick)) + continue + eat_fish(source, victim) + return + +/datum/fish_trait/yucky + name = "Yucky" + catalog_description = "This fish tastes so repulsive, other fishes won't try to eat it." + +/datum/fish_trait/yucky/apply_to_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_yuck)) + ADD_TRAIT(fish, TRAIT_YUCKY_FISH, FISH_TRAIT_DATUM) + LAZYSET(fish.grind_results, /datum/reagent/yuck, 3) + +/datum/fish_trait/yucky/proc/add_yuck(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results) + var/amount = source.grind_results[/datum/reagent/yuck] / length(results) + for(var/atom/result as anything in results) + result.reagents?.add_reagent(/datum/reagent/yuck, amount) + +/datum/fish_trait/toxic + name = "Toxic" + catalog_description = "This fish contains toxins in its liver. Feeding it to predatory fishes or people is not reccomended." + diff_traits_inheritability = 25 + +/datum/fish_trait/toxic/apply_to_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_toxin)) + RegisterSignal(fish, COMSIG_FISH_EATEN_BY_OTHER_FISH, PROC_REF(on_eaten)) + LAZYSET(fish.grind_results, /datum/reagent/toxin/tetrodotoxin, 0.5) + +/datum/fish_trait/toxic/proc/add_toxin(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results) + var/amount = source.grind_results[ /datum/reagent/toxin/tetrodotoxin] / length(results) + for(var/atom/result as anything in results) + result.reagents?.add_reagent( /datum/reagent/toxin/tetrodotoxin, amount) + +/datum/fish_trait/toxic/proc/on_eaten(obj/item/fish/source, obj/item/fish/predator) + if(HAS_TRAIT(predator, TRAIT_FISH_TOXIN_IMMUNE)) + return + RegisterSignal(predator, COMSIG_FISH_LIFE, PROC_REF(damage_predator), TRUE) + RegisterSignal(predator, COMSIG_FISH_STATUS_CHANGED, PROC_REF(stop_damaging), TRUE) + +/datum/fish_trait/toxic/proc/damage_predator(obj/item/fish/source, seconds_per_tick) + SIGNAL_HANDLER + source.adjust_health(source.health - 3 * seconds_per_tick) + +/datum/fish_trait/toxic/proc/stop_damaging(obj/item/fish/source) + SIGNAL_HANDLER + if(source.status == FISH_DEAD) + UnregisterSignal(source, list(COMSIG_FISH_LIFE, COMSIG_FISH_STATUS_CHANGED)) + +/datum/fish_trait/toxin_immunity + name = "Toxin Immunity" + catalog_description = "This fish has developed an ample-spected immunity to toxins." + diff_traits_inheritability = 40 + +/datum/fish_trait/toxin_immunity/apply_to_fish(obj/item/fish/fish) + ADD_TRAIT(fish, TRAIT_FISH_TOXIN_IMMUNE, FISH_TRAIT_DATUM) + +/datum/fish_trait/crossbreeder + name = "Crossbreeder" + catalog_description = "This fish's adaptive genetics allows it to crossbreed with other fish species." + inheritability = 80 + diff_traits_inheritability = 20 + incompatible_traits = list(/datum/fish_trait/no_mating) + +/datum/fish_trait/crossbreeder/apply_to_fish(obj/item/fish/fish) + ADD_TRAIT(fish, TRAIT_FISH_CROSSBREEDER, FISH_TRAIT_DATUM) + +/datum/fish_trait/aggressive + name = "Aggressive" + inheritability = 80 + diff_traits_inheritability = 40 + catalog_description = "This fish is agressively territorial, and may attack fish that come close to it." + +/datum/fish_trait/aggressive/apply_to_fish(obj/item/fish/fish) + RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(try_attack_fish)) + +/datum/fish_trait/aggressive/proc/try_attack_fish(obj/item/fish/source, seconds_per_tick) + SIGNAL_HANDLER + if(!isaquarium(source.loc) || !SPT_PROB(1, seconds_per_tick)) + return + var/obj/structure/aquarium/aquarium = source.loc + for(var/obj/item/fish/victim in aquarium.get_fishes(TRUE, source)) + if(victim.status != FISH_ALIVE) + continue + aquarium.visible_message(span_warning("[source] violently [pick("whips", "bites", "attacks", "slams")] [victim]")) + var/damage = round(rand(4, 20) * (source.size / victim.size)) //smaller fishes take extra damage. + victim.adjust_health(victim.health - damage) + return + +/datum/fish_trait/lubed + name = "Lubed" + inheritability = 90 + diff_traits_inheritability = 45 + guaranteed_inheritance_types = list(/obj/item/fish/clownfish/lube) + catalog_description = "This fish exudes a viscous, slippery lubrificant. It's reccomended not to step on it." + +/datum/fish_trait/lubed/apply_to_fish(obj/item/fish/fish) + fish.AddComponent(/datum/component/slippery, 8 SECONDS, SLIDE|GALOSHES_DONT_HELP) + +/datum/fish_trait/lubed/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman) + return list(FISHING_MINIGAME_RULE_LUBED_FISH) + +/datum/fish_trait/amphibious + name = "Amphibious" + inheritability = 80 + diff_traits_inheritability = 40 + catalog_description = "This fish has developed a primitive adaptation to life on both land and water." + +/datum/fish_trait/amphibious/apply_to_fish(obj/item/fish/fish) + ADD_TRAIT(fish, TRAIT_FISH_AMPHIBIOUS, FISH_TRAIT_DATUM) + if(fish.required_fluid_type == AQUARIUM_FLUID_AIR) + fish.required_fluid_type = AQUARIUM_FLUID_FRESHWATER diff --git a/code/modules/fishing/fish/fish_types.dm b/code/modules/fishing/fish/fish_types.dm index fe6f634fce8..34c945241da 100644 --- a/code/modules/fishing/fish/fish_types.dm +++ b/code/modules/fishing/fish/fish_types.dm @@ -10,6 +10,8 @@ average_size = 30 average_weight = 500 favorite_bait = list(/obj/item/food/bait/worm) + required_temperature_min = MIN_AQUARIUM_TEMP+18 + required_temperature_max = MIN_AQUARIUM_TEMP+26 /obj/item/fish/angelfish name = "angelfish" @@ -21,6 +23,9 @@ average_size = 30 average_weight = 500 stable_population = 3 + fish_traits = list(/datum/fish_trait/aggressive) + required_temperature_min = MIN_AQUARIUM_TEMP+22 + required_temperature_max = MIN_AQUARIUM_TEMP+30 /obj/item/fish/guppy name = "guppy" @@ -33,6 +38,8 @@ average_size = 30 average_weight = 500 stable_population = 6 + required_temperature_min = MIN_AQUARIUM_TEMP+20 + required_temperature_max = MIN_AQUARIUM_TEMP+28 /obj/item/fish/plasmatetra name = "plasma tetra" @@ -43,6 +50,8 @@ average_size = 30 average_weight = 500 stable_population = 3 + required_temperature_min = MIN_AQUARIUM_TEMP+20 + required_temperature_max = MIN_AQUARIUM_TEMP+28 /obj/item/fish/catfish name = "cory catfish" @@ -59,6 +68,8 @@ "Value" = JUNKFOOD ) ) + required_temperature_min = MIN_AQUARIUM_TEMP+12 + required_temperature_max = MIN_AQUARIUM_TEMP+30 // Saltwater fish below @@ -73,8 +84,23 @@ average_size = 30 average_weight = 500 stable_population = 4 + grind_results = list(/datum/reagent/blood = 20, /datum/reagent/consumable/liquidgibs = 2) + fish_traits = list(/datum/fish_trait/picky_eater) + evolution_types = list(/datum/fish_evolution/lubefish) + compatible_types = list(/obj/item/fish/clownfish/lube) + required_temperature_min = MIN_AQUARIUM_TEMP+22 + required_temperature_max = MIN_AQUARIUM_TEMP+30 - fishing_traits = list(/datum/fishing_trait/picky_eater) +/obj/item/fish/clownfish/lube + name = "lubefish" + desc = "A clownfish exposed to cherry-flavored lube for far too long. First discovered the days following a cargo incident around the seas of Europa, when thousands of thousands of thousands..." + icon_state = "lubefish" + random_case_rarity = FISH_RARITY_VERY_RARE + dedicated_in_aquarium_icon_state = "lubefish_small" + fish_traits = list(/datum/fish_trait/picky_eater, /datum/fish_trait/lubed) + evolution_types = null + compatible_types = list(/obj/item/fish/clownfish) + food = /datum/reagent/lube /obj/item/fish/cardinal name = "cardinalfish" @@ -85,7 +111,9 @@ average_size = 30 average_weight = 500 stable_population = 4 - fishing_traits = list(/datum/fishing_trait/vegan) + fish_traits = list(/datum/fish_trait/vegan) + required_temperature_min = MIN_AQUARIUM_TEMP+22 + required_temperature_max = MIN_AQUARIUM_TEMP+30 /obj/item/fish/greenchromis name = "green chromis" @@ -97,6 +125,8 @@ average_size = 30 average_weight = 500 stable_population = 5 + required_temperature_min = MIN_AQUARIUM_TEMP+23 + required_temperature_max = MIN_AQUARIUM_TEMP+28 fishing_difficulty_modifier = 5 // Bit harder @@ -112,10 +142,12 @@ stable_population = 3 disliked_bait = list(/obj/item/food/bait/worm, /obj/item/food/bait/doughball) fish_ai_type = FISH_AI_ZIPPY + required_temperature_min = MIN_AQUARIUM_TEMP+23 + required_temperature_max = MIN_AQUARIUM_TEMP+28 /obj/item/fish/pufferfish name = "pufferfish" - desc = "One Pufferfish contains enough toxins in its liver to kill 30 people." + desc = "They say that one pufferfish contains enough toxins to kill 30 people, although in the last few decades they've been genetically engineered en masse to be less poisonous." icon_state = "pufferfish" required_fluid_type = AQUARIUM_FLUID_SALTWATER sprite_width = 8 @@ -123,8 +155,10 @@ average_size = 60 average_weight = 1000 stable_population = 3 + required_temperature_min = MIN_AQUARIUM_TEMP+23 + required_temperature_max = MIN_AQUARIUM_TEMP+28 - fishing_traits = list(/datum/fishing_trait/heavy) + fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/toxic) /obj/item/fish/lanternfish name = "lanternfish" @@ -139,8 +173,9 @@ average_size = 100 average_weight = 1500 stable_population = 3 - - fishing_traits = list(/datum/fishing_trait/nocturnal) + fish_traits = list(/datum/fish_trait/nocturnal) + required_temperature_min = MIN_AQUARIUM_TEMP+2 //My source is that the water at a depth 6600 feet is pretty darn cold. + required_temperature_max = MIN_AQUARIUM_TEMP+18 //Tiziran Fish /obj/item/fish/dwarf_moonfish @@ -152,6 +187,8 @@ fillet_type = /obj/item/food/fishmeat/moonfish average_size = 100 average_weight = 2000 + required_temperature_min = MIN_AQUARIUM_TEMP+20 + required_temperature_max = MIN_AQUARIUM_TEMP+30 /obj/item/fish/gunner_jellyfish name = "gunner jellyfish" @@ -160,6 +197,8 @@ required_fluid_type = AQUARIUM_FLUID_SALTWATER stable_population = 4 fillet_type = /obj/item/food/fishmeat/gunner_jellyfish + required_temperature_min = MIN_AQUARIUM_TEMP+24 + required_temperature_max = MIN_AQUARIUM_TEMP+32 /obj/item/fish/needlefish name = "needlefish" @@ -168,9 +207,11 @@ required_fluid_type = AQUARIUM_FLUID_SALTWATER stable_population = 12 fillet_type = null - average_size = 30 + average_size = 20 average_weight = 300 - fishing_traits = list(/datum/fishing_trait/carnivore) + fish_traits = list(/datum/fish_trait/carnivore) + required_temperature_min = MIN_AQUARIUM_TEMP+10 + required_temperature_max = MIN_AQUARIUM_TEMP+32 /obj/item/fish/armorfish name = "armorfish" @@ -180,6 +221,8 @@ stable_population = 10 fillet_type = /obj/item/food/fishmeat/armorfish fish_ai_type = FISH_AI_SLOW + required_temperature_min = MIN_AQUARIUM_TEMP+10 + required_temperature_max = MIN_AQUARIUM_TEMP+32 //Chasm fish /obj/item/fish/chasm_crab @@ -195,6 +238,20 @@ feeding_frequency = 15 MINUTES random_case_rarity = FISH_RARITY_RARE fillet_type = /obj/item/food/meat/slab/rawcrab + required_temperature_min = MIN_AQUARIUM_TEMP+9 + required_temperature_max = MAX_AQUARIUM_TEMP+150 + evolution_types = list(/datum/fish_evolution/ice_chrab) + compatible_types = list(/obj/item/fish/chasm_crab/ice) + +/obj/item/fish/chasm_crab/ice + name = "arctic chrab" + desc = "A subspecies of chasm chrabs that has adapted to the cold climate and lack of abysmal holes of the icemoon." + icon_state = "arctic_chrab" + dedicated_in_aquarium_icon_state = "ice_chrab_small" + required_temperature_min = MIN_AQUARIUM_TEMP-150 + required_temperature_max = MIN_AQUARIUM_TEMP+15 + evolution_types = list(/datum/fish_evolution/chasm_chrab) + compatible_types = list(/obj/item/fish/chasm_crab) /obj/item/storage/box/fish_debug name = "box full of fish" @@ -211,28 +268,20 @@ required_fluid_type = AQUARIUM_FLUID_FRESHWATER stable_population = 4 fillet_type = /obj/item/food/fishmeat/donkfish + fish_traits = list(/datum/fish_trait/yucky) + required_temperature_min = MIN_AQUARIUM_TEMP+15 + required_temperature_max = MIN_AQUARIUM_TEMP+28 /obj/item/fish/emulsijack name = "toxic emulsijack" - desc = "Ah, the terrifying emulsijack. Created in a laboratory, this slimey, scaleless fish emits an invisible toxin that emulsifies other fish for it to feed on. Its only real use is for completely ruining a tank." + desc = "Ah, the terrifying emulsijack. Created in a laboratory, the only real use of this slimey, scaleless fish is for completely ruining a tank." icon_state = "emulsijack" random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS required_fluid_type = AQUARIUM_FLUID_ANADROMOUS stable_population = 3 - -/obj/item/fish/emulsijack/process(seconds_per_tick) - var/emulsified = FALSE - var/obj/structure/aquarium/aquarium = loc - if(istype(aquarium)) - for(var/obj/item/fish/victim in aquarium) - if(istype(victim, /obj/item/fish/emulsijack)) - continue //no team killing - victim.adjust_health((victim.health - 3) * seconds_per_tick) //the victim may heal a bit but this will quickly kill - emulsified = TRUE - if(emulsified) - adjust_health((health + 3) * seconds_per_tick) - last_feeding = world.time //emulsijack feeds on the emulsion! - ..() + fish_traits = list(/datum/fish_trait/emulsijack) + required_temperature_min = MIN_AQUARIUM_TEMP+5 + required_temperature_max = MIN_AQUARIUM_TEMP+40 /obj/item/fish/ratfish name = "ratfish" @@ -242,6 +291,9 @@ required_fluid_type = AQUARIUM_FLUID_FRESHWATER stable_population = 10 //set by New, but this is the default config value fillet_type = /obj/item/food/meat/slab/human/mutant/zombie //eww... + fish_traits = list(/datum/fish_trait/necrophage) + required_temperature_min = MIN_AQUARIUM_TEMP+15 + required_temperature_max = MIN_AQUARIUM_TEMP+35 fish_ai_type = FISH_AI_ZIPPY favorite_bait = list( @@ -255,3 +307,186 @@ . = ..() //stable pop reflects the config for how many mice migrate. powerful... stable_population = CONFIG_GET(number/mice_roundstart) + +/obj/item/fish/sludgefish + name = "sludgefish" + desc = "A misshapen, fragile, loosely fish-like living goop, the only thing that'd ever thrive in the acidic and claustrophobic cavities of the station's organic waste disposal system." + icon_state = "sludgefish" + dedicated_in_aquarium_icon_state = "sludgefish_small" + sprite_width = 7 + sprite_height = 6 + required_fluid_type = AQUARIUM_FLUID_SULPHWATEVER + stable_population = 8 + average_size = 20 + average_weight = 400 + health = 50 + breeding_timeout = 5 MINUTES + fish_traits = list(/datum/fish_trait/parthenogenesis, /datum/fish_trait/no_mating) + required_temperature_min = MIN_AQUARIUM_TEMP+10 + required_temperature_max = MIN_AQUARIUM_TEMP+40 + evolution_types = list(/datum/fish_evolution/purple_sludgefish) + +/obj/item/fish/sludgefish/purple + name = "purple sludgefish" + desc = "A misshapen, fragile, loosely fish-like living goop. This one has developed sexual reproduction mechanisms, and a purple tint to boot." + icon_state = "sludgefish_purple" + dedicated_in_aquarium_icon_state = "sludgefish_purple_small" + available_in_random_cases = FALSE + random_case_rarity = FISH_RARITY_VERY_RARE + fish_traits = list(/datum/fish_trait/parthenogenesis) + +/obj/item/fish/slimefish + name = "acquatic slime" + desc = "Kids, this is what happens when a slime overcomes its hydrophobic nature. It goes glug glug." + icon_state = "slimefish" + icon_state_dead = "slimefish_dead" + dedicated_in_aquarium_icon_state = "slimefish_small" + sprite_width = 7 + sprite_height = 7 + do_flop_animation = FALSE //it already has our cute bouncy wiggle. :3 + random_case_rarity = FISH_RARITY_VERY_RARE + required_fluid_type = AQUARIUM_FLUID_ANADROMOUS + stable_population = 4 + health = 150 + fillet_type = /obj/item/slime_extract/grey + grind_results = list(/datum/reagent/toxin/slimejelly = 10) + fish_traits = list(/datum/fish_trait/toxin_immunity, /datum/fish_trait/crossbreeder) + favorite_bait = list( + list( + "Type" = "Foodtype", + "Value" = TOXIC, + ), + list( + "Type" = "Reagent", + "Value" = /datum/reagent/toxin, + "Amount" = 5, + ), + ) + required_temperature_min = MIN_AQUARIUM_TEMP+20 + +/obj/item/fish/boned + name = "unmarine bonemass" + desc = "What one could mistake for fish remains, is in reality a species that chose to discard its weak flesh a long time ago. A living fossil, in its most literal sense." + icon_state = "bonemass" + dedicated_in_aquarium_icon_state = "bonemass_small" + sprite_width = 10 + sprite_height = 7 + fish_ai_type = FISH_AI_ZIPPY + random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS + required_fluid_type = AQUARIUM_FLUID_ANY_WATER + health = 150 + stable_population = 3 + grind_results = list(/datum/reagent/bone_dust = 20) + fillet_type = /obj/item/stack/sheet/bone + num_fillets = 2 + fish_traits = list(/datum/fish_trait/revival, /datum/fish_trait/carnivore) + average_size = 70 + average_weight = 2000 + death_text = "%SRC stops moving." //It's dead... or is it? + evolution_types = list(/datum/fish_evolution/mastodon) + +/obj/item/fish/mastodon + name = "unmarine mastodon" + desc = "A monster of exposed muscles and innards, wrapped in a fish-like skeleton. You don't remember ever seeing it on the catalog." + icon = 'icons/obj/aquarium_wide.dmi' + icon_state = "mastodon" + dedicated_in_aquarium_icon = 'icons/obj/aquarium.dmi' + dedicated_in_aquarium_icon_state = "mastodon_small" + base_pixel_x = -16 + pixel_x = -16 + sprite_width = 12 + sprite_height = 7 + show_in_catalog = FALSE + available_in_random_cases = FALSE + random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS + fishing_difficulty_modifier = 5 + required_fluid_type = AQUARIUM_FLUID_ANY_WATER + health = 300 + stable_population = 2 //This means they can only crossbreed. + grind_results = list(/datum/reagent/bone_dust = 15, /datum/reagent/consumable/liquidgibs = 5) + fillet_type = /obj/item/stack/sheet/bone + num_fillets = 2 + feeding_frequency = 2 MINUTES + breeding_timeout = 10 MINUTES + average_size = 180 + average_weight = 5000 + death_text = "%SRC stops moving." + fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/amphibious, /datum/fish_trait/revival, /datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/aggressive) + +/obj/item/fish/holo + name = "holographic goldfish" + desc = "A holographic representation of a common goldfish, slowly flickering out, removed from its holo-habitat." + icon_state = "goldfish" + show_in_catalog = FALSE + available_in_random_cases = FALSE + sprite_width = 8 + sprite_height = 8 + stable_population = 1 + average_size = 30 + average_weight = 500 + required_fluid_type = AQUARIUM_FLUID_ANADROMOUS + grind_results = null + fillet_type = null + death_text = "%SRC disappears." + fish_traits = list(/datum/fish_trait/no_mating) //just to be sure, these shouldn't reproduce + +/obj/item/fish/holo/Initialize(mapload) + . = ..() + var/area/station/holodeck/holo_area = get_area(src) + if(!istype(holo_area)) + return + holo_area.linked.add_to_spawned(src) + +/obj/item/fish/holo/set_status(new_status) + . = ..() + if(status == FISH_DEAD) + qdel(src) + +/obj/item/fish/holo/crab + name = "holographic crab" + desc = "A holographic represantion of a soul-crushingly soulless crab, unlike the cuter ones occasionally roaming around. It stares at you, with empty, beady eyes." + icon_state = "crab" + dedicated_in_aquarium_icon_state = "crab_small" + average_weight = 1000 + sprite_height = 6 + sprite_width = 10 + +/obj/item/fish/holo/puffer + name = "holographic pufferfish" + desc ="A holographic representation of 100% safe-to-eat pufferfish... that is, if holographic fishes were even edible." + sprite_width = 8 + sprite_height = 8 + average_size = 60 + average_weight = 1000 + +/obj/item/fish/holo/angel + name = "holographic angelfish" + desc = "A holographic representation of a angelfish. I got nothing snarky to say about this one." + icon_state = "angelfish" + dedicated_in_aquarium_icon_state = "bigfish" + sprite_height = 7 + +/obj/item/fish/holo/clown + name = "holographic clownfish" + icon_state = "holo_clownfish" + desc = "A holographic representation of a clownfish, or at least how they used to look like five centuries ago." + dedicated_in_aquarium_icon_state = "holo_clownfish_small" + required_fluid_type = AQUARIUM_FLUID_SALTWATER + sprite_width = 8 + sprite_height = 5 + +/obj/item/fish/holo/checkered + name = "unrendered holographic fish" //it's a meta joke, buddy. + desc = "A checkered silhoutte of searing purple and pitch black presents itself before your eyes, like a tear in fabric of reality. It hurts to watch." + icon_state = "checkered" + dedicated_in_aquarium_icon_state = "checkered_small" + sprite_width = 4 + +/obj/item/fish/holo/halffish + name = "holographic half-fish" + desc = "A holographic representation of... a fish reduced to all bones, except for its head. Isn't it supposed to be dead? Ehr, holo-dead?" + icon_state = "half_fish" + dedicated_in_aquarium_icon_state = "half_fish_small" + sprite_height = 4 + sprite_width = 10 + average_size = 50 diff --git a/code/modules/fishing/fish_catalog.dm b/code/modules/fishing/fish_catalog.dm index 854a4080b89..962486d6d1d 100644 --- a/code/modules/fishing/fish_catalog.dm +++ b/code/modules/fishing/fish_catalog.dm @@ -91,10 +91,10 @@ .["disliked_bait"] = english_list(bait_list, nothing_text = "None") // Fish traits description var/list/trait_descriptions = list() - var/list/fish_traits = fish_list_properties[fishy][NAMEOF(fishy, fishing_traits)] + var/list/fish_traits = fish_list_properties[fishy][NAMEOF(fishy, fish_traits)] for(var/fish_trait in fish_traits) - var/datum/fishing_trait/trait = fish_trait - trait_descriptions += initial(trait.catalog_description) + var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait] + trait_descriptions += trait.catalog_description if(!length(trait_descriptions)) trait_descriptions += "This fish exhibits no special behavior." .["traits"] = trait_descriptions diff --git a/code/modules/fishing/fishing_equipment.dm b/code/modules/fishing/fishing_equipment.dm index a5c06197921..0a5e697e271 100644 --- a/code/modules/fishing/fishing_equipment.dm +++ b/code/modules/fishing/fishing_equipment.dm @@ -150,7 +150,7 @@ /obj/item/fishing_hook/bone name = "bone hook" - desc = "a simple hook carved from sharpened bone" + desc = "A simple hook carved from sharpened bone" icon_state = "hook_bone" /datum/crafting_recipe/bone_hook @@ -160,6 +160,24 @@ time = 2 SECONDS category = CAT_TOOLS +/obj/item/fishing_hook/stabilized + name = "gyro-stabilized hook" + desc = "A quirky hook that grants the user a better control of the tool, allowing them to move the hook both and up and down when reeling in, otherwise keeping it stabilized." + icon_state = "gyro" + fishing_hook_traits = FISHING_HOOK_BIDIRECTIONAL + rod_overlay_icon_state = "hook_gyro_overlay" + +/obj/item/fishing_hook/stabilized/examine(mob/user) + . = ..() + . += span_notice("While fishing, you can press the Ctrl key down to move the bait down, rather than up.") + +/obj/item/fishing_hook/jaws + name = "jawed hook" + desc = "Despite hints of rust, this gritty beartrap-like hook hybrid manages to look even more threating than the real thing. May neptune have mercy of whatever is caught by its jaws." + icon_state = "jaws" + fishing_hook_traits = FISHING_HOOK_NO_ESCAPE|FISHING_HOOK_ENSNARE|FISHING_HOOK_KILL + rod_overlay_icon_state = "hook_jaws_overlay" + /obj/item/storage/toolbox/fishing name = "fishing toolbox" desc = "Contains everything you need for your fishing trip." @@ -197,6 +215,5 @@ new /obj/item/fishing_line/reinforced(src) new /obj/item/fishing_line/cloaked(src) - #undef MAGNET_HOOK_BONUS_MULTIPLIER #undef RESCUE_HOOK_FISH_MULTIPLIER diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index 1811c4d2f17..b2e021533ad 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -33,34 +33,51 @@ /// Background image from /datum/asset/simple/fishing_minigame var/background = "default" - /// Max distance we can move from the spot - var/max_distance = 5 - /// Fishing line visual var/datum/beam/fishing_line -/datum/fishing_challenge/New(atom/spot, reward_path, obj/item/fishing_rod/rod, mob/user) + var/experience_multiplier = 1 + +/datum/fishing_challenge/New(datum/component/fishing_spot/comp, reward_path, obj/item/fishing_rod/rod, mob/user) src.user = user src.reward_path = reward_path src.used_rod = rod - lure = new(get_turf(spot)) + var/atom/spot = comp.parent + lure = new(get_turf(spot), spot) + RegisterSignal(spot, COMSIG_QDELETING, PROC_REF(on_spot_gone)) + RegisterSignal(comp.fish_source, COMSIG_FISHING_SOURCE_INTERRUPT_CHALLENGE, PROC_REF(interrupt_challenge)) + comp.fish_source.RegisterSignal(src, COMSIG_FISHING_CHALLENGE_COMPLETED, TYPE_PROC_REF(/datum/fish_source, on_challenge_completed)) + background = comp.fish_source.background /// Fish minigame properties if(ispath(reward_path,/obj/item/fish)) var/obj/item/fish/fish = reward_path fish_ai = initial(fish.fish_ai_type) - // Apply fishing trait modifiers + // Apply fish trait modifiers var/list/fish_list_properties = collect_fish_properties() - var/list/fish_traits = fish_list_properties[fish][NAMEOF(fish, fishing_traits)] + var/list/fish_traits = fish_list_properties[fish][NAMEOF(fish, fish_traits)] for(var/fish_trait in fish_traits) - var/datum/fishing_trait/trait = new fish_trait + var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait] special_effects += trait.minigame_mod(rod, user) /// Enable special parameters if(rod.line) if(rod.line.fishing_line_traits & FISHING_LINE_BOUNCY) - special_effects += FISHING_MINIGAME_RULE_LIMIT_LOSS + special_effects |= FISHING_MINIGAME_RULE_LIMIT_LOSS if(rod.hook) if(rod.hook.fishing_hook_traits & FISHING_HOOK_WEIGHTED) - special_effects += FISHING_MINIGAME_RULE_WEIGHTED_BAIT + special_effects |= FISHING_MINIGAME_RULE_WEIGHTED_BAIT + if(rod.hook.fishing_hook_traits & FISHING_HOOK_BIDIRECTIONAL) + special_effects |= FISHING_MINIGAME_RULE_BIDIRECTIONAL + if(rod.hook.fishing_hook_traits & FISHING_HOOK_NO_ESCAPE) + special_effects |= FISHING_MINIGAME_RULE_NO_ESCAPE + if(rod.hook.fishing_hook_traits & FISHING_HOOK_ENSNARE) + special_effects |= FISHING_MINIGAME_RULE_LIMIT_LOSS + if(rod.hook.fishing_hook_traits & FISHING_HOOK_KILL) + special_effects |= FISHING_MINIGAME_RULE_KILL + + if((FISHING_MINIGAME_RULE_KILL in special_effects) && ispath(reward_path,/obj/item/fish)) + RegisterSignal(user, COMSIG_MOB_FISHING_REWARD_DISPENSED, PROC_REF(hurt_fish)) + + difficulty += comp.fish_source.calculate_difficulty(reward_path, rod, user, src) /datum/fishing_challenge/Destroy(force, ...) if(!completed) @@ -69,13 +86,29 @@ QDEL_NULL(fishing_line) if(lure) QDEL_NULL(lure) - . = ..() + user = null + used_rod = null + return ..() + +/datum/fishing_challenge/proc/send_alert(message) + var/turf/lure_turf = get_turf(lure) + lure_turf?.balloon_alert(user, message) + +/datum/fishing_challenge/proc/on_spot_gone(datum/source) + send_alert("fishing spot gone!") + interrupt(balloon_alert = FALSE) + +/datum/fishing_challenge/proc/interrupt_challenge(datum/source, reason) + if(reason) + send_alert(reason) + interrupt(balloon_alert = FALSE) /datum/fishing_challenge/proc/start(mob/living/user) /// Create fishing line visuals fishing_line = used_rod.create_fishing_line(lure, target_py = 5) // If fishing line breaks los / rod gets dropped / deleted RegisterSignal(fishing_line, COMSIG_FISHING_LINE_SNAPPED, PROC_REF(interrupt)) + RegisterSignal(used_rod, COMSIG_ITEM_ATTACK_SELF, PROC_REF(on_attack_self)) ADD_TRAIT(user, TRAIT_GONE_FISHING, REF(src)) user.add_mood_event("fishing", /datum/mood_event/fishing) RegisterSignal(user, COMSIG_MOB_CLICKON, PROC_REF(handle_click)) @@ -83,40 +116,53 @@ to_chat(user, span_notice("You start fishing...")) playsound(lure, 'sound/effects/splash.ogg', 100) -/datum/fishing_challenge/proc/handle_click() +/datum/fishing_challenge/proc/handle_click(mob/source, atom/target, modifiers) + SIGNAL_HANDLER + //You need to be holding the rod to use it. + if(!source.get_active_held_item(used_rod) || LAZYACCESS(modifiers, SHIFT_CLICK)) + return if(phase == WAIT_PHASE) //Reset wait - lure.balloon_alert(user, "miss!") + send_alert("miss!") start_baiting_phase() else if(phase == BITING_PHASE) - start_minigame_phase() + INVOKE_ASYNC(src, PROC_REF(start_minigame_phase)) return COMSIG_MOB_CANCEL_CLICKON -/datum/fishing_challenge/proc/check_distance() - SIGNAL_HANDLER - if(get_dist(user,lure) > max_distance) - interrupt() - /// Challenge interrupted by something external -/datum/fishing_challenge/proc/interrupt() +/datum/fishing_challenge/proc/interrupt(datum/source, balloon_alert = TRUE) SIGNAL_HANDLER if(!completed) + experience_multiplier *= 0.5 + if(balloon_alert) + send_alert(user.is_holding(used_rod) ? "line snapped" : "tool dropped") + complete(FALSE) + +/datum/fishing_challenge/proc/on_attack_self(obj/item/source, mob/user) + SIGNAL_HANDLER + INVOKE_ASYNC(src, PROC_REF(stop_fishing), source, user) + +/datum/fishing_challenge/proc/stop_fishing(obj/item/rod, mob/user) + if((phase != MINIGAME_PHASE || do_after(user, 3 SECONDS, rod)) && !QDELETED(src) && !completed) + experience_multiplier *= 0.5 + send_alert("stopped fishing") complete(FALSE) /datum/fishing_challenge/proc/complete(win = FALSE, perfect_win = FALSE) deltimer(next_phase_timer) completed = TRUE if(user) - UnregisterSignal(user, list(COMSIG_MOB_CLICKON, COMSIG_MOVABLE_MOVED)) REMOVE_TRAIT(user, TRAIT_GONE_FISHING, REF(src)) - if(used_rod) - UnregisterSignal(used_rod, COMSIG_ITEM_DROPPED) - if(phase == MINIGAME_PHASE) - used_rod.consume_bait() + if(start_time) + var/seconds_spent = (world.time - start_time)/10 + if(!(FISHING_MINIGAME_RULE_NO_EXP in special_effects)) + user.mind?.adjust_experience(/datum/skill/fishing, min(round(seconds_spent * FISHING_SKILL_EXP_PER_SECOND * experience_multiplier), FISHING_SKILL_EXP_CAP_PER_GAME)) + if(win && user.mind?.get_skill_level(/datum/skill/fishing) >= SKILL_LEVEL_LEGENDARY) + user.client?.give_award(/datum/award/achievement/skill/legendary_fisher, user) + if(used_rod && phase == MINIGAME_PHASE) + used_rod.consume_bait() if(win) if(reward_path != FISHING_DUD) playsound(lure, 'sound/effects/bigsplash.ogg', 100) - else - user.balloon_alert(user, "it got away") SEND_SIGNAL(src, COMSIG_FISHING_CHALLENGE_COMPLETED, user, win, perfect_win) qdel(src) @@ -134,19 +180,41 @@ phase = BITING_PHASE // Trashing animation playsound(lure, 'sound/effects/fish_splash.ogg', 100) - lure.balloon_alert(user, "!!!") + send_alert("!!!") animate(lure, pixel_y = 3, time = 5, loop = -1, flags = ANIMATION_RELATIVE) animate(pixel_y = -3, time = 5, flags = ANIMATION_RELATIVE) // Setup next phase var/wait_time = rand(3 SECONDS, 6 SECONDS) next_phase_timer = addtimer(CALLBACK(src, PROC_REF(start_baiting_phase)), wait_time, TIMER_STOPPABLE) +///The damage dealt per second to the fish when FISHING_MINIGAME_RULE_KILL is active. +#define FISH_DAMAGE_PER_SECOND 2 + /datum/fishing_challenge/proc/start_minigame_phase() phase = MINIGAME_PHASE deltimer(next_phase_timer) + if((FISHING_MINIGAME_RULE_KILL in special_effects) && ispath(reward_path,/obj/item/fish)) + var/obj/item/fish/fish = reward_path + var/wait_time = (initial(fish.health) / FISH_DAMAGE_PER_SECOND) SECONDS + addtimer(CALLBACK(src, PROC_REF(win_anyway)), wait_time) start_time = world.time + experience_multiplier += difficulty * FISHING_SKILL_DIFFIULTY_EXP_MULT ui_interact(user) +/datum/fishing_challenge/proc/win_anyway() + if(!completed) + //winning by timeout or idling around shouldn't give as much experience. + experience_multiplier *= 0.5 + complete(TRUE) + +/datum/fishing_challenge/proc/hurt_fish(datum/source, obj/item/fish/reward) + SIGNAL_HANDLER + if(istype(reward)) + var/damage = CEILING((world.time - start_time)/10 * FISH_DAMAGE_PER_SECOND, 1) + reward.adjust_health(reward.health - damage) + +#undef FISH_DAMAGE_PER_SECOND + /datum/fishing_challenge/ui_interact(mob/user, datum/tgui/ui) ui = SStgui.try_update_ui(user, src, ui) if(!ui) @@ -162,11 +230,12 @@ /datum/fishing_challenge/ui_close(mob/user) . = ..() if(!completed) + send_alert("stopped fishing") complete(FALSE) /datum/fishing_challenge/ui_static_data(mob/user) . = ..() - .["difficulty"] = max(1,min(difficulty,100)) + .["difficulty"] = clamp(difficulty, 1, 100) .["fish_ai"] = fish_ai .["special_effects"] = special_effects .["background_image"] = background @@ -176,7 +245,7 @@ /datum/fishing_challenge/ui_status(mob/user, datum/ui_state/state) return min( - get_dist(user, lure) > max_distance ? UI_CLOSE : UI_INTERACTIVE, + get_dist(user, lure) > 5 ? UI_CLOSE : UI_INTERACTIVE, ui_status_user_has_free_hands(user), ui_status_user_is_abled(user, lure), ) @@ -193,6 +262,7 @@ if("win") complete(win = TRUE, perfect_win = params["perfect"]) if("lose") + send_alert("it got away") complete(win = FALSE) /// The visual that appears over the fishing spot @@ -200,6 +270,15 @@ icon = 'icons/obj/fishing.dmi' icon_state = "lure_idle" +/obj/effect/fishing_lure/Initialize(mapload, atom/spot) + . = ..() + if(ismovable(spot)) // we want the lure and therefore the fishing line to stay connected with the fishing spot. + RegisterSignal(spot, COMSIG_MOVABLE_MOVED, PROC_REF(follow_movable)) + +/obj/effect/fishing_lure/proc/follow_movable(atom/movable/source) + set_glide_size(source.glide_size) + forceMove(source.loc) + #undef WAIT_PHASE #undef BITING_PHASE #undef MINIGAME_PHASE diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index d34c04ac118..04455485768 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -38,12 +38,17 @@ /// List of fishing line beams var/list/fishing_lines = list() + /// The default color for the reel overlay if no line is equipped. var/default_line_color = "gray" + ///The name of the icon state of the reel overlay + var/reel_overlay = "reel_overlay" + /obj/item/fishing_rod/Initialize(mapload) . = ..() register_context() register_item_context() + update_appearance() /obj/item/fishing_rod/add_context(atom/source, list/context, obj/item/held_item, mob/user) if(src == held_item) @@ -96,10 +101,7 @@ * * target_fish_source - The /datum/fish_source we're trying to fish in. */ /obj/item/fishing_rod/proc/reason_we_cant_fish(datum/fish_source/target_fish_source) - if(!hook) - return null - - return hook.reason_we_cant_fish(target_fish_source) + return hook?.reason_we_cant_fish(target_fish_source) /obj/item/fishing_rod/proc/consume_bait() @@ -201,23 +203,27 @@ reel(user) return . - /// If the line to whatever that is is clear and we're not already busy, try fishing in it - if(!casting && !currently_hooked_item && !proximity_flag && CheckToolReach(user, target, cast_range)) - /// Annoyingly pre attack is only called in melee - SEND_SIGNAL(target, COMSIG_PRE_FISHING) - casting = TRUE - var/obj/projectile/fishing_cast/cast_projectile = new(get_turf(src)) - cast_projectile.range = cast_range - cast_projectile.owner = src - cast_projectile.original = target - cast_projectile.fired_from = src - cast_projectile.firer = user - cast_projectile.impacted = list(user = TRUE) - cast_projectile.preparePixelProjectile(target, user) - cast_projectile.fire() + cast_line(target, user, proximity_flag) return . +///Called by afterattack(). If the line to whatever that is is clear and we're not already busy, try fishing in it +/obj/item/fishing_rod/proc/cast_line(atom/target, mob/user, proximity_flag) + if(casting || currently_hooked_item || proximity_flag || !CheckToolReach(user, target, cast_range)) + return + /// Annoyingly pre attack is only called in melee + SEND_SIGNAL(target, COMSIG_PRE_FISHING) + casting = TRUE + var/obj/projectile/fishing_cast/cast_projectile = new(get_turf(src)) + cast_projectile.range = cast_range + cast_projectile.owner = src + cast_projectile.original = target + cast_projectile.fired_from = src + cast_projectile.firer = user + cast_projectile.impacted = list(user = TRUE) + cast_projectile.preparePixelProjectile(target, user) + cast_projectile.fire() + /// Called by hook projectile when hitting things /obj/item/fishing_rod/proc/hook_hit(atom/atom_hit_by_hook_projectile) var/mob/user = loc @@ -237,11 +243,15 @@ /obj/item/fishing_rod/update_overlays() . = ..() + . += get_fishing_overlays() + +/obj/item/fishing_rod/proc/get_fishing_overlays() + . = list() var/line_color = line?.line_color || default_line_color /// Line part by the rod, always visible - var/mutable_appearance/reel_overlay = mutable_appearance(icon, "reel_overlay") - reel_overlay.color = line_color; - . += reel_overlay + var/mutable_appearance/reel_appearance = mutable_appearance(icon, reel_overlay) + reel_appearance.color = line_color; + . += reel_appearance // Line & hook is also visible when only bait is equipped but it uses default appearances then if(hook || bait) @@ -260,6 +270,10 @@ /obj/item/fishing_rod/worn_overlays(mutable_appearance/standing, isinhands, icon_file) . = ..() + . += get_fishing_worn_overlays(standing, isinhands, icon_file) + +/obj/item/fishing_rod/proc/get_fishing_worn_overlays(mutable_appearance/standing, isinhands, icon_file) + . = list() var/line_color = line?.line_color || default_line_color var/mutable_appearance/reel_overlay = mutable_appearance(icon_file, "reel_overlay") reel_overlay.appearance_flags |= RESET_COLOR @@ -401,6 +415,8 @@ name = "bone fishing rod" desc = "A humble rod, made with whatever happened to be on hand." icon_state = "fishing_rod_bone" + reel_overlay = "reel_bone" + default_line_color = "red" /datum/crafting_recipe/bone_rod name = "Bone Fishing Rod" @@ -411,19 +427,84 @@ /obj/item/stack/sheet/bone = 2) category = CAT_TOOLS -/obj/item/fishing_rod/master +/obj/item/fishing_rod/telescopic + icon_state = "fishing_rod_telescopic" + desc = "A lightweight, ergonomic, easy to store telescopic fishing rod. " + inhand_icon_state = null + force = 0 + w_class = WEIGHT_CLASS_NORMAL + ui_description = "A collapsible fishing rod that can fit within a backpack." + reel_overlay = "reel_telescopic" + ///Whether the rod is exteded or not. Tied to the transforming element. + var/active = FALSE + ///The force of the item when extended. + var/active_force = 8 + +/obj/item/fishing_rod/telescopic/Initialize(mapload) + . = ..() + AddComponent(/datum/component/transforming, force_on = 8, hitsound_on = hitsound, w_class_on = WEIGHT_CLASS_HUGE, clumsy_check = FALSE) + RegisterSignal(src, COMSIG_TRANSFORMING_PRE_TRANSFORM, PROC_REF(pre_transform)) + RegisterSignal(src, COMSIG_TRANSFORMING_ON_TRANSFORM, PROC_REF(on_transform)) + +/obj/item/fishing_rod/telescopic/reason_we_cant_fish(datum/fish_source/target_fish_source) + if(!active) + return "You need to extend your fishing rod before you can cast the line." + return ..() + +/obj/item/fishing_rod/telescopic/cast_line(atom/target, mob/user, proximity_flag) + if(!active) + to_chat(user, "You need to extend your fishing rod before you can cast the line.") + return + return ..() + +/obj/item/fishing_rod/telescopic/get_fishing_overlays() + if(!active) + return list() + return ..() + +/obj/item/fishing_rod/telescopic/get_fishing_worn_overlays(mutable_appearance/standing, isinhands, icon_file) + if(!active) + return list() + return ..() + +///Stops the fishing rod from being collapsed while fishing. +/obj/item/fishing_rod/telescopic/proc/pre_transform(obj/item/source, mob/user, active) + SIGNAL_HANDLER + if(active) + return + //the fishing minigame uses the attack_self signal to let the user end it early without having to drop the rod. + if(HAS_TRAIT(user, TRAIT_GONE_FISHING)) + return COMPONENT_BLOCK_TRANSFORM + +///Gives feedback to the user, makes it show up inhand, toggles whether it can be used for fishing. +/obj/item/fishing_rod/telescopic/proc/on_transform(obj/item/source, mob/user, active) + SIGNAL_HANDLER + + src.active = active + inhand_icon_state = active ? "rod" : null // When inactive, there is no inhand icon_state. + if(user) + balloon_alert(user, active ? "extended" : "collapsed") + playsound(src, 'sound/weapons/batonextend.ogg', 50, TRUE) + update_appearance(UPDATE_OVERLAYS) + if(currently_hooked_item) + clear_hooked_item() + return COMPONENT_NO_DEFAULT_MESSAGE + +/obj/item/fishing_rod/telescopic/master name = "master fishing rod" desc = "The mythical rod of a lost fisher king. Said to be imbued with un-paralleled fishing power. There's writing on the back of the pole. \"中国航天制造\"" difficulty_modifier = -10 ui_description = "This rods makes fishing easy even for an absolute beginner." icon_state = "fishing_rod_master" - + reel_overlay = "reel_master" + active_force = 13 //It's that sturdy /obj/item/fishing_rod/tech name = "advanced fishing rod" desc = "An embedded universal constructor along with micro-fusion generator makes this marvel of technology never run out of bait. Interstellar treaties prevent using it outside of recreational fishing. And you can fish with this. " ui_description = "This rod has an infinite supply of synthetic bait." icon_state = "fishing_rod_science" + reel_overlay = "reel_science" /obj/item/fishing_rod/tech/Initialize(mapload) . = ..() diff --git a/code/modules/fishing/fishing_traits.dm b/code/modules/fishing/fishing_traits.dm deleted file mode 100644 index 3a58ae5157c..00000000000 --- a/code/modules/fishing/fishing_traits.dm +++ /dev/null @@ -1,82 +0,0 @@ -/datum/fishing_trait - /// Description of the trait in the fishing catalog - var/catalog_description - -/// Difficulty modifier from this mod, needs to return a list with two values -/datum/fishing_trait/proc/difficulty_mod(obj/item/fishing_rod/rod, mob/fisherman) - SHOULD_CALL_PARENT(TRUE) //Technically it doesn't but this makes it saner without custom unit test - return list(ADDITIVE_FISHING_MOD = 0, MULTIPLICATIVE_FISHING_MOD = 1) - -/// Catch weight table modifier from this mod, needs to return a list with two values -/datum/fishing_trait/proc/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) - SHOULD_CALL_PARENT(TRUE) - return list(ADDITIVE_FISHING_MOD = 0, MULTIPLICATIVE_FISHING_MOD = 1) - -/// Returns special minigame rules applied by this trait -/datum/fishing_trait/proc/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman) - return list() - -/datum/fishing_trait/wary - catalog_description = "This fish will avoid visible fish lines, cloaked line recommended." - -/datum/fishing_trait/wary/difficulty_mod(obj/item/fishing_rod/rod, mob/fisherman) - . = ..() - // Wary fish require transparent line or they're harder - if(!rod.line || !(rod.line.fishing_line_traits & FISHING_LINE_CLOAKED)) - .[ADDITIVE_FISHING_MOD] = -FISH_TRAIT_MINOR_DIFFICULTY_BOOST - -/datum/fishing_trait/shiny_lover - catalog_description = "This fish loves shiny things, shiny lure recommended." - -/datum/fishing_trait/shiny_lover/difficulty_mod(obj/item/fishing_rod/rod, mob/fisherman) - . = ..() - // These fish are easier to catch with shiny lure - if(rod.hook && rod.hook.fishing_hook_traits & FISHING_HOOK_SHINY) - .[ADDITIVE_FISHING_MOD] = FISH_TRAIT_MINOR_DIFFICULTY_BOOST - -/datum/fishing_trait/picky_eater - catalog_description = "This fish is very picky and will ignore low quality bait." - -/datum/fishing_trait/picky_eater/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) - . = ..() - if(!rod.bait || !(HAS_TRAIT(rod.bait, GOOD_QUALITY_BAIT_TRAIT) || HAS_TRAIT(rod.bait, GREAT_QUALITY_BAIT_TRAIT))) - .[MULTIPLICATIVE_FISHING_MOD] = 0 - - -/datum/fishing_trait/nocturnal - catalog_description = "This fish avoids bright lights, fishing in darkness recommended." - -/datum/fishing_trait/nocturnal/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) - . = ..() - var/turf/T = get_turf(fisherman) - var/light_amount = T.get_lumcount() - if(light_amount < SHADOW_SPECIES_LIGHT_THRESHOLD) - .[MULTIPLICATIVE_FISHING_MOD] = 0 - - -/datum/fishing_trait/heavy - catalog_description = "This fish tends to stay near the waterbed."; - -/datum/fishing_trait/heavy/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman) - return list(FISHING_MINIGAME_RULE_HEAVY_FISH) - - -/datum/fishing_trait/carnivore - catalog_description = "This fish can only be baited with meat." - -/datum/fishing_trait/carnivore/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) - . = ..() - .[MULTIPLICATIVE_FISHING_MOD] = 0 - if(rod.bait && istype(rod.bait, /obj/item/food)) - var/obj/item/food/food_bait = rod.bait - if(food_bait.foodtypes & MEAT) - .[MULTIPLICATIVE_FISHING_MOD] = 1 - -/datum/fishing_trait/vegan - catalog_description = "This fish can only be baited with fresh produce." - -/datum/fishing_trait/vegan/catch_weight_mod(obj/item/fishing_rod/rod, mob/fisherman) - . = ..() - .[MULTIPLICATIVE_FISHING_MOD] = 0 - if(rod.bait && istype(rod.bait, /obj/item/food/grown)) - .[MULTIPLICATIVE_FISHING_MOD] = 1 diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm index 4f153eb9ff4..057f4f12280 100644 --- a/code/modules/fishing/sources/_fish_source.dm +++ b/code/modules/fishing/sources/_fish_source.dm @@ -11,9 +11,15 @@ GLOBAL_LIST_INIT(preset_fish_sources,init_fishing_configurations()) var/datum/fish_source/lavaland/lava_preset = new .[FISHING_SPOT_PRESET_LAVALAND_LAVA] = lava_preset + var/datum/fish_source/lavaland/icemoon/plasma_preset = new + .[FISHING_SPOT_PRESET_ICEMOON_PLASMA] = plasma_preset + var/datum/fish_source/chasm/chasm_preset = new .[FISHING_SPOT_PRESET_CHASM] = chasm_preset + var/datum/fish_source/toilet/toilet_preset = new + .[FISHING_SPOT_PRESET_TOILET] = toilet_preset + /// Where the fish actually come from - every fishing spot has one assigned but multiple fishing holes can share single source, ie single shared one for ocean/lavaland river /datum/fish_source /// Fish catch weight table - these are relative weights @@ -35,7 +41,7 @@ GLOBAL_LIST_INIT(preset_fish_sources,init_fishing_configurations()) /// DIFFICULTY = (SPOT_BASE_VALUE + FISH_MODIFIER + ROD_MODIFIER + FAV/DISLIKED_BAIT_MODIFIER + TRAITS_ADDITIVE) * TRAITS_MULTIPLICATIVE , For non-fish it's just SPOT_BASE_VALUE -/datum/fish_source/proc/calculate_difficulty(result, obj/item/fishing_rod/rod, mob/fisherman) +/datum/fish_source/proc/calculate_difficulty(result, obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/challenge) . = fishing_difficulty if(!ispath(result,/obj/item/fish)) @@ -55,21 +61,22 @@ GLOBAL_LIST_INIT(preset_fish_sources,init_fishing_configurations()) for(var/bait_identifer in fav_bait) if(is_matching_bait(bait, bait_identifer)) . += FAV_BAIT_DIFFICULTY_MOD - break //Disliked bait makes it harder var/list/disliked_bait = fish_list_properties[caught_fish][NAMEOF(caught_fish, disliked_bait)] for(var/bait_identifer in disliked_bait) if(is_matching_bait(bait, bait_identifer)) . += DISLIKED_BAIT_DIFFICULTY_MOD - break + + if(!challenge || !(FISHING_MINIGAME_RULE_NO_EXP in challenge.special_effects)) + . += fisherman.mind?.get_skill_modifier(/datum/skill/fishing, SKILL_VALUE_MODIFIER) // Matching/not matching fish traits and equipment - var/list/fish_traits = fish_list_properties[caught_fish][NAMEOF(caught_fish, fishing_traits)] + var/list/fish_traits = fish_list_properties[caught_fish][NAMEOF(caught_fish, fish_traits)] var/additive_mod = 0 var/multiplicative_mod = 1 for(var/fish_trait in fish_traits) - var/datum/fishing_trait/trait = new fish_trait + var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait] var/list/mod = trait.difficulty_mod(rod, fisherman) additive_mod += mod[ADDITIVE_FISHING_MOD] multiplicative_mod *= mod[MULTIPLICATIVE_FISHING_MOD] @@ -81,29 +88,57 @@ GLOBAL_LIST_INIT(preset_fish_sources,init_fishing_configurations()) /datum/fish_source/proc/roll_reward(obj/item/fishing_rod/rod, mob/fisherman) return pick_weight(get_modified_fish_table(rod,fisherman)) +/** + * Used to register signals or add traits and the such right after conditions have been cleared + * and before the minigame starts. + */ +/datum/fish_source/proc/pre_challenge_started(obj/item/fishing_rod/rod, mob/user) + return + +///Proc called when the challenge is interrupted within the fish source code. +/datum/fish_source/proc/interrupt_challenge(reason) + SEND_SIGNAL(src, COMSIG_FISHING_SOURCE_INTERRUPT_CHALLENGE, reason) + +/** + * Proc called when the COMSIG_FISHING_CHALLENGE_COMPLETED signal is sent. + * Check if we've succeeded. If so, write into memory and dispense the reward. + */ +/datum/fish_source/proc/on_challenge_completed(datum/fishing_challenge/source, mob/user, success, perfect) + SIGNAL_HANDLER + SHOULD_CALL_PARENT(TRUE) + if(!success) + return + var/obj/item/fish/caught = source.reward_path + user.add_mob_memory(/datum/memory/caught_fish, protagonist = user, deuteragonist = initial(caught.name)) + var/turf/fishing_spot = get_turf(source.lure) + dispense_reward(source.reward_path, user, fishing_spot) + /// Gives out the reward if possible -/datum/fish_source/proc/dispense_reward(reward_path, mob/fisherman) +/datum/fish_source/proc/dispense_reward(reward_path, mob/fisherman, fishing_spot) if((reward_path in fish_counts)) // This is limited count result if(fish_counts[reward_path] > 0) fish_counts[reward_path] -= 1 else reward_path = FISHING_DUD //Ran out of these since rolling (multiple fishermen on same source most likely) + var/atom/movable/reward if(ispath(reward_path)) + reward = new reward_path(get_turf(fisherman)) if(ispath(reward_path,/obj/item)) - var/obj/item/reward = new reward_path(get_turf(fisherman)) if(ispath(reward_path,/obj/item/fish)) var/obj/item/fish/caught_fish = reward - caught_fish.randomize_weight_and_size() + caught_fish.randomize_size_and_weight() //fish caught signal if needed goes here and/or fishing achievements //Try to put it in hand - fisherman.put_in_hands(reward) + INVOKE_ASYNC(fisherman, TYPE_PROC_REF(/mob, put_in_hands), reward) fisherman.balloon_alert(fisherman, "caught [reward]!") else //If someone adds fishing out carp/chests/singularities or whatever just plop it down on the fisher's turf fisherman.balloon_alert(fisherman, "caught something!") - new reward_path(get_turf(fisherman)) else if (reward_path == FISHING_DUD) //baloon alert instead fisherman.balloon_alert(fisherman,pick(duds)) + SEND_SIGNAL(fisherman, COMSIG_MOB_FISHING_REWARD_DISPENSED, reward) + if(reward) + SEND_SIGNAL(reward, COMSIG_ATOM_FISHING_REWARD, fishing_spot) /// Cached fish list properties so we don't have to initalize fish every time, init deffered GLOBAL_LIST(fishing_property_cache) @@ -113,11 +148,11 @@ GLOBAL_LIST(fishing_property_cache) if(GLOB.fishing_property_cache == null) var/list/fish_property_table = list() for(var/fish_type in subtypesof(/obj/item/fish)) - var/obj/item/fish/fish = new fish_type(null) + var/obj/item/fish/fish = new fish_type(null, FALSE) fish_property_table[fish_type] = list() fish_property_table[fish_type][NAMEOF(fish, favorite_bait)] = fish.favorite_bait.Copy() fish_property_table[fish_type][NAMEOF(fish, disliked_bait)] = fish.disliked_bait.Copy() - fish_property_table[fish_type][NAMEOF(fish, fishing_traits)] = fish.fishing_traits.Copy() + fish_property_table[fish_type][NAMEOF(fish, fish_traits)] = fish.fish_traits.Copy() QDEL_NULL(fish) GLOB.fishing_property_cache = fish_property_table return GLOB.fishing_property_cache @@ -132,6 +167,8 @@ GLOBAL_LIST(fishing_property_cache) if("Foodtype") var/obj/item/food/food_bait = bait return istype(food_bait) && food_bait.foodtypes & special_identifier["Value"] + if("Reagent") + return bait.reagents?.has_reagent(special_identifier["Value"], special_identifier["Amount"], check_subtypes = TRUE) else CRASH("Unknown bait identifier in fish favourite/disliked list") else @@ -173,20 +210,18 @@ GLOBAL_LIST(fishing_property_cache) for(var/bait_identifer in fav_bait) if(is_matching_bait(bait, bait_identifer)) final_table[result] *= 2 - break // could compound possibly //Bait matching dislikes var/list/disliked_bait = fish_list_properties[result][NAMEOF(caught_fish, disliked_bait)] for(var/bait_identifer in disliked_bait) if(is_matching_bait(bait, bait_identifer)) final_table[result] *= 0.5 - break // same question as above - // Apply fishing trait modifiers - var/list/fish_traits = fish_list_properties[caught_fish][NAMEOF(caught_fish, fishing_traits)] + // Apply fish trait modifiers + var/list/fish_traits = fish_list_properties[caught_fish][NAMEOF(caught_fish, fish_traits)] var/additive_mod = 0 var/multiplicative_mod = 1 for(var/fish_trait in fish_traits) - var/datum/fishing_trait/trait = new fish_trait + var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait] var/list/mod = trait.catch_weight_mod(rod, fisherman) additive_mod += mod[ADDITIVE_FISHING_MOD] multiplicative_mod *= mod[MULTIPLICATIVE_FISHING_MOD] diff --git a/code/modules/fishing/sources/source_types.dm b/code/modules/fishing/sources/source_types.dm index d4ff7cd9856..7d82a5d4b46 100644 --- a/code/modules/fishing/sources/source_types.dm +++ b/code/modules/fishing/sources/source_types.dm @@ -8,6 +8,9 @@ /obj/item/fish/greenchromis = 15, /obj/item/fish/lanternfish = 5 ) + fish_counts = list( + /obj/item/fish/clownfish/lube = 2, + ) fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5 /datum/fish_source/ocean/beach @@ -32,7 +35,6 @@ fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5 - /datum/fish_source/chasm/roll_reward(obj/item/fishing_rod/rod, mob/fisherman) var/rolled_reward = ..() @@ -41,7 +43,6 @@ return rod.hook.chasm_detritus_type - /datum/fish_source/lavaland catalog_description = "Lava vents" background = "fishing_background_lavaland" @@ -65,11 +66,86 @@ if(!rod.line || !(rod.line.fishing_line_traits & FISHING_LINE_REINFORCED)) return "You'll need reinforced fishing line to fish in there" +/datum/fish_source/lavaland/icemoon + catalog_description = "Liquid plasma vents" + fish_table = list( + FISHING_DUD = 5, + /obj/item/fish/chasm_crab/ice = 15, + /mob/living/simple_animal/hostile/asteroid/lobstrosity = 1, + /obj/effect/decal/remains/plasma = 1, + /obj/item/stack/ore/plasma = 3, + /obj/item/coin/plasma = 3, + + ) + fish_counts = list( + /obj/item/stack/sheet/mineral/adamantine = 3, + /obj/item/stack/sheet/mineral/mythril = 2, + ) /datum/fish_source/moisture_trap - catalog_description = "moisture trap basins" + catalog_description = "Moisture trap basins" fish_table = list( FISHING_DUD = 20, - /obj/item/fish/ratfish = 10 + /obj/item/fish/ratfish = 10, + /obj/item/fish/slimefish = 4 ) fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 10 + +/datum/fish_source/toilet + catalog_description = "Station toilets" + duds = list("ewww... nothing", "it was nothing", "it was toilet paper", "it was flushed away", "the hook is empty", "where's the damn money?!") + fish_table = list( + FISHING_DUD = 18, + /obj/item/fish/sludgefish = 18, + /obj/item/fish/slimefish = 2, + ) + fish_counts = list( + /obj/item/storage/wallet/money = 2, + ) + fishing_difficulty = FISHING_DEFAULT_DIFFICULTY - 5 //For beginners + +/datum/fish_source/holographic + catalog_description = "Holographic water" + fish_table = list( + /obj/item/fish/holo = 2, + /obj/item/fish/holo/crab = 2, + /obj/item/fish/holo/puffer = 2, + /obj/item/fish/holo/angel = 2, + /obj/item/fish/holo/clown = 2, + ) + fish_counts = list( + /obj/item/fish/holo/checkered = 1, + /obj/item/fish/holo/halffish = 1, + ) + fishing_difficulty = FISHING_DEFAULT_DIFFICULTY - 5 + +/datum/fish_source/holographic/reason_we_cant_fish(obj/item/fishing_rod/rod, mob/fisherman) + . = ..() + if(!istype(get_area(fisherman), /area/station/holodeck)) + return "You need to be inside the Holodeck to catch holographic fish." + +/datum/fish_source/holographic/pre_challenge_started(obj/item/fishing_rod/rod, mob/user) + RegisterSignal(user, COMSIG_MOVABLE_MOVED, PROC_REF(check_area)) + +/datum/fish_source/holographic/proc/check_area(mob/user) + SIGNAL_HANDLER + if(!istype(get_area(user), /area/station/holodeck)) + interrupt_challenge("exited holodeck") + +/datum/fish_source/holographic/on_challenge_completed(datum/fishing_challenge/source, mob/user, success, perfect) + . = ..() + UnregisterSignal(user, COMSIG_MOVABLE_MOVED) + +/datum/fish_source/oil_well + catalog_description = "Oil wells" + fish_table = list( + FISHING_DUD = 5, + /obj/item/fish/boned = 10, + /obj/item/stack/sheet/bone = 2, + ) + fish_counts = list( + /obj/item/clothing/gloves/bracer = 1, + /obj/effect/decal/remains/human = 1, + /obj/item/fish/mastodon = 1, + ) + fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 15 diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index cf7778bcdf7..085225e34f3 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -269,42 +269,54 @@ GLOBAL_LIST_INIT(typecache_holodeck_linked_floorcheck_ok, typecacheof(list(/turf if(QDELETED(holo_atom)) spawned -= holo_atom continue - - RegisterSignal(holo_atom, COMSIG_QDELETING, PROC_REF(remove_from_holo_lists)) - holo_atom.flags_1 |= HOLOGRAM_1 - - if(isholoeffect(holo_atom))//activates holo effects and transfers them from the spawned list into the effects list - var/obj/effect/holodeck_effect/holo_effect = holo_atom - effects += holo_effect - spawned -= holo_effect - var/atom/holo_effect_product = holo_effect.activate(src)//change name - if(istype(holo_effect_product)) - spawned += holo_effect_product // we want mobs or objects spawned via holoeffects to be tracked as objects - RegisterSignal(holo_effect_product, COMSIG_QDELETING, PROC_REF(remove_from_holo_lists)) - if(islist(holo_effect_product)) - for(var/atom/atom_product as anything in holo_effect_product) - RegisterSignal(atom_product, COMSIG_QDELETING, PROC_REF(remove_from_holo_lists)) - continue - - if(isobj(holo_atom)) - var/obj/holo_object = holo_atom - holo_object.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - - if(isstructure(holo_object)) - holo_object.flags_1 |= NODECONSTRUCT_1 - continue - - if(ismachinery(holo_object)) - var/obj/machinery/holo_machine = holo_object - holo_machine.flags_1 |= NODECONSTRUCT_1 - holo_machine.power_change() - - if(istype(holo_machine, /obj/machinery/button)) - var/obj/machinery/button/holo_button = holo_machine - holo_button.setup_device() - + finalize_spawned(holo_atom) spawning_simulation = FALSE +/obj/machinery/computer/holodeck/proc/finalize_spawned(atom/holo_atom) + RegisterSignal(holo_atom, COMSIG_QDELETING, PROC_REF(remove_from_holo_lists)) + holo_atom.flags_1 |= HOLOGRAM_1 + + if(isholoeffect(holo_atom))//activates holo effects and transfers them from the spawned list into the effects list + var/obj/effect/holodeck_effect/holo_effect = holo_atom + effects += holo_effect + spawned -= holo_effect + var/atom/holo_effect_product = holo_effect.activate(src)//change name + if(istype(holo_effect_product)) + spawned += holo_effect_product // we want mobs or objects spawned via holoeffects to be tracked as objects + RegisterSignal(holo_effect_product, COMSIG_QDELETING, PROC_REF(remove_from_holo_lists)) + if(islist(holo_effect_product)) + for(var/atom/atom_product as anything in holo_effect_product) + RegisterSignal(atom_product, COMSIG_QDELETING, PROC_REF(remove_from_holo_lists)) + return + + if(isobj(holo_atom)) + var/obj/holo_object = holo_atom + holo_object.resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + + if(isstructure(holo_object)) + holo_object.flags_1 |= NODECONSTRUCT_1 + return + + if(ismachinery(holo_object)) + var/obj/machinery/holo_machine = holo_object + holo_machine.flags_1 |= NODECONSTRUCT_1 + holo_machine.power_change() + + if(istype(holo_machine, /obj/machinery/button)) + var/obj/machinery/button/holo_button = holo_machine + holo_button.setup_device() + +/** + * A separate proc for objects that weren't loaded by the template nor spawned by holo effects + * yet need to be added to the list of spawned objects. (e.g. holographic fishes) + */ +/obj/machinery/computer/holodeck/proc/add_to_spawned(atom/holo_atom) + spawned |= holo_atom + if(!(obj_flags & EMAGGED) && isitem(holo_atom)) + var/obj/item/to_be_nerfed = holo_atom + to_be_nerfed.damtype = STAMINA + finalize_spawned(holo_atom) + ///this qdels holoitems that should no longer exist for whatever reason /obj/machinery/computer/holodeck/proc/derez(atom/movable/holo_atom, silent = TRUE, forced = FALSE) spawned -= holo_atom diff --git a/code/modules/holodeck/turfs.dm b/code/modules/holodeck/turfs.dm index 2f0b415d075..28482873aeb 100644 --- a/code/modules/holodeck/turfs.dm +++ b/code/modules/holodeck/turfs.dm @@ -91,6 +91,10 @@ icon_state = "water" bullet_sizzle = TRUE +/turf/open/floor/holofloor/beach/water/Initialize(mapload) + . = ..() + AddComponent(/datum/component/fishing_spot, /datum/fish_source/holographic) + /turf/open/floor/holofloor/asteroid gender = PLURAL name = "asteroid sand" diff --git a/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm index 435b863868f..80b81d988cb 100644 --- a/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm +++ b/code/modules/mapfluff/ruins/lavalandruin_code/elephantgraveyard.dm @@ -90,6 +90,9 @@ .=..() create_reagents(20) reagents.add_reagent(dispensedreagent, 20) + //I'm pretty much aware that, because how oil wells and sinks work, attackby() won't work unless in combat mode. + //Thankfully, the user can cast the line from a distance. + AddComponent(/datum/component/fishing_spot, /datum/fish_source/oil_well) /obj/structure/sink/oil_well/attack_hand(mob/user, list/modifiers) flick("puddle-oil-splash",src) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 38a889f6418..f772c4756cf 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -163,15 +163,16 @@ I.forceMove(src) held_items[hand_index] = I SET_PLANE_EXPLICIT(I, ABOVE_HUD_PLANE, src) - I.equipped(src, ITEM_SLOT_HANDS) - if(QDELETED(I)) // this is here because some ABSTRACT items like slappers and circle hands could be moved from hand to hand then delete, which meant you'd have a null in your hand until you cleared it (say, by dropping it) - held_items[hand_index] = null - return FALSE if(I.pulledby) I.pulledby.stop_pulling() + if(!I.on_equipped(src, ITEM_SLOT_HANDS)) + return FALSE update_held_items() I.pixel_x = I.base_pixel_x I.pixel_y = I.base_pixel_y + if(QDELETED(I)) // this is here because some ABSTRACT items like slappers and circle hands could be moved from hand to hand then delete, which meant you'd have a null in your hand until you cleared it (say, by dropping it) + held_items[hand_index] = null + return FALSE return hand_index //Puts the item into the first available left hand if possible and calls all necessary triggers/updates. returns 1 on success. diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 93e27cc869f..fc96815045d 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -130,7 +130,7 @@ /// This proc is called after an item has been successfully handled and equipped to a slot. /mob/living/carbon/proc/has_equipped(obj/item/item, slot, initial = FALSE) - return item.equipped(src, slot, initial) + return item.on_equipped(src, slot, initial) /mob/living/carbon/doUnEquip(obj/item/I, force, newloc, no_move, invdrop = TRUE, silent = FALSE) . = ..() //Sets the default return value to what the parent returns. diff --git a/code/modules/mob/living/silicon/robot/inventory.dm b/code/modules/mob/living/silicon/robot/inventory.dm index 1d55351b02f..7df2e7d3390 100644 --- a/code/modules/mob/living/silicon/robot/inventory.dm +++ b/code/modules/mob/living/silicon/robot/inventory.dm @@ -64,7 +64,6 @@ item_module.screen_loc = inv3.screen_loc held_items[module_num] = item_module - item_module.equipped(src, ITEM_SLOT_HANDS) item_module.mouse_opacity = initial(item_module.mouse_opacity) SET_PLANE_EXPLICIT(item_module, ABOVE_HUD_PLANE, src) item_module.forceMove(src) @@ -78,6 +77,7 @@ if(storage_was_closed) hud_used.toggle_show_robot_modules() + item_module.on_equipped(src, ITEM_SLOT_HANDS) return TRUE /** diff --git a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm index c8d82f69957..9c620b8a089 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/inventory.dm @@ -80,7 +80,7 @@ return //Call back for item being equipped to drone - equipping.equipped(src, slot) + equipping.on_equipped(src, slot) /mob/living/simple_animal/drone/getBackSlot() return ITEM_SLOT_DEX_STORAGE diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index c26ba8fc27d..995d9f432c1 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -450,8 +450,8 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians equipping.screen_loc = null // will get moved if inventory is visible equipping.forceMove(src) - equipping.equipped(src, slot) SET_PLANE_EXPLICIT(equipping, ABOVE_HUD_PLANE, src) + equipping.on_equipped(src, slot) /mob/living/simple_animal/hostile/guardian/proc/apply_overlay(cache_index) if((. = guardian_overlays[cache_index])) diff --git a/code/modules/reagents/chemistry/holder.dm b/code/modules/reagents/chemistry/holder.dm index a0e8d240452..f9b5a2b18de 100644 --- a/code/modules/reagents/chemistry/holder.dm +++ b/code/modules/reagents/chemistry/holder.dm @@ -449,20 +449,27 @@ * Reagent takes a PATH to a reagent. * Amount checks for having a specific amount of that chemical. * Needs matabolizing takes into consideration if the chemical is matabolizing when it's checked. + * Check subtypes controls whether it should it should also include subtypes: ispath(type, reagent) versus type == reagent. */ -/datum/reagents/proc/has_reagent(reagent, amount = -1, needs_metabolizing = FALSE) +/datum/reagents/proc/has_reagent(reagent, amount = -1, needs_metabolizing = FALSE, check_subtypes = FALSE) var/list/cached_reagents = reagent_list for(var/datum/reagent/holder_reagent as anything in cached_reagents) - if (holder_reagent.type == reagent) + if (check_subtypes ? ispath(holder_reagent.type, reagent) : holder_reagent.type == reagent) if(!amount) if(needs_metabolizing && !holder_reagent.metabolizing) + if(check_subtypes) + continue return FALSE return holder_reagent else if(round(holder_reagent.volume, CHEMICAL_QUANTISATION_LEVEL) >= amount) if(needs_metabolizing && !holder_reagent.metabolizing) + if(check_subtypes) + continue return FALSE return holder_reagent + else if(!check_subtypes) + return FALSE return FALSE /** diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index f7fc8dcf83a..fcc3c365b50 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -1264,3 +1264,106 @@ /datum/reagent/toxin/viperspider/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) affected_mob.adjust_hallucinations(10 SECONDS * REM * seconds_per_tick) return ..() + +/datum/reagent/toxin/tetrodotoxin + name = "Tetrodotoxin" + description = "A colorless, oderless, tasteless neurotoxin usually carried by livers of animals of the Tetraodontiformes order." + silent_toxin = TRUE + reagent_state = SOLID + color = "#EEEEEE" + metabolization_rate = 0.1 * REAGENTS_METABOLISM + toxpwr = 0 + taste_mult = 0 + chemical_flags = REAGENT_NO_RANDOM_RECIPE + var/list/traits_not_applied = list( + TRAIT_PARALYSIS_L_ARM = BODY_ZONE_L_ARM, + TRAIT_PARALYSIS_R_ARM = BODY_ZONE_R_ARM, + TRAIT_PARALYSIS_L_LEG = BODY_ZONE_L_LEG, + TRAIT_PARALYSIS_R_LEG = BODY_ZONE_R_LEG, + ) + +/datum/reagent/toxin/tetrodotoxin/on_mob_life(mob/living/carbon/affected_mob, seconds_per_tick, times_fired) + //be ready for a cocktail of symptoms, including: + //numbness, nausea, vomit, breath loss, weakness, paralysis and nerve damage/impairment and eventually a heart attack if enough time passes. + switch(current_cycle) + if(6 to 12) + if(SPT_PROB(20, seconds_per_tick)) + affected_mob.set_jitter_if_lower(rand(2 SECONDS, 3 SECONDS) * REM * seconds_per_tick) + if(SPT_PROB(5, seconds_per_tick)) + var/obj/item/organ/internal/tongue/tongue = affected_mob.get_organ_slot(ORGAN_SLOT_TONGUE) + if(tongue) + to_chat(affected_mob, span_warning("your [tongue.name] feels numb...")) + affected_mob.set_slurring_if_lower(5 SECONDS * REM * seconds_per_tick) + affected_mob.adjust_disgust(3.5 * REM * seconds_per_tick) + if(12 to 20) + silent_toxin = FALSE + toxpwr = 0.5 + affected_mob.adjustStaminaLoss(2.5 * REM * seconds_per_tick, 0) + if(SPT_PROB(20, seconds_per_tick)) + affected_mob.losebreath += 1 * REM * seconds_per_tick + if(SPT_PROB(40, seconds_per_tick)) + affected_mob.set_jitter_if_lower(rand(2 SECONDS, 3 SECONDS) * REM * seconds_per_tick) + affected_mob.adjust_disgust(3 * REM * seconds_per_tick) + affected_mob.set_slurring_if_lower(1 SECONDS * REM * seconds_per_tick) + affected_mob.adjustStaminaLoss(2 * REM * seconds_per_tick, 0) + if(SPT_PROB(4, seconds_per_tick)) + paralyze_limb(affected_mob) + if(SPT_PROB(10, seconds_per_tick)) + affected_mob.adjust_confusion(rand(6 SECONDS, 8 SECONDS)) + if(20 to 28) + toxpwr = 1 + affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.5) + if(SPT_PROB(40, seconds_per_tick)) + affected_mob.losebreath += 2 * REM * seconds_per_tick + affected_mob.adjust_disgust(3 * REM * seconds_per_tick) + affected_mob.set_slurring_if_lower(3 SECONDS * REM * seconds_per_tick) + if(SPT_PROB(5, seconds_per_tick)) + to_chat(affected_mob, span_danger("you feel horribly weak.")) + affected_mob.adjustStaminaLoss(5 * REM * seconds_per_tick, 0) + if(SPT_PROB(8, seconds_per_tick)) + paralyze_limb(affected_mob) + if(SPT_PROB(10, seconds_per_tick)) + affected_mob.adjust_confusion(rand(6 SECONDS, 8 SECONDS)) + if(28 to INFINITY) + toxpwr = 1.5 + affected_mob.adjustOrganLoss(ORGAN_SLOT_BRAIN, 1, BRAIN_DAMAGE_DEATH) + affected_mob.set_silence_if_lower(3 SECONDS * REM * seconds_per_tick) + affected_mob.adjustStaminaLoss(5 * REM * seconds_per_tick, 0) + affected_mob.adjust_disgust(2 * REM * seconds_per_tick) + if(SPT_PROB(15, seconds_per_tick)) + paralyze_limb(affected_mob) + if(SPT_PROB(10, seconds_per_tick)) + affected_mob.adjust_confusion(rand(6 SECONDS, 8 SECONDS)) + + if(current_cycle >= 38 && !length(traits_not_applied) && SPT_PROB(5, seconds_per_tick) && !affected_mob.undergoing_cardiac_arrest()) + affected_mob.set_heartattack(TRUE) + to_chat(affected_mob, span_danger("you feel a burning pain spread throughout your chest, oh no...")) + + return ..() + +/datum/reagent/toxin/tetrodotoxin/proc/paralyze_limb(mob/living/affected_mob) + if(!length(traits_not_applied)) + return + var/added_trait = pick(traits_not_applied) + ADD_TRAIT(affected_mob, added_trait, REF(src)) + traits_not_applied -= added_trait + +/datum/reagent/toxin/tetrodotoxin/on_mob_metabolize(mob/living/affected_mob) + RegisterSignal(affected_mob, COMSIG_CARBON_ATTEMPT_BREATHE, PROC_REF(block_breath)) + +/datum/reagent/toxin/tetrodotoxin/on_mob_end_metabolize(mob/living/affected_mob) + UnregisterSignal(affected_mob, COMSIG_CARBON_ATTEMPT_BREATHE, PROC_REF(block_breath)) + // the initial() proc doesn't work for lists. + var/list/initial_list = list( + TRAIT_PARALYSIS_L_ARM = BODY_ZONE_L_ARM, + TRAIT_PARALYSIS_R_ARM = BODY_ZONE_R_ARM, + TRAIT_PARALYSIS_L_LEG = BODY_ZONE_L_LEG, + TRAIT_PARALYSIS_R_LEG = BODY_ZONE_R_LEG, + ) + affected_mob.remove_traits(initial_list, REF(src)) + traits_not_applied = initial_list + +/datum/reagent/toxin/tetrodotoxin/proc/block_breath(mob/living/source) + SIGNAL_HANDLER + if(current_cycle >= 28) + return COMSIG_CARBON_BLOCK_BREATH diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index ef2844bb132..8dbfeb65c17 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -979,6 +979,7 @@ /datum/design/fishing_rod_tech name = "Advanced Fishing Rod" + desc = "A fishing rod with an embedded generator dispensing an infinite supply of fishing baits." id = "fishing_rod_tech" build_type = PROTOLATHE | AWAY_LATHE materials = list(/datum/material/uranium =HALF_SHEET_MATERIAL_AMOUNT, /datum/material/plastic =SHEET_MATERIAL_AMOUNT) @@ -988,6 +989,30 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SERVICE +/datum/design/stabilized_hook + name = "Gyro-Stabilized Hook" + desc = "An advanced fishing hook that gives the user a tighter control on the fish when reeling in." + id = "stabilized_hook" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, /datum/material/gold = SMALL_MATERIAL_AMOUNT * 3, /datum/material/titanium = SMALL_MATERIAL_AMOUNT * 2) + build_path = /obj/item/fishing_hook/stabilized + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +/datum/design/fish_analyzer + name = "Fish Analyzer" + desc = "An analyzer used to monitor fish's status and traits with." + id = "fish_analyzer" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT * 5, /datum/material/glass = SMALL_MATERIAL_AMOUNT * 0.5) + build_path = /obj/item/fish_analyzer + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SERVICE + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + ///////////////////////////////////////// /////////Coffeemaker Stuff/////////////// ///////////////////////////////////////// diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index faa95ac7da6..69e8e821286 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -2424,7 +2424,9 @@ description = "Cutting edge fishing advancements." prereq_ids = list("base") design_ids = list( - "fishing_rod_tech" + "fishing_rod_tech", + "stabilized_hook", + "fish_analyzer", ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) hidden = TRUE diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index 674016bcafa..0f831dfd926 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -26,6 +26,18 @@ var/initial_inline_css var/mouse_event_macro_set = FALSE + /** + * Static list used to map in macros that will then emit execute events to the tgui window + * A small disclaimer though I'm no tech wiz: I don't think it's possible to map in right or middle + * clicks in the current state, as they're keywords rather than modifiers. + */ + var/static/list/byondToTguiEventMap = list( + "MouseDown" = "byond/mousedown", + "MouseUp" = "byond/mouseup", + "Ctrl" = "byond/ctrldown", + "Ctrl+UP" = "byond/ctrlup", + ) + /** * public * @@ -381,11 +393,6 @@ if(mouse_event_macro_set) return - var/list/byondToTguiEventMap = list( - "MouseDown" = "byond/mousedown", - "MouseUp" = "byond/mouseup" - ) - for(var/mouseMacro in byondToTguiEventMap) var/command_template = ".output CONTROL PAYLOAD" var/event_message = TGUI_CREATE_MESSAGE(byondToTguiEventMap[mouseMacro], null) @@ -406,10 +413,6 @@ /datum/tgui_window/proc/remove_mouse_macro() if(!mouse_event_macro_set) stack_trace("Unsetting mouse macro on tgui window that has none") - var/list/byondToTguiEventMap = list( - "MouseDown" = "byond/mousedown", - "MouseUp" = "byond/mouseup" - ) for(var/mouseMacro in byondToTguiEventMap) winset(client, null, "[mouseMacro]Window[id]Macro.parent=null") mouse_event_macro_set = FALSE diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 8d69bd3b7bf..46af8987bca 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -125,6 +125,7 @@ #include "egg_glands.dm" #include "emoting.dm" #include "explosion_action.dm" +#include "fish_unit_tests.dm" #include "focus_only_tests.dm" #include "font_awesome_icons.dm" #include "food_edibility_check.dm" diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm new file mode 100644 index 00000000000..6c4a278a396 --- /dev/null +++ b/code/modules/unit_tests/fish_unit_tests.dm @@ -0,0 +1,127 @@ +#define TRAIT_FISH_TESTING "made_you_read_this" + +///Checks that things associated with fish size and weight work correctly. +/datum/unit_test/fish_size_weight + +/datum/unit_test/fish_size_weight/Run() + var/obj/item/fish/fish = allocate(/obj/item/fish/testdummy) + TEST_ASSERT_EQUAL(fish.grind_results[/datum/reagent], 20, "the test fish has [fish.grind_results[/datum/reagent]] units of reagent when it should have 20") + TEST_ASSERT_EQUAL(fish.w_class, WEIGHT_CLASS_BULKY, "the test fish has w_class of [fish.w_class] when it should have been [WEIGHT_CLASS_BULKY]") + var/expected_num_fillets = round(FISH_SIZE_BULKY_MAX / FISH_FILLET_NUMBER_SIZE_DIVISOR * 2, 1) + TEST_ASSERT_EQUAL(fish.num_fillets, expected_num_fillets, "the test fish has [fish.num_fillets] number of fillets when it should have [expected_num_fillets]") + +///Checks that fish breeding works correctly. +/datum/unit_test/fish_breeding + +/datum/unit_test/fish_breeding/Run() + var/obj/item/fish/fish = allocate(/obj/item/fish/testdummy) + ///Check if the fishes can generate offsprings at all. + var/obj/item/fish/fish_two = allocate(/obj/item/fish/testdummy/two) + var/obj/item/fish/new_fish = fish.create_offspring(fish_two.type, fish_two) + TEST_ASSERT(new_fish, "the two test fishes couldn't generate an offspring") + var/traits_len = length(new_fish.fish_traits) + TEST_ASSERT_NOTEQUAL(traits_len, 2, "the offspring of the test fishes has both parents' traits, which are incompatible with each other") + TEST_ASSERT_NOTEQUAL(traits_len, 0, "the offspring has neither of the parents' traits") + TEST_ASSERT(HAS_TRAIT(new_fish, TRAIT_FISH_TESTING), "The offspring doesn't have the relative datum trait associated with its fish trait") + + ///Check that crossbreeder, no-mating and self-reproductive fish traits work correctly. + var/obj/structure/aquarium/traits/aquarium = allocate(/obj/structure/aquarium/traits) + TEST_ASSERT(!aquarium.sterile.try_to_reproduce(), "The test aquarium's sterile fish managed to reproduce when it shouldn't have") + var/obj/item/fish/crossbreeder_jr = aquarium.crossbreeder.try_to_reproduce() + TEST_ASSERT(crossbreeder_jr, "The test aquarium's crossbreeder fish didn't manage to reproduce when it should have.") + TEST_ASSERT_EQUAL(crossbreeder_jr.type, aquarium.cloner.type, "The test aquarium's crossbreeder fish mated with the wrong type of fish") + var/obj/item/fish/cloner_jr = aquarium.cloner.try_to_reproduce() + TEST_ASSERT(cloner_jr, "The test aquarium's cloner fish didn't manage to reproduce when it should have.") + TEST_ASSERT_NOTEQUAL(cloner_jr.type, aquarium.sterile.type, "The test aquarium's cloner fish mated with the sterile fish") + +///Checks that fish evolutions work correctly. +/datum/unit_test/fish_evolution + +/datum/unit_test/fish_evolution/Run() + var/obj/structure/aquarium/evolution/aquarium = allocate(/obj/structure/aquarium/evolution) + var/obj/item/fish/evolve_jr = aquarium.evolve.try_to_reproduce() + TEST_ASSERT(evolve_jr, "The test aquarium's evolution fish didn't manage to reproduce when it should have") + TEST_ASSERT_NOTEQUAL(evolve_jr.type, /obj/item/fish/goldfish, "The test aquarium's evolution fish managed to pass the conditions of an impossible evolution.") + TEST_ASSERT_EQUAL(evolve_jr.type, /obj/item/fish/clownfish, "The test aquarium's evolution fish's offspring isn't of the expected type") + TEST_ASSERT(!(/datum/fish_trait/dummy in evolve_jr.fish_traits), "The test aquarium's evolution fish's offspring still has the old trait that ought to be removed by the evolution datum") + TEST_ASSERT(/datum/fish_trait/dummy/two in evolve_jr.fish_traits, "The test aquarium's evolution fish's offspring doesn't have the evolution trait") + +///dummy fish item used for the tests, as well with related subtypes and datums. +/obj/item/fish/testdummy + grind_results = list() + average_weight = FISH_GRIND_RESULTS_WEIGHT_DIVISOR * 2 + average_size = FISH_SIZE_BULKY_MAX + num_fillets = 2 + fish_traits = list(/datum/fish_trait/dummy) + stable_population = INFINITY + breeding_timeout = 0 + +/obj/item/fish/testdummy/two + fish_traits = list(/datum/fish_trait/dummy/two) + +/datum/fish_trait/dummy + incompatible_traits = list(/datum/fish_trait/dummy/two) + inheritability = 100 + diff_traits_inheritability = 100 + +/datum/fish_trait/dummy/apply_to_fish(obj/item/fish/fish) + ADD_TRAIT(fish, TRAIT_FISH_TESTING, FISH_TRAIT_DATUM) + fish.grind_results[/datum/reagent] = 10 + +/datum/fish_trait/dummy/two + incompatible_traits = list(/datum/fish_trait/dummy) + +/obj/structure/aquarium/traits + allow_breeding = TRUE + var/obj/item/fish/testdummy/crossbreeder/crossbreeder + var/obj/item/fish/testdummy/cloner/cloner + var/obj/item/fish/testdummy/sterile/sterile + +/obj/structure/aquarium/traits/Initialize(mapload) + . = ..() + crossbreeder = new(src) + cloner = new(src) + sterile = new(src) + +/obj/item/fish/testdummy/crossbreeder + fish_traits = list(/datum/fish_trait/crossbreeder) + +/obj/item/fish/testdummy/cloner + fish_traits = list(/datum/fish_trait/parthenogenesis) + +/obj/item/fish/testdummy/sterile + fish_traits = list(/datum/fish_trait/no_mating) + +/obj/structure/aquarium/evolution + allow_breeding = TRUE + var/obj/item/fish/testdummy/evolve/evolve + var/obj/item/fish/testdummy/evolve_two/evolve_two + +/obj/structure/aquarium/evolution/Initialize(mapload) + . = ..() + evolve = new(src) + evolve_two = new(src) + +/obj/item/fish/testdummy/evolve + compatible_types = list(/obj/item/fish/testdummy/evolve_two) + evolution_types = list(/datum/fish_evolution/dummy) + +/obj/item/fish/testdummy/evolve_two + compatible_types = list(/obj/item/fish/testdummy/evolve) + evolution_types = list(/datum/fish_evolution/dummy/two) + +/datum/fish_evolution/dummy + probability = 200 //Guaranteed chance even if halved. + new_fish_type = /obj/item/fish/clownfish + new_traits = list(/datum/fish_trait/dummy/two) + removed_traits = list(/datum/fish_trait/dummy) + +/datum/fish_evolution/dummy/two + new_fish_type = /obj/item/fish/goldfish + +/datum/fish_evolution/dummy/two/New() + . = ..() + probability = 0 //works around the global list initialization skipping abstract/impossible evolutions. + +#undef TRAIT_FISH_TESTING + diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index a37c28fc7375fa094b09be46a7dcd953ba89353a..29b75b5f336b7d270b82af1825dc1eae5bdccbb2 100644 GIT binary patch literal 50148 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 literal 48230 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 delta 4383 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 A)&Kwi diff --git a/icons/mob/inhands/clothing/hats_lefthand.dmi b/icons/mob/inhands/clothing/hats_lefthand.dmi index 4133f3d1ad9272cb60975208a0633d63c1853772..7111ee4d7480b04be11b5656131ddfe96f72d43b 100644 GIT binary patch literal 21741 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 V^V{xBR>#pCqNV?!Li72Xe*@eD6#)PM literal 22318 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

kf!a7yX=iiZ@G3*%nM%*7dOt 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 diff --git a/icons/mob/inhands/clothing/hats_righthand.dmi b/icons/mob/inhands/clothing/hats_righthand.dmi index a7d3c60f5f3a323c9888bbcfffdd494c12389aac..96756fc44db9cd031223dfc23ebca3a1dc09546d 100644 GIT binary patch delta 4817 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 gzS)z8v5ysAljYxemOE3lR0fFDZ*Bkp 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 TEAJvfT_8|(U9~dR7jOO#T4vs- delta 10133 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 FDD&m>Fc|_HRJdy5R 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 delta 12490 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


Yo5+jInm=sA6OV1;shq_jNNu=0}X_o5<#MjDc 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 Y?Bng?M!i3`!D`*zQH|8{?@ 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 literal 16711 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 diff --git a/icons/obj/aquarium_wide.dmi b/icons/obj/aquarium_wide.dmi new file mode 100644 index 0000000000000000000000000000000000000000..7c5f941a1db37339808b4e2671598860b4d1a6ea GIT binary patch literal 570 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 literal 4854 zcmY+Ic{tST`^SfoXfT8!>)0u4!jNW|%!urfWn{ANTRAaV8p{+B3K_?~OR_{5yGezF zq6pbTvXfzi?{I$Sch0%5>+`(t`}sWA=b!uadEeLd#F!ZAvYz5Q1pok8^{(ic(RA|Y zVFJ=txy?TZ006oJ69aQpTU#49H@BdmproYac_k$|Ib~s}I^yWG)}o<|Zlv6;(Ya#iJ}CA|eua^E%N~=?pKQHQ(8hJS2is zroahKzHb#RE+;FioSL3{LDRgxsTJ-V4YLYze2`YCAfqU$?BR8rvRw%g*IFM!7njzG zi^&XD$esiVtEpbBPmwUOutlK^OF{+EXv6m(K4wVEuB@!ool_`$R*Qp*b8~S8_(xn7 zfHq?V#%nM6whChldgdabi=&a{bMl1txuVOb>u^e!i%#p_uf8qMgV$9Mz%#*}<3ePL zig9W=ms`7tS{UxQ$2ZQQF?dbJ+c+H&Wt0o8S<=des_2`7A{WyDfOdPp5KiDQ3D5%o z)Bpf@0O0UY83K_nGzTu$0uDC-%|yogb==8a5c?=FApa9aG#QZ6`cSwG5K)pZ(bWSu z6iY1cq;-)lz|80xKx=N;g_hghHMa`TalY+%%iS-)-PZ>I2+Bx#YUuMC%8nk|mML?> z{_-6)OeyKkBSol$S82E70q?q(uX;-PScZI~yL&h5j7wtOhrNRtKd(F452$1j57+d% zxnEON<&ttq-RY_G4Q6G*DRYJf$uI@AE*#4Jnx)wTA~!K9qKEBvQDW3Dx20EMbHcn%<}y)iS7la9R^N!hhd{9M zc-;)9B3p*4l7*#*Ie}=ywXX3UO~W)g9=aPt3J$K-|aHqXZCu7_3CQ%-hTJ3 z4@>5$?Fev+_8xZz0Kl4hI@;zz8Ovj_m}|OxjBCRX6Ri{6jmxz@B8}HQd~3fuRBNq8 z6xW<~7qk0f<`nzlTS?5R4v=0`ZcOUQnZi5V0WTizD+IQr-A>Ec3{~dSu?!rarwa`! zwhvQJ3eTcLig5m4B&9+@kfv=azi-pQNW_Wna3soE+T2?Ei-m>7TKp1^ye-q}!aHou zl_t|?<;(<+(yqI`Z4XCAy1Peg^sQb6txuobjz2AL`_ickxgF0XZ)0PLZ4I!#^x0AY zYj>?WL|tYOXt`!0R~=(M9h$P7AH@n~Z~~4GRfKFB$3Cr6Lw0(Js&p{CYUB28-rpX* z7Z!VZ5x;8w6?bx#A2O1QkG(Em>gYQtk)iDO2E%S+Wi1lI4O_dx>X!nkkNZJfRp6?$ z*(rU`*g_HFnQnXgw#d)<#8v0|XH^_$)_Squnqn`tku9EI-)AKs=qysHpI1Rsd(VGz zO#i9!L3q%-dN8EF$;FVQrQLyl#LaDJXrEP7^zc-xpIj5w78)#9F1O5oGtfW$YJ_D~ zi_h1^&#RkdcFnT&`a|ZHYHIh|2F7e}JUaD98yG>|Nis(4&(0*kb@cD7dk`w0J*yR^ zoh!f5Xw_|VZ=%1yQb+%0$`=KUOw{vs9)_2(b+%0D>8X}8&jY?S^uZ6OWBU-8IyO(s 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 Cpdilx diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 4bcb2b1bfaba55f549d2e06e081c52008cc65177..b6ccf1b8c41697a741dadb9e7f6208643ddada5b 100644 GIT binary patch literal 84195 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¥98BgaVrjINz=&Sn%imQ8h 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 diff --git a/icons/obj/fishing.dmi b/icons/obj/fishing.dmi index 1b7d03dd13dd31cc91a624f8371968185aee9fe3..39bcc85344200514b219e29278beff427e20320d 100644 GIT binary patch literal 4692 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 diff --git a/icons/ui_icons/achievements/achievements.dmi b/icons/ui_icons/achievements/achievements.dmi index ba4ee70643167861ed85162b74a91805462cb77c..4975509a10f83a45772a9b66daa4403b26cd8d8a 100644 GIT binary patch delta 49970 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

<#=luo- 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 Qfq;*ssGLZpu)g2_12DDxr2qf` delta 47495 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%0DG;Qn9?p(2Z%?er%v&rMfY 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 diff --git a/modular_skyrat/modules/primitive_production/code/production_skill.dm b/modular_skyrat/modules/primitive_production/code/production_skill.dm index 3630065359d..50fc0d30ca5 100644 --- a/modular_skyrat/modules/primitive_production/code/production_skill.dm +++ b/modular_skyrat/modules/primitive_production/code/production_skill.dm @@ -6,7 +6,7 @@ SKILL_SPEED_MODIFIER = list(1, 0.95, 0.9, 0.85, 0.75, 0.6, 0.5), SKILL_PROBS_MODIFIER = list(10, 15, 20, 25, 30, 35, 40) ) - skill_cape_path = /obj/item/clothing/neck/cloak/skill_reward/production + skill_item_path = /obj/item/clothing/neck/cloak/skill_reward/production /obj/item/clothing/neck/cloak/skill_reward/production name = "legendary producer's cloak" diff --git a/modular_skyrat/modules/reagent_forging/code/smith_skill.dm b/modular_skyrat/modules/reagent_forging/code/smith_skill.dm index 7fe379f0cbf..1170f957fc0 100644 --- a/modular_skyrat/modules/reagent_forging/code/smith_skill.dm +++ b/modular_skyrat/modules/reagent_forging/code/smith_skill.dm @@ -6,7 +6,7 @@ SKILL_SPEED_MODIFIER = list(1, 0.95, 0.9, 0.85, 0.75, 0.6, 0.5), SKILL_PROBS_MODIFIER = list(10, 15, 20, 25, 30, 35, 40) ) - skill_cape_path = /obj/item/clothing/neck/cloak/skill_reward/smithing + skill_item_path = /obj/item/clothing/neck/cloak/skill_reward/smithing /obj/item/clothing/neck/cloak/skill_reward/smithing name = "legendary smithy's cloak" diff --git a/tgstation.dme b/tgstation.dme index 9545f8bb116..6d81f08638c 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -964,7 +964,7 @@ #include "code\datums\components\aggro_emote.dm" #include "code\datums\components\ai_retaliate_advanced.dm" #include "code\datums\components\anti_magic.dm" -#include "code\datums\components\aquarium.dm" +#include "code\datums\components\aquarium_content.dm" #include "code\datums\components\area_based_godmode.dm" #include "code\datums\components\area_sound_manager.dm" #include "code\datums\components\areabound.dm" @@ -1367,6 +1367,7 @@ #include "code\datums\elements\shatters_when_thrown.dm" #include "code\datums\elements\sideway_movement.dm" #include "code\datums\elements\simple_flying.dm" +#include "code\datums\elements\skill_reward.dm" #include "code\datums\elements\skittish.dm" #include "code\datums\elements\snail_crawl.dm" #include "code\datums\elements\soft_landing.dm" @@ -1542,6 +1543,7 @@ #include "code\datums\screentips\item_context.dm" #include "code\datums\skills\_skill.dm" #include "code\datums\skills\cleaning.dm" +#include "code\datums\skills\fishing.dm" #include "code\datums\skills\gaming.dm" #include "code\datums\skills\mining.dm" #include "code\datums\station_traits\_station_trait.dm" @@ -1589,6 +1591,7 @@ #include "code\datums\storage\subtypes\cards.dm" #include "code\datums\storage\subtypes\duffel_bag.dm" #include "code\datums\storage\subtypes\extract_inventory.dm" +#include "code\datums\storage\subtypes\fish_case.dm" #include "code\datums\storage\subtypes\implant.dm" #include "code\datums\storage\subtypes\organ_box.dm" #include "code\datums\storage\subtypes\pockets.dm" @@ -3587,11 +3590,13 @@ #include "code\modules\fishing\fishing_minigame.dm" #include "code\modules\fishing\fishing_portal_machine.dm" #include "code\modules\fishing\fishing_rod.dm" -#include "code\modules\fishing\fishing_traits.dm" #include "code\modules\fishing\aquarium\aquarium.dm" #include "code\modules\fishing\aquarium\aquarium_kit.dm" +#include "code\modules\fishing\aquarium\fish_analyzer.dm" #include "code\modules\fishing\fish\_fish.dm" #include "code\modules\fishing\fish\chasm_detritus.dm" +#include "code\modules\fishing\fish\fish_evolution.dm" +#include "code\modules\fishing\fish\fish_traits.dm" #include "code\modules\fishing\fish\fish_types.dm" #include "code\modules\fishing\sources\_fish_source.dm" #include "code\modules\fishing\sources\source_types.dm" diff --git a/tgui/packages/tgui/backend.ts b/tgui/packages/tgui/backend.ts index fb77a61e3cd..dd4cae9e622 100644 --- a/tgui/packages/tgui/backend.ts +++ b/tgui/packages/tgui/backend.ts @@ -146,6 +146,14 @@ export const backendMiddleware = (store) => { globalEvents.emit('byond/mouseup'); } + if (type === 'byond/ctrldown') { + globalEvents.emit('byond/ctrldown'); + } + + if (type === 'byond/ctrlup') { + globalEvents.emit('byond/ctrlup'); + } + if (type === 'backend/suspendStart' && !suspendInterval) { logger.log(`suspending (${Byond.windowId})`); // Keep sending suspend messages until it succeeds. diff --git a/tgui/packages/tgui/interfaces/FishCatalog.tsx b/tgui/packages/tgui/interfaces/FishCatalog.tsx index 4718e2a094b..0c9ba7ceb3c 100644 --- a/tgui/packages/tgui/interfaces/FishCatalog.tsx +++ b/tgui/packages/tgui/interfaces/FishCatalog.tsx @@ -96,7 +96,7 @@ export const FishCatalog = (props, context) => { {currentFish.weight} g - + {currentFish.fishing_tips.spots} diff --git a/tgui/packages/tgui/interfaces/Fishing.tsx b/tgui/packages/tgui/interfaces/Fishing.tsx index ba0196735f7..7e5e0f3ea50 100644 --- a/tgui/packages/tgui/interfaces/Fishing.tsx +++ b/tgui/packages/tgui/interfaces/Fishing.tsx @@ -1,11 +1,12 @@ import { clamp } from 'common/math'; +import { KEY_CTRL } from 'common/keycodes'; import { randomInteger, randomNumber, randomPick, randomProb } from 'common/random'; import { useDispatch } from 'common/redux'; import { Component } from 'inferno'; import { resolveAsset } from '../assets'; import { backendSuspendStart, useBackend } from '../backend'; -import { Icon } from '../components'; -import { globalEvents } from '../events'; +import { Icon, KeyListener } from '../components'; +import { globalEvents, KeyEvent } from '../events'; import { Window } from '../layouts'; type Bait = { @@ -26,6 +27,7 @@ type FishAI = 'dumb' | 'zippy' | 'slow'; enum ReelingState { Idle, Reeling, + ReelingDown, } type FishingMinigameProps = { @@ -43,7 +45,13 @@ type FishingMinigameState = { fish: Fish; }; -type SpecialRule = 'weighted' | 'limit_loss' | 'heavy'; +type SpecialRule = + | 'weighted' + | 'limit_loss' + | 'heavy' + | 'bidirectional' + | 'no_escape' + | 'lubed'; class FishingMinigame extends Component< FishingMinigameProps, @@ -63,6 +71,9 @@ class FishingMinigame extends Component< longJumpVelocityLimit: number = 200; shortJumpVelocityLimit: number = 400; idleVelocity: number = 0; + accel_up_coeff: number = 1; + bidirectional: boolean = false; + no_escape: boolean = false; baseLongJumpChancePerSecond: number = 0.0075; baseShortJumpChancePerSecond: number = 0.255; @@ -82,6 +93,9 @@ class FishingMinigame extends Component< : -6; this.baitBounceCoeff = props.special_rules.includes('weighted') ? 0.1 : 0.6; this.idleVelocity = props.special_rules.includes('heavy') ? 10 : 0; + this.bidirectional = props.special_rules.includes('bidirectional'); + this.no_escape = props.special_rules.includes('no_escape'); + this.accel_up_coeff = props.special_rules.includes('lubed') ? 1.4 : 1; switch (props.fish_ai) { case 'dumb': @@ -117,6 +131,10 @@ class FishingMinigame extends Component< this.handle_mousedown = this.handle_mousedown.bind(this); this.handle_mouseup = this.handle_mouseup.bind(this); + this.handleKeyDown = this.handleKeyDown.bind(this); + this.handleKeyUp = this.handleKeyUp.bind(this); + this.handle_ctrldown = this.handle_ctrldown.bind(this); + this.handle_ctrlup = this.handle_ctrlup.bind(this); this.updateAnimation = this.updateAnimation.bind(this); this.moveFish = this.moveFish.bind(this); this.moveBait = this.moveBait.bind(this); @@ -130,6 +148,8 @@ class FishingMinigame extends Component< this.animation_id = window.requestAnimationFrame(this.updateAnimation); globalEvents.on('byond/mousedown', this.handle_mousedown); globalEvents.on('byond/mouseup', this.handle_mouseup); + globalEvents.on('byond/ctrldown', this.handle_ctrldown); + globalEvents.on('byond/ctrlup', this.handle_ctrlup); } componentWillUnmount() { @@ -138,6 +158,8 @@ class FishingMinigame extends Component< window.cancelAnimationFrame(this.animation_id); globalEvents.off('byond/mousedown', this.handle_mousedown); globalEvents.off('byond/mouseup', this.handle_mouseup); + globalEvents.off('byond/ctrldown', this.handle_ctrldown); + globalEvents.off('byond/ctrlup', this.handle_ctrlup); } updateAnimation(timestamp: DOMHighResTimeStamp) { @@ -275,7 +297,7 @@ class FishingMinigame extends Component< const { fish, bait } = this.state; // Speedup when reeling - const acceleration_up = -1500; + const acceleration_up = -1500 * this.accel_up_coeff; // Gravity const acceleration_down = 1000; // Velocity is multiplied by this when bouncing off the bottom/top @@ -298,17 +320,31 @@ class FishingMinigame extends Component< // Bottom bound if (newPosition + bait.height > this.area_height) { newPosition = this.area_height - bait.height; - newVelocity = -bait.velocity * bounce_coeff; + if (this.reeling === ReelingState.ReelingDown) { + newVelocity = 0; + } else { + newVelocity = -bait.velocity * bounce_coeff; + } } const acceleration = this.reeling === ReelingState.Reeling ? acceleration_up - : acceleration_down; - const velocity_change = acceleration * seconds; + : this.reeling === ReelingState.ReelingDown + ? -acceleration_up + : acceleration_down; // Slowdown both ways when on fish - if (this.fishOnBait(fish, bait)) { - newVelocity += on_point_coeff * velocity_change; + const velocity_change = + acceleration * + seconds * + (this.fishOnBait(fish, bait) ? on_point_coeff : 1); + + if (this.bidirectional && this.reeling === ReelingState.Idle) { + if (newVelocity < 0) { + newVelocity = Math.min(newVelocity + velocity_change, 0); + } else { + newVelocity = Math.max(newVelocity - velocity_change, 0); + } } else { newVelocity += velocity_change; } @@ -351,7 +387,7 @@ class FishingMinigame extends Component< const dispatch = useDispatch(this.context); - if (newCompletion <= 0) { + if (newCompletion <= 0 && !this.no_escape) { this.props.lose(); dispatch(backendSuspendStart()); } else if (newCompletion >= 100) { @@ -377,7 +413,33 @@ class FishingMinigame extends Component< } handle_mouseup(event: MouseEvent) { - this.reeling = ReelingState.Idle; + if (this.reeling === ReelingState.Reeling) { + this.reeling = ReelingState.Idle; + } + } + + handleKeyDown(keyEvent: KeyEvent) { + if (keyEvent.code === KEY_CTRL) { + this.handle_ctrldown(); + } + } + + handleKeyUp(keyEvent: KeyEvent) { + if (keyEvent.code === KEY_CTRL) { + this.handle_ctrlup(); + } + } + + handle_ctrldown() { + if (this.bidirectional && this.reeling === ReelingState.Idle) { + this.reeling = ReelingState.ReelingDown; + } + } + + handle_ctrlup() { + if (this.bidirectional && this.reeling === ReelingState.ReelingDown) { + this.reeling = ReelingState.Idle; + } } render() { @@ -386,6 +448,10 @@ class FishingMinigame extends Component< const background_image = resolveAsset(this.props.background); return (

+