From 659e6f0ca248758eb26d6dd4f3be452683b2c167 Mon Sep 17 00:00:00 2001 From: Ghom <42542238+Ghommie@users.noreply.github.com> Date: Tue, 20 Aug 2024 06:46:11 +0200 Subject: [PATCH] Fishing expansion 2: one-year later boogaloo (#85252) ## About The Pull Request This PR mainly adds more fish and more fishing spots to the game, while refactoring a few aspects of the fishing minigame. Listing out with the new fish: - Arctic char: mainly filler content for the ice hole fishing spot - Sockeye Salmon: ditto but also provides better fillets that boost the quality of resulting food items when cooked or used in recipes - Soulfish: joke content, found by the cursed spring ruin - Skin Crab: also a joke found by the cursed spring - Bump-Fish: filler for the sand fishing spot - Burrower Crab: ditto, reusing a fish sprite I made last year - Sand Surfer: ditto - Three-Eyed Goldfish: It's a reference, doh - Stingray: A modestly weaponizable fish (whoops I've forgot to set the hit sounds), it possess a few traits that make it deliver bits of venom each time you hit someone with it - Swordfish: Huge-ass fish that may require two hands to wield (or not, if the RNG wants to make it smaller). Stats-wise, it's more or less the equivalent of the captain sabre, if not stronger (and more unwieldy due to size and weight). Becomes weaker when dead. Also gives better quality fillets. - Chainsawfish: A mutation of the goldfish with some size, weight and traits requirements, but can also be found on emagged fishing portals. Stronger than the swordfish, it behaves sort of like a chainsaw, with the similar tool behaviour and var values. Also becomes weaker when dead. As for the fishing spots, you can now fish on sand turfs, at the cursed springs or on ice. Rivers/jungle water now has its own fishing spot datum, and no longer uses the generic fishing portal one. To fish on ice, you first have to carve a hole with a pick or a shovel. I've also refactored the fish "AI" hardcoded stuff used in the fishing minigame into their own datums, which let me add a few fancier ways to how the fish moves during the minigame (i.e. the soulfish moving at 1 FPS or the chainsawfish getting faster and faster). As for the sword and chainsaw fish, their potential strength is balanced out by the need of keeping them alive, as well as the potential cumbersomeness, two-handed wielding and potential slowdown from the excessive weight of the fish (Thank you Big Slappy for the inspiration). Other minor changes include: Pufferfish giving better quality fillets (too bad they're poisonous, I'll go and make a skillchip to let cooks safely separate the poisonous liver from the fillets); McGill The lawyer's goldfish) having a 15% of being three-eyed; the aforementioned slowdown from fish weight and two-handed carry from fish size; a couple new fish icons (the ones that hint you on what you're trying to catch) for the fishing minigame; a few adjustments to prevent self-reproducing fish from ignoring the population cap and let fish with a stable population of 1 to crossbreed (also gotta make a different PR to let it happen rarely without the crossbreeding trait). This PR is still a WIP, gotta test it several times. ## Why It's Good For The Game Fishing is something I've been working on for about a year now, but there are still a few places where it's kinda lackluster, like there's not enough diverse fishing spots or useful fish (I'll be working on a separate PR to make the logistic of a carrying a fish around without letting it die a tad easier). Also, look at these sprites: ![new fish](https://github.com/user-attachments/assets/49c55065-32b0-44ec-ac12-74b3a1763f50) Can you guess which is which? ## Changelog For the sake of not dumping players with niche information 90% of the players won't understand, I'll keep the CL pretty generic :cl: add: Added twelve new fish types to the game. Some are cool, other are not, some come with their own special traits and some are straight-up weapons. add: Added more fishing spots to the game. Sand, ice, rivers, the cursed spring... balance: A few fish like salmon, swordfish and pufferfish (poisonous btw) now give better quality fillets when butchered, which can improve the quality of food that uses them even further. balance: Excessive fish weight will make the fish slowier to carry, while excessive size may make it require two hands. balance: Adjusted size, weight and cooldowns of several fish, for the better. /:cl: --- code/__DEFINES/dcs/signals/signals_fish.dm | 4 + code/__DEFINES/dcs/signals/signals_food.dm | 8 + code/__DEFINES/dcs/signals/signals_reagent.dm | 2 - code/__DEFINES/fish.dm | 31 +- code/__DEFINES/traits/declarations.dm | 8 + code/_globalvars/traits/_traits.dm | 6 +- code/_globalvars/traits/admin_tooling.dm | 7 +- .../subsystem/processing/fishing.dm | 7 +- code/datums/components/bakeable.dm | 4 +- code/datums/components/crafting/crafting.dm | 1 - code/datums/components/food/edible.dm | 11 +- code/datums/elements/food/grilled_item.dm | 2 + code/datums/elements/food/microwavable.dm | 1 + .../elements/quality_food_ingredient.dm | 71 +++ code/game/objects/items/food/meatdish.dm | 30 ++ code/game/turfs/open/ice.dm | 35 ++ code/game/turfs/open/sand.dm | 4 + code/game/turfs/open/water.dm | 2 +- code/modules/fishing/aquarium/aquarium.dm | 8 +- code/modules/fishing/aquarium/aquarium_kit.dm | 2 +- code/modules/fishing/bait.dm | 18 + code/modules/fishing/fish/_fish.dm | 190 ++++++-- code/modules/fishing/fish/fish_evolution.dm | 21 +- code/modules/fishing/fish/fish_traits.dm | 159 +++++-- code/modules/fishing/fish/fish_types.dm | 448 +++++++++++++++++- code/modules/fishing/fish_movement.dm | 214 +++++++++ code/modules/fishing/fishing_minigame.dm | 151 ++---- code/modules/fishing/fishing_rod.dm | 15 +- code/modules/fishing/sources/_fish_source.dm | 115 +++-- code/modules/fishing/sources/source_types.dm | 97 +++- .../ruins/icemoonruin_code/hotsprings.dm | 1 + code/modules/power/cell.dm | 5 + code/modules/unit_tests/fish_unit_tests.dm | 7 +- icons/hud/fishing_hud.dmi | Bin 4451 -> 4454 bytes icons/mob/inhands/fish_lefthand.dmi | Bin 879 -> 3131 bytes icons/mob/inhands/fish_righthand.dmi | Bin 880 -> 3121 bytes icons/obj/food/meat.dmi | Bin 40829 -> 40090 bytes icons/obj/structures/aquarium/fish.dmi | Bin 32486 -> 37209 bytes icons/obj/structures/aquarium/wide.dmi | Bin 570 -> 1649 bytes icons/turf/overlays.dmi | Bin 50082 -> 49630 bytes tgstation.dme | 2 + 41 files changed, 1389 insertions(+), 298 deletions(-) create mode 100644 code/datums/elements/quality_food_ingredient.dm create mode 100644 code/modules/fishing/fish_movement.dm diff --git a/code/__DEFINES/dcs/signals/signals_fish.dm b/code/__DEFINES/dcs/signals/signals_fish.dm index 2fbf99446ab..7980aa7ca1e 100644 --- a/code/__DEFINES/dcs/signals/signals_fish.dm +++ b/code/__DEFINES/dcs/signals/signals_fish.dm @@ -17,6 +17,10 @@ #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" +///From /obj/item/fish/update_size_and_weight: (new_size, new_weight) +#define COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT "fish_update_size_and_weight" +///From /obj/item/fish/update_fish_force: (weight_rank, bonus_malus) +#define COMSIG_FISH_FORCE_UPDATED "fish_force_updated" /// Fishing challenge completed #define COMSIG_FISHING_CHALLENGE_COMPLETED "fishing_completed" diff --git a/code/__DEFINES/dcs/signals/signals_food.dm b/code/__DEFINES/dcs/signals/signals_food.dm index 36a8b7b3392..113826a4486 100644 --- a/code/__DEFINES/dcs/signals/signals_food.dm +++ b/code/__DEFINES/dcs/signals/signals_food.dm @@ -16,6 +16,9 @@ /// called when an edible ingredient is added: (datum/component/edible/ingredient) #define COMSIG_FOOD_INGREDIENT_ADDED "edible_ingredient_added" +/// from base of /datum/component/edible/get_recipe_complexity(): (list/extra_complexity) +#define COMSIG_FOOD_GET_EXTRA_COMPLEXITY "food_get_extra_complexity" + // Deep frying foods /// An item becomes fried - From /datum/element/fried_item/Attach: (fry_time) #define COMSIG_ITEM_FRIED "item_fried" @@ -31,6 +34,8 @@ #define COMPONENT_MICROWAVE_BAD_RECIPE (1<<1) ///called on item when created through microwaving (): (obj/machinery/microwave/M, cooking_efficiency) #define COMSIG_ITEM_MICROWAVE_COOKED "microwave_cooked" +///called on the ingredient through microwawing: (result) +#define COMSIG_ITEM_MICROWAVE_COOKED_FROM "item_microwave_cooked_from" // Grilling foods (griddle, grill, and bonfire) ///Called when an object is placed onto a griddle @@ -46,6 +51,9 @@ ///Called when an object is turned into another item through grilling ontop of a griddle #define COMSIG_ITEM_GRILLED "item_grill_completed" +///Called when the object is grilled by the grill (not to be confused by the griddle, but oh gee the two should be merged in one) +#define COMSIG_ITEM_BARBEQUE_GRILLED "item_barbeque_grilled" + // Baking foods (oven) //Called when an object is inserted into an oven (atom/oven, mob/baker) #define COMSIG_ITEM_OVEN_PLACED_IN "item_placed_in_oven" diff --git a/code/__DEFINES/dcs/signals/signals_reagent.dm b/code/__DEFINES/dcs/signals/signals_reagent.dm index 5bb2c89d4ef..367ec946361 100644 --- a/code/__DEFINES/dcs/signals/signals_reagent.dm +++ b/code/__DEFINES/dcs/signals/signals_reagent.dm @@ -53,8 +53,6 @@ #define COMSIG_REAGENTS_EXPOSE_MOB "reagents_expose_mob" ///from base of [/turf/proc/expose_reagents]: (/turf, /list, methods, volume_modifier, show_message) #define COMSIG_REAGENTS_EXPOSE_TURF "reagents_expose_turf" -///from base of [/datum/component/personal_crafting/proc/del_reqs]: () -#define COMSIG_REAGENTS_CRAFTING_PING "reagents_crafting_ping" /// sent when reagents are transfered from a cup, to something refillable (atom/transfer_to) #define COMSIG_REAGENTS_CUP_TRANSFER_TO "reagents_cup_transfer_to" /// sent when reagents are transfered from some reagent container, to a cup (atom/transfer_from) diff --git a/code/__DEFINES/fish.dm b/code/__DEFINES/fish.dm index 3671ff3d8cd..ec991b713ec 100644 --- a/code/__DEFINES/fish.dm +++ b/code/__DEFINES/fish.dm @@ -1,5 +1,7 @@ /// Use in fish tables to denote miss chance. #define FISHING_DUD "dud" +///Used in the the hydro tray fishing spot to define a random seed reward +#define FISHING_RANDOM_SEED "Random seed" // Baseline fishing difficulty levels #define FISHING_DEFAULT_DIFFICULTY 15 @@ -14,11 +16,6 @@ #define FISH_TRAIT_MINOR_DIFFICULTY_BOOST 5 -// These define how the fish will behave in the minigame -#define FISH_AI_DUMB "dumb" -#define FISH_AI_ZIPPY "zippy" -#define FISH_AI_SLOW "slow" - ///Slot defines for the fishing rod and its equipment #define ROD_SLOT_BAIT "bait" #define ROD_SLOT_LINE "line" @@ -90,6 +87,10 @@ #define FISH_ICON_CRAB "crab" #define FISH_ICON_JELLYFISH "jellyfish" #define FISH_ICON_BONE "bone" +#define FISH_ICON_ELECTRIC "electric" +#define FISH_ICON_WEAPON "weapon" +#define FISH_ICON_CRITTER "critter" +#define FISH_ICON_SEED "seed" #define AQUARIUM_ANIMATION_FISH_SWIM "fish" #define AQUARIUM_ANIMATION_FISH_DEAD "dead" @@ -110,8 +111,11 @@ ///Fish size thresholds for w_class. #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_SIZE_NORMAL_MAX 80 +#define FISH_SIZE_BULKY_MAX 120 +///size threshold for requiring two-handed carry +#define FISH_SIZE_TWO_HANDS_REQUIRED 135 +#define FISH_SIZE_HUGE_MAX 165 ///The coefficient for maximum weight/size divergence relative to the averages. #define MAX_FISH_DEVIATION_COEFF 2.5 @@ -121,6 +125,15 @@ ///The number of fillets is multiplied by the fish' size and divided by this. #define FISH_FILLET_NUMBER_SIZE_DIVISOR 30 +///The slowdown of the fish when carried begins at this value +#define FISH_WEIGHT_SLOWDOWN 2100 +///The value of the slowdown equals to the weight divided by this (and then at the power of a sub-1 exponent) +#define FISH_WEIGHT_SLOWDOWN_DIVISOR 500 +///The sub-one exponent that results in the final slowdown of the fish item +#define FISH_WEIGHT_SLOWDOWN_EXPONENT 0.54 +///Used to calculate the force of the fish by comparing (1 + log(weight/this_define)) and the w_class of the item. +#define FISH_WEIGHT_FORCE_DIVISOR 250 + ///The breeding timeout for newly instantiated fish is multiplied by this. #define NEW_FISH_BREEDING_TIMEOUT_MULT 2 ///The last feeding timestamp of newly instantiated fish is multiplied by this: ergo, they spawn 50% hungry. @@ -164,3 +177,7 @@ //Fish breeding stops if fish count exceeds this. #define AQUARIUM_MAX_BREEDING_POPULATION 20 + +//Minigame defines +/// The height of the minigame slider. Not in pixels, but minigame units. +#define FISHING_MINIGAME_AREA 1000 diff --git a/code/__DEFINES/traits/declarations.dm b/code/__DEFINES/traits/declarations.dm index 30fdd765d88..79d4c988dd9 100644 --- a/code/__DEFINES/traits/declarations.dm +++ b/code/__DEFINES/traits/declarations.dm @@ -746,6 +746,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_FOOD_SILVER "food_silver" /// If this item's been made by a chef instead of being map-spawned or admin-spawned or such #define TRAIT_FOOD_CHEF_MADE "food_made_by_chef" +/// This atom has a quality_food_ingredient element attached +#define TRAIT_QUALITY_FOOD_INGREDIENT "quality_food_ingredient" /// The items needs two hands to be carried #define TRAIT_NEEDS_TWO_HANDS "needstwohands" /// Can't be catched when thrown @@ -754,6 +756,8 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_FISH_CASE_COMPATIBILE "fish_case_compatibile" /// If the item can be used as a bit. #define TRAIT_FISHING_BAIT "fishing_bait" +/// This bait will kill any fish that doesn't have it on its favorite_bait list +#define TRAIT_POISONOUS_BAIT "poisonous_bait" /// The quality of the bait. It influences odds of catching fish #define TRAIT_BASIC_QUALITY_BAIT "baic_quality_bait" #define TRAIT_GOOD_QUALITY_BAIT "good_quality_bait" @@ -959,6 +963,10 @@ Remember to update _globalvars/traits.dm if you're adding/removing/renaming trai #define TRAIT_FISH_FROM_CASE "fish_from_case" ///Fish will also occasionally fire weak tesla zaps #define TRAIT_FISH_ELECTROGENESIS "fish_electrogenesis" +///Offsprings from this fish will never be of its same type (unless it's self-reproducing). +#define TRAIT_FISH_RECESSIVE "fish_recessive" +///This fish comes equipped with a stinger (increased damage and potentially venomous if also toxic) +#define TRAIT_FISH_STINGER "fish_stinger" /// Trait given to angelic constructs to let them purge cult runes #define TRAIT_ANGELIC "angelic" diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 3e1f08464ba..f872dde9b34 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -19,6 +19,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_DRYABLE" = TRAIT_DRYABLE, "TRAIT_FOOD_CHEF_MADE" = TRAIT_FOOD_CHEF_MADE, "TRAIT_FOOD_FRIED" = TRAIT_FOOD_FRIED, + "TRAIT_QUALITY_FOOD_INGREDIENT" = TRAIT_QUALITY_FOOD_INGREDIENT, "TRAIT_FOOD_SILVER" = TRAIT_FOOD_SILVER, "TRAIT_KEEP_TOGETHER" = TRAIT_KEEP_TOGETHER, "TRAIT_LIGHTING_DEBUGGED" = TRAIT_LIGHTING_DEBUGGED, @@ -569,6 +570,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_NODROP" = TRAIT_NODROP, "TRAIT_OMNI_BAIT" = TRAIT_OMNI_BAIT, "TRAIT_PLANT_WILDMUTATE" = TRAIT_PLANT_WILDMUTATE, + "TRAIT_POISONOUS_BAIT" = TRAIT_POISONOUS_BAIT, "TRAIT_T_RAY_VISIBLE" = TRAIT_T_RAY_VISIBLE, "TRAIT_TRANSFORM_ACTIVE" = TRAIT_TRANSFORM_ACTIVE, "TRAIT_UNCATCHABLE" = TRAIT_UNCATCHABLE, @@ -599,15 +601,17 @@ GLOBAL_LIST_INIT(traits_by_type, list( /obj/item/fish = list( "TRAIT_FISH_AMPHIBIOUS" = TRAIT_FISH_AMPHIBIOUS, "TRAIT_FISH_CROSSBREEDER" = TRAIT_FISH_CROSSBREEDER, + "TRAIT_FISH_ELECTROGENESIS" = TRAIT_FISH_ELECTROGENESIS, "TRAIT_FISH_FED_LUBE" = TRAIT_FISH_FED_LUBE, "TRAIT_FISH_FLOPPING" = TRAIT_FISH_FLOPPING, "TRAIT_FISH_FROM_CASE" = TRAIT_FISH_FROM_CASE, "TRAIT_FISH_NO_HUNGER" = TRAIT_FISH_NO_HUNGER, "TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING, + "TRAIT_FISH_RECESSIVE" = TRAIT_FISH_RECESSIVE, "TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE, "TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS, + "TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER, "TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE, - "TRAIT_FISH_ELECTROGENESIS" = TRAIT_FISH_ELECTROGENESIS, "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, "TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH, ), diff --git a/code/_globalvars/traits/admin_tooling.dm b/code/_globalvars/traits/admin_tooling.dm index bad14b7b5e5..dd4456c0ccd 100644 --- a/code/_globalvars/traits/admin_tooling.dm +++ b/code/_globalvars/traits/admin_tooling.dm @@ -335,14 +335,19 @@ GLOBAL_LIST_INIT(admin_visible_traits, list( "TRAIT_MAGNETIC_ID_CARD" = TRAIT_MAGNETIC_ID_CARD, ), /obj/item/fish = list( + "TRAIT_FISH_AMPHIBIOUS" = TRAIT_FISH_AMPHIBIOUS, "TRAIT_FISH_CROSSBREEDER" = TRAIT_FISH_CROSSBREEDER, + "TRAIT_FISH_ELECTROGENESIS" = TRAIT_FISH_ELECTROGENESIS, "TRAIT_FISH_FED_LUBE" = TRAIT_FISH_FED_LUBE, + "TRAIT_FISH_FROM_CASE" = TRAIT_FISH_FROM_CASE, "TRAIT_FISH_NO_HUNGER" = TRAIT_FISH_NO_HUNGER, "TRAIT_FISH_NO_MATING" = TRAIT_FISH_NO_MATING, + "TRAIT_FISH_RECESSIVE" = TRAIT_FISH_RECESSIVE, "TRAIT_FISH_SELF_REPRODUCE" = TRAIT_FISH_SELF_REPRODUCE, "TRAIT_FISH_STASIS" = TRAIT_FISH_STASIS, + "TRAIT_FISH_STINGER" = TRAIT_FISH_STINGER, "TRAIT_FISH_TOXIN_IMMUNE" = TRAIT_FISH_TOXIN_IMMUNE, - "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, + "TRAIT_RESIST_EMULSIFY" = TRAIT_RESIST_EMULSIFY, "TRAIT_YUCKY_FISH" = TRAIT_YUCKY_FISH, ), /obj/item/organ/internal/liver = list( diff --git a/code/controllers/subsystem/processing/fishing.dm b/code/controllers/subsystem/processing/fishing.dm index da10d3d631a..ca54141de82 100644 --- a/code/controllers/subsystem/processing/fishing.dm +++ b/code/controllers/subsystem/processing/fishing.dm @@ -1,7 +1,4 @@ -/** - * So far, only used by the fishing minigame. Feel free to rename it to something like veryfastprocess - * if you need one that fires 10 times a second - */ +/// subsystem for the fishing minigame processing. PROCESSING_SUBSYSTEM_DEF(fishing) name = "Fishing" - wait = 0.1 SECONDS + wait = 0.05 SECONDS // If you raise it to 0.1 SECONDS, you better also modify [datum/fish_movement/move_fish()] diff --git a/code/datums/components/bakeable.dm b/code/datums/components/bakeable.dm index afc71936f1b..93e96f65d58 100644 --- a/code/datums/components/bakeable.dm +++ b/code/datums/components/bakeable.dm @@ -93,11 +93,11 @@ var/list/asomnia_hadders = list() for(var/mob/smeller in get_hearers_in_view(DEFAULT_MESSAGE_RANGE, used_oven)) if(HAS_TRAIT(smeller, TRAIT_ANOSMIA)) - asomnia_hadders += smeller + asomnia_hadders += smeller if(positive_result) used_oven.visible_message( - span_notice("You smell something great coming from [used_oven]."), + span_notice("You smell something great coming from [used_oven]."), blind_message = span_notice("You smell something great..."), ignored_mobs = asomnia_hadders, ) diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index fa47d86a310..3854c1ad013 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -345,7 +345,6 @@ RC.reagents.trans_to(holder, reagent_volume, target_id = path_key, no_react = TRUE) surroundings -= RC amt -= reagent_volume - SEND_SIGNAL(RC.reagents, COMSIG_REAGENTS_CRAFTING_PING) // - [] TODO: Make this entire thing less spaghetti else surroundings -= RC RC.update_appearance(UPDATE_ICON) diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index 056f1e5791e..cff5c2fb4fe 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -523,13 +523,13 @@ Behavior that's still missing from this component that original food items had t /datum/component/edible/proc/apply_buff(mob/eater) var/buff var/recipe_complexity = get_recipe_complexity() - if(recipe_complexity == 0) + if(recipe_complexity <= 0) return var/obj/item/food/food = parent if(!isnull(food.crafted_food_buff)) buff = food.crafted_food_buff else - buff = pick_weight(GLOB.food_buffs[recipe_complexity]) + buff = pick_weight(GLOB.food_buffs[min(recipe_complexity, FOOD_COMPLEXITY_5)]) if(!isnull(buff)) var/mob/living/living_eater = eater var/atom/owner = parent @@ -590,10 +590,13 @@ Behavior that's still missing from this component that original food items had t /// Get the complexity of the crafted food /datum/component/edible/proc/get_recipe_complexity() + var/list/extra_complexity = list(0) + SEND_SIGNAL(parent, COMSIG_FOOD_GET_EXTRA_COMPLEXITY, extra_complexity) + var/complexity_to_add = extra_complexity[1] if(!HAS_TRAIT(parent, TRAIT_FOOD_CHEF_MADE) || !istype(parent, /obj/item/food)) - return 0 // It is factory made. Soulless. + return complexity_to_add // It is factory made. Soulless. var/obj/item/food/food = parent - return food.crafting_complexity + return food.crafting_complexity + complexity_to_add /// Get food quality adjusted according to eater's preferences /datum/component/edible/proc/get_perceived_food_quality(mob/living/carbon/human/eater) diff --git a/code/datums/elements/food/grilled_item.dm b/code/datums/elements/food/grilled_item.dm index de6c2ef41c1..74e772eb73c 100644 --- a/code/datums/elements/food/grilled_item.dm +++ b/code/datums/elements/food/grilled_item.dm @@ -28,6 +28,8 @@ if(grill_time > 30 SECONDS && isnull(this_food.GetComponent(/datum/component/edible))) this_food.AddComponent(/datum/component/edible, foodtypes = FRIED) + SEND_SIGNAL(this_food, COMSIG_ITEM_BARBEQUE_GRILLED) + /datum/element/grilled_item/Detach(atom/source, ...) source.name = initial(source.name) source.desc = initial(source.desc) diff --git a/code/datums/elements/food/microwavable.dm b/code/datums/elements/food/microwavable.dm index 8e7305545c0..5fdd4c084ad 100644 --- a/code/datums/elements/food/microwavable.dm +++ b/code/datums/elements/food/microwavable.dm @@ -44,6 +44,7 @@ var/efficiency = istype(used_microwave) ? used_microwave.efficiency : 1 SEND_SIGNAL(result, COMSIG_ITEM_MICROWAVE_COOKED, source, efficiency) + SEND_SIGNAL(source, COMSIG_ITEM_MICROWAVE_COOKED_FROM, result, efficiency) if(IS_EDIBLE(result) && (result_typepath != default_typepath)) BLACKBOX_LOG_FOOD_MADE(result.type) diff --git a/code/datums/elements/quality_food_ingredient.dm b/code/datums/elements/quality_food_ingredient.dm new file mode 100644 index 00000000000..e9bfec246c5 --- /dev/null +++ b/code/datums/elements/quality_food_ingredient.dm @@ -0,0 +1,71 @@ +///An element that adds extra food quality to any edible that was made from an atom with this attached. +/datum/element/quality_food_ingredient + element_flags = ELEMENT_BESPOKE + argument_hash_start_idx = 2 + ///The increase of recipe complexity (basically hardcoded food quality) of edibles made with this. + var/complexity_increase = 0 + +/datum/element/quality_food_ingredient/Attach(datum/target, complexity_increase) + . = ..() + if(!isatom(target)) + return ELEMENT_INCOMPATIBLE + if(HAS_TRAIT_FROM(target, TRAIT_QUALITY_FOOD_INGREDIENT, REF(src))) //It already has this element attached. + return + + src.complexity_increase = complexity_increase + + RegisterSignal(target, COMSIG_ATOM_USED_IN_CRAFT, PROC_REF(used_in_craft)) + RegisterSignal(target, COMSIG_ITEM_BAKED, PROC_REF(item_baked)) + RegisterSignal(target, COMSIG_ITEM_MICROWAVE_COOKED_FROM, PROC_REF(microwaved_from)) + RegisterSignal(target, COMSIG_ITEM_GRILLED, PROC_REF(item_grilled)) + RegisterSignals(target, list(COMSIG_ITEM_BARBEQUE_GRILLED, COMSIG_ITEM_FRIED), PROC_REF(simply_cooked)) + RegisterSignal(target, COMSIG_ITEM_USED_AS_INGREDIENT, PROC_REF(used_as_ingredient)) + +/datum/element/quality_food_ingredient/Detach(datum/source) + UnregisterSignal(source, list( + COMSIG_ATOM_USED_IN_CRAFT, + COMSIG_ITEM_BAKED, + COMSIG_ITEM_MICROWAVE_COOKED_FROM, + COMSIG_ITEM_GRILLED, + COMSIG_ITEM_BARBEQUE_GRILLED, + COMSIG_ITEM_FRIED, + COMSIG_ITEM_USED_AS_INGREDIENT, + COMSIG_FOOD_GET_EXTRA_COMPLEXITY, + )) + REMOVE_TRAIT(source, TRAIT_QUALITY_FOOD_INGREDIENT, REF(src)) + return ..() + +/datum/element/quality_food_ingredient/proc/used_in_craft(datum/source, atom/result) + SIGNAL_HANDLER + add_quality(result) + +/datum/element/quality_food_ingredient/proc/item_baked(datum/source, atom/baked_result) + SIGNAL_HANDLER + add_quality(baked_result) + +/datum/element/quality_food_ingredient/proc/microwaved_from(datum/source, atom/result) + SIGNAL_HANDLER + add_quality(result) + +/datum/element/quality_food_ingredient/proc/item_grilled(datum/source, atom/grill_result) + SIGNAL_HANDLER + add_quality(grill_result) + +/datum/element/quality_food_ingredient/proc/simply_cooked(datum/source) + SIGNAL_HANDLER + //The target of the food quality and the source are the same, there's no need to re-add the whole element. + RegisterSignal(source, COMSIG_FOOD_GET_EXTRA_COMPLEXITY, PROC_REF(add_complexity), TRUE) + ADD_TRAIT(source, TRAIT_QUALITY_FOOD_INGREDIENT, REF(src)) + +/datum/element/quality_food_ingredient/proc/used_as_ingredient(datum/source, atom/container) + SIGNAL_HANDLER + add_quality(container) + +/datum/element/quality_food_ingredient/proc/add_quality(atom/target) + target.AddElement(/datum/element/quality_food_ingredient, complexity_increase) + RegisterSignal(target, COMSIG_FOOD_GET_EXTRA_COMPLEXITY, PROC_REF(add_complexity), TRUE) + ADD_TRAIT(target, TRAIT_QUALITY_FOOD_INGREDIENT, REF(src)) + +/datum/element/quality_food_ingredient/proc/add_complexity(datum/source, list/extra_complexity) + SIGNAL_HANDLER + extra_complexity[1] += complexity_increase diff --git a/code/game/objects/items/food/meatdish.dm b/code/game/objects/items/food/meatdish.dm index 73cd1c9336c..bd21d32d609 100644 --- a/code/game/objects/items/food/meatdish.dm +++ b/code/game/objects/items/food/meatdish.dm @@ -36,6 +36,36 @@ w_class = WEIGHT_CLASS_SMALL starting_reagent_purity = 1.0 +/obj/item/food/fishmeat/quality + name = "quality fish fillet" + desc = "A fillet of some precious fish meat." + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 4, + /datum/reagent/consumable/nutriment/vitamin = 3, + ) + bite_consumption = 7 + crafting_complexity = FOOD_COMPLEXITY_1 + +/obj/item/food/fishmeat/quality/Initialize(mapload) + . = ..() + AddElement(/datum/element/quality_food_ingredient, FOOD_COMPLEXITY_1) + +/obj/item/food/fishmeat/salmon + name = "salmon fillet" + desc = "a chunky, fatty fillet of salmon meat." + icon_state = "salmon" + food_reagents = list( + /datum/reagent/consumable/nutriment/protein = 4, + /datum/reagent/consumable/nutriment/vitamin = 3, + /datum/reagent/consumable/nutriment/fat/oil = 2, + ) + bite_consumption = 4.5 + crafting_complexity = FOOD_COMPLEXITY_1 + +/obj/item/food/fishmeat/salmon/Initialize(mapload) + . = ..() + AddElement(/datum/element/quality_food_ingredient, FOOD_COMPLEXITY_1) + /obj/item/food/fishmeat/carp name = "carp fillet" desc = "A fillet of spess carp meat." diff --git a/code/game/turfs/open/ice.dm b/code/game/turfs/open/ice.dm index 481dcb6b847..dbfff2efc8f 100644 --- a/code/game/turfs/open/ice.dm +++ b/code/game/turfs/open/ice.dm @@ -15,10 +15,21 @@ clawfootstep = FOOTSTEP_HARD_CLAW heavyfootstep = FOOTSTEP_GENERIC_HEAVY rust_resistance = RUST_RESISTANCE_ORGANIC + var/can_make_hole = TRUE + var/static/list/tool_screentips = list( + TOOL_SHOVEL = list( + SCREENTIP_CONTEXT_LMB = "Dig fishing hole", + ), + TOOL_MINING = list( + SCREENTIP_CONTEXT_LMB = "Dig fishing hole", + ), + ) /turf/open/misc/ice/Initialize(mapload) . = ..() MakeSlippery(TURF_WET_PERMAFROST, INFINITY, 0, INFINITY, TRUE, FALSE) + if(can_make_hole) + AddElement(/datum/element/contextual_screentip_tools, tool_screentips) /turf/open/misc/ice/break_tile() return @@ -26,6 +37,28 @@ /turf/open/misc/ice/burn_tile() return +/turf/open/misc/ice/examine(mob/user) + . = ..() + if(can_make_hole) + . += span_info("You could use a [EXAMINE_HINT("shovel")] or a [EXAMINE_HINT("pick")] to dig a fishing hole here.") + +/turf/open/misc/ice/item_interaction(mob/living/user, obj/item/tool, list/modifiers) + if(!can_make_hole) + return NONE + if(tool.tool_behaviour != TOOL_SHOVEL && tool.tool_behaviour != TOOL_MINING) + return NONE + balloon_alert(user, "digging...") + playsound(src, 'sound/effects/shovel_dig.ogg', 50, TRUE) + if(!do_after(user, 5 SECONDS, src)) + return NONE + balloon_alert(user, "dug hole") + AddComponent(/datum/component/fishing_spot, GLOB.preset_fish_sources[/datum/fish_source/ice_fishing]) + add_overlay(mutable_appearance('icons/turf/overlays.dmi', "ice_hole")) + can_make_hole = FALSE + RemoveElement(/datum/element/contextual_screentip_tools, tool_screentips) + flags_1 &= ~HAS_CONTEXTUAL_SCREENTIPS_1 + return ITEM_INTERACT_SUCCESS + /turf/open/misc/ice/smooth icon_state = "ice_turf-255" base_icon_state = "ice_turf" @@ -40,11 +73,13 @@ /turf/open/misc/ice/icemoon/no_planet_atmos planetary_atmos = FALSE + can_make_hole = FALSE /turf/open/misc/ice/temperate baseturfs = /turf/open/misc/ice/temperate desc = "Somehow, it is not melting under these conditions. Must be some very thick ice. Just as slippery too." initial_gas_mix = COLD_ATMOS //it works with /turf/open/misc/asteroid/snow/temperatre + can_make_hole = FALSE //For when you want real, genuine ice in your kitchen's cold room. /turf/open/misc/ice/coldroom diff --git a/code/game/turfs/open/sand.dm b/code/game/turfs/open/sand.dm index c863e28231d..fb10d297e18 100644 --- a/code/game/turfs/open/sand.dm +++ b/code/game/turfs/open/sand.dm @@ -10,6 +10,10 @@ heavyfootstep = FOOTSTEP_GENERIC_HEAVY rust_resistance = RUST_RESISTANCE_ORGANIC +/turf/open/misc/beach/Initialize(mapload) + . = ..() + AddElement(/datum/element/lazy_fishing_spot, /datum/fish_source/sand) + /turf/open/misc/beach/ex_act(severity, target) return FALSE diff --git a/code/game/turfs/open/water.dm b/code/game/turfs/open/water.dm index 83987ee7b54..20c6215209a 100644 --- a/code/game/turfs/open/water.dm +++ b/code/game/turfs/open/water.dm @@ -21,7 +21,7 @@ var/immerse_overlay_color = "#5AAA88" /// Fishing element for this specific water tile - var/datum/fish_source/fishing_datum = /datum/fish_source/portal + var/datum/fish_source/fishing_datum = /datum/fish_source/river /turf/open/water/Initialize(mapload) . = ..() diff --git a/code/modules/fishing/aquarium/aquarium.dm b/code/modules/fishing/aquarium/aquarium.dm index bc3df83a797..f7698a80b43 100644 --- a/code/modules/fishing/aquarium/aquarium.dm +++ b/code/modules/fishing/aquarium/aquarium.dm @@ -399,9 +399,13 @@ new /obj/item/aquarium_prop/sand(src) new /obj/item/aquarium_prop/seaweed(src) - new /obj/item/fish/goldfish/gill(src) + if(prob(85)) + new /obj/item/fish/goldfish/gill(src) + reagents.add_reagent(/datum/reagent/consumable/nutriment, 2) + else + new /obj/item/fish/three_eyes/gill(src) + reagents.add_reagent(/datum/reagent/toxin/mutagen, 2) //three eyes goldfish feed on mutagen. - reagents.add_reagent(/datum/reagent/consumable/nutriment, 2) /obj/structure/aquarium/prefilled anchored = TRUE diff --git a/code/modules/fishing/aquarium/aquarium_kit.dm b/code/modules/fishing/aquarium/aquarium_kit.dm index a9dff21d83e..e8bf5e91040 100644 --- a/code/modules/fishing/aquarium/aquarium_kit.dm +++ b/code/modules/fishing/aquarium/aquarium_kit.dm @@ -58,7 +58,7 @@ name = "ominous fish case" /obj/item/storage/fish_case/syndicate/get_fish_type() - return pick(/obj/item/fish/donkfish, /obj/item/fish/emulsijack, /obj/item/fish/jumpercable) + return pick(/obj/item/fish/donkfish, /obj/item/fish/emulsijack, /obj/item/fish/jumpercable, /obj/item/fish/chainsawfish) /obj/item/storage/fish_case/tiziran name = "imported fish case" diff --git a/code/modules/fishing/bait.dm b/code/modules/fishing/bait.dm index 78d18aa539e..8eb8911a864 100644 --- a/code/modules/fishing/bait.dm +++ b/code/modules/fishing/bait.dm @@ -61,3 +61,21 @@ bait_type = /obj/item/food/bait/doughball/synthetic/super uses_left = 12 + +/// Helper proc that checks if a bait matches identifier from fav/disliked bait list +/proc/is_matching_bait(obj/item/bait, identifier) + if(ispath(identifier)) //Just a path + return istype(bait, identifier) + if(islist(identifier)) + var/list/special_identifier = identifier + switch(special_identifier["Type"]) + 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 + return HAS_TRAIT(bait, identifier) + diff --git a/code/modules/fishing/fish/_fish.dm b/code/modules/fishing/fish/_fish.dm index e5e522b4302..6c662163464 100644 --- a/code/modules/fishing/fish/_fish.dm +++ b/code/modules/fishing/fish/_fish.dm @@ -6,17 +6,19 @@ icon_state = "bugfish" lefthand_file = 'icons/mob/inhands/fish_lefthand.dmi' righthand_file = 'icons/mob/inhands/fish_righthand.dmi' - inhand_icon_state = "fish_normal" force = 6 + throwforce = 6 + throw_range = 8 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 = 5, /datum/reagent/consumable/liquidgibs = 5) obj_flags = UNIQUE_RENAME + item_flags = IMMUTABLE_SLOW|SLOWS_WHILE_IN_HAND /// Resulting width of aquarium visual icon - default size of "fish_greyscale" state - var/sprite_width = 3 + var/sprite_width = 5 /// Resulting height of aquarium visual icon - default size of "fish_greyscale" state var/sprite_height = 3 @@ -93,8 +95,8 @@ */ var/list/fish_traits = list() - /// Fishing behaviour - var/fish_ai_type = FISH_AI_DUMB + /// path to datums that dictate how the fish moves during the fishing minigame + var/fish_movement_type = /datum/fish_movement /// Base additive modifier to fishing difficulty var/fishing_difficulty_modifier = 0 @@ -121,6 +123,9 @@ /// Average weight for this fish type in grams var/average_weight = 1000 + ///The general deviation from the average weight and size this fish has in the wild + var/weight_size_deviation = 0.2 + /// When outside of an aquarium, these gases that are checked (as well as pressure and temp) to assert if the environment is safe or not. var/list/safe_air_limits = list( /datum/gas/oxygen = list(12, 100), @@ -203,7 +208,7 @@ . += span_notice("It weighs [weight] g.") ///Randomizes weight and size. -/obj/item/fish/proc/randomize_size_and_weight(base_size = average_size, base_weight = average_weight, deviation = 0.2) +/obj/item/fish/proc/randomize_size_and_weight(base_size = average_size, base_weight = average_weight, deviation = weight_size_deviation) var/size_deviation = 0.2 * base_size var/new_size = round(clamp(gaussian(base_size, size_deviation), average_size * 1/MAX_FISH_DEVIATION_COEFF, average_size * MAX_FISH_DEVIATION_COEFF)) @@ -214,38 +219,125 @@ ///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) - if(size && fillet_type) - RemoveElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS, screentip_verb = "Cut") + SEND_SIGNAL(src, COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT, new_size, new_weight) + if(size) + if(fillet_type) + RemoveElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS * num_fillets, screentip_verb = "Cut") + if(size > FISH_SIZE_TWO_HANDS_REQUIRED) + qdel(GetComponent(/datum/component/two_handed)) size = new_size + var/init_icon_state = initial(inhand_icon_state) switch(size) if(0 to FISH_SIZE_TINY_MAX) update_weight_class(WEIGHT_CLASS_TINY) - inhand_icon_state = "fish_small" + if(!init_icon_state) + inhand_icon_state = "fish_small" if(FISH_SIZE_TINY_MAX to FISH_SIZE_SMALL_MAX) - inhand_icon_state = "fish_small" + if(!init_icon_state) + inhand_icon_state = "fish_small" update_weight_class(WEIGHT_CLASS_SMALL) if(FISH_SIZE_SMALL_MAX to FISH_SIZE_NORMAL_MAX) - inhand_icon_state = "fish_normal" + if(!init_icon_state) + inhand_icon_state = "fish_normal" update_weight_class(WEIGHT_CLASS_NORMAL) if(FISH_SIZE_NORMAL_MAX to FISH_SIZE_BULKY_MAX) - inhand_icon_state = "fish_bulky" + if(!init_icon_state) + inhand_icon_state = "fish_bulky" update_weight_class(WEIGHT_CLASS_BULKY) - if(FISH_SIZE_BULKY_MAX to INFINITY) - inhand_icon_state = "fish_huge" + if(FISH_SIZE_BULKY_MAX to FISH_SIZE_HUGE_MAX) + if(!init_icon_state) + inhand_icon_state = "fish_huge" update_weight_class(WEIGHT_CLASS_HUGE) + if(FISH_SIZE_HUGE_MAX to INFINITY) + if(!init_icon_state) + inhand_icon_state = "fish_huge" + update_weight_class(WEIGHT_CLASS_GIGANTIC) + + if(size > FISH_SIZE_TWO_HANDS_REQUIRED) + inhand_icon_state = "[inhand_icon_state]_wielded" + AddComponent(/datum/component/two_handed, require_twohands = TRUE) + 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") + AddElement(/datum/element/processable, TOOL_KNIFE, fillet_type, num_fillets, 0.5 SECONDS * num_fillets, screentip_verb = "Cut") if(weight) for(var/reagent_type in grind_results) grind_results[reagent_type] /= FLOOR(weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR, 0.1) weight = new_weight + + if(weight >= FISH_WEIGHT_SLOWDOWN) + slowdown = round(((weight/FISH_WEIGHT_SLOWDOWN_DIVISOR)**FISH_WEIGHT_SLOWDOWN_EXPONENT)-1.3, 0.1) + drag_slowdown = round(slowdown * 0.5, 1) + else + slowdown = 0 + drag_slowdown = 0 + if(ismob(loc)) + var/mob/mob = loc + mob.update_equipment_speed_mods() + for(var/reagent_type in grind_results) grind_results[reagent_type] *= FLOOR(weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR, 0.1) + update_fish_force() + +///Reset weapon-related variables of this items and recalculates those values based on the fish weight and size. +/obj/item/fish/proc/update_fish_force() + force = initial(force) + throwforce = initial(throwforce) + throw_range = initial(throw_range) + demolition_mod = initial(demolition_mod) + attack_verb_continuous = initial(attack_verb_continuous) + attack_verb_simple = initial(attack_verb_simple) + hitsound = initial(hitsound) + damtype = initial(damtype) + attack_speed = initial(attack_speed) + block_chance = initial(block_chance) + armour_penetration = initial(armour_penetration) + wound_bonus = initial(wound_bonus) + bare_wound_bonus = initial(bare_wound_bonus) + toolspeed = initial(toolspeed) + + var/weight_rank = max(round(1 + log(2, weight/FISH_WEIGHT_FORCE_DIVISOR), 1), 1) + + throw_range -= weight_rank + get_force_rank() + + var/bonus_malus = weight_rank - w_class + if(bonus_malus) + calculate_fish_force_bonus(bonus_malus) + + throwforce = force + + SEND_SIGNAL(src, COMSIG_FISH_FORCE_UPDATED, weight_rank, bonus_malus) + +///A proc that makes the fish slightly stronger or weaker if there's a noticeable discrepancy between size and weight. +/obj/item/fish/proc/calculate_fish_force_bonus(bonus_malus) + demolition_mod += bonus_malus * 0.1 + attack_speed += bonus_malus * 0.1 + force = round(force * (1 + bonus_malus * 0.1), 0.1) + +/obj/item/fish/proc/get_force_rank() + switch(w_class) + if(WEIGHT_CLASS_TINY) + force -= 3 + attack_speed -= 0.1 SECONDS + if(WEIGHT_CLASS_NORMAL) + force += 2 + if(WEIGHT_CLASS_BULKY) + force += 5 + attack_speed += 0.1 SECONDS + if(WEIGHT_CLASS_HUGE) + force += 9 + attack_speed += 0.2 SECONDS + demolition_mod += 0.2 + if(WEIGHT_CLASS_GIGANTIC) + force += 13 + attack_speed += 0.4 SECONDS + demolition_mod += 0.4 + /** * 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; @@ -370,7 +462,7 @@ SEND_SIGNAL(src, COMSIG_FISH_LIFE, seconds_per_tick) -/obj/item/fish/proc/set_status(new_status) +/obj/item/fish/proc/set_status(new_status, silent = FALSE) if(status == new_status) return switch(new_status) @@ -384,12 +476,14 @@ status = FISH_DEAD STOP_PROCESSING(SSobj, src) stop_flopping() - var/message = span_notice(replacetext(death_text, "%SRC", "[src]")) - if(isaquarium(loc)) - loc.visible_message(message) - else - visible_message(message) + if(!silent) + var/message = span_notice(replacetext(death_text, "%SRC", "[src]")) + if(isaquarium(loc)) + loc.visible_message(message) + else + visible_message(message) update_appearance() + update_fish_force() SEND_SIGNAL(src, COMSIG_FISH_STATUS_CHANGED) /obj/item/fish/expose_reagents(list/reagents, datum/reagents/source, methods = TOUCH, volume_modifier = 1, show_message = TRUE) @@ -476,7 +570,7 @@ return FALSE if(!being_targeted && 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 + return aquarium.allow_breeding && health >= initial(health) * 0.8 && stable_population >= 1 && world.time >= breeding_wait /obj/item/fish/proc/try_to_reproduce() var/obj/structure/aquarium/aquarium = loc @@ -511,36 +605,48 @@ second_fish = other_fish break - if(!second_fish && !HAS_TRAIT(src, TRAIT_FISH_SELF_REPRODUCE)) - return FALSE + if(!second_fish) + if(!HAS_TRAIT(src, TRAIT_FISH_SELF_REPRODUCE)) + return FALSE + if(length(aquarium.tracked_fish_by_type[type]) >= stable_population) + return FALSE + + if(PERFORM_ALL_TESTS(fish_breeding) && second_fish && !length(evolution_types)) + return create_offspring(second_fish.type, second_fish) 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/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(src, second_fish, aquarium)) + if(evolution.check_conditions(second_fish, src, 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) + if(length(possible_evolutions)) + chosen_evolution = pick(possible_evolutions) + chosen_type = chosen_evolution.new_fish_type + else if(second_fish) + var/recessive = HAS_TRAIT(src, TRAIT_FISH_RECESSIVE) + var/recessive_partner = HAS_TRAIT(second_fish, TRAIT_FISH_RECESSIVE) + if(length(aquarium.tracked_fish_by_type[type]) >= stable_population) + if(recessive_partner && !recessive) + return FALSE + chosen_type = second_fish.type + else + if(recessive && !recessive_partner) chosen_type = second_fish.type + else if(recessive_partner && !recessive) + chosen_type = type else chosen_type = pick(second_fish.type, type) - else - chosen_type = type + else + chosen_type = type return create_offspring(chosen_type, second_fish, chosen_evolution) diff --git a/code/modules/fishing/fish/fish_evolution.dm b/code/modules/fishing/fish/fish_evolution.dm index e6e2f1d9570..4fcc35109a2 100644 --- a/code/modules/fishing/fish/fish_evolution.dm +++ b/code/modules/fishing/fish/fish_evolution.dm @@ -78,6 +78,7 @@ GLOBAL_LIST_INIT(fish_evolutions, init_subtypes_w_path_keys(/datum/fish_evolutio /datum/fish_evolution/purple_sludgefish probability = 5 new_fish_type = /obj/item/fish/sludgefish/purple + new_traits = list(/datum/fish_trait/recessive) removed_traits = list(/datum/fish_trait/no_mating) /datum/fish_evolution/mastodon @@ -85,7 +86,7 @@ GLOBAL_LIST_INIT(fish_evolutions, init_subtypes_w_path_keys(/datum/fish_evolutio 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." + conditions_note = "The fish (and its mate) needs 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 < 120 || source.weight < 3000) || (mate && (mate.size < 120 || mate.weight < 3000))) @@ -103,3 +104,21 @@ GLOBAL_LIST_INIT(fish_evolutions, init_subtypes_w_path_keys(/datum/fish_evolutio new_fish_type = /obj/item/fish/chasm_crab/ice required_temperature_min = MIN_AQUARIUM_TEMP+9 required_temperature_max = MIN_AQUARIUM_TEMP+10 + +/datum/fish_evolution/three_eyes + name = "Three-eyed Goldfish" + probability = 3 + new_fish_type = /obj/item/fish/three_eyes + new_traits = list(/datum/fish_trait/recessive) + +/datum/fish_evolution/chainsawfish + name = "Chainsawfish" + probability = 30 + new_fish_type = /obj/item/fish/chainsawfish + new_traits = list(/datum/fish_trait/predator, /datum/fish_trait/aggressive) + conditions_note = "The fish needs to be unusually big and aggressive" + +/datum/fish_evolution/chainsawfish/check_conditions(obj/item/fish/source, obj/item/fish/mate, obj/structure/aquarium/aquarium) + if(source.size >= 60 && source.size >= 1000 && (/datum/fish_trait/aggressive in source.fish_traits)) + return ..() + return FALSE diff --git a/code/modules/fishing/fish/fish_traits.dm b/code/modules/fishing/fish/fish_traits.dm index 76b0cc8691c..3667a038bff 100644 --- a/code/modules/fishing/fish/fish_traits.dm +++ b/code/modules/fishing/fish/fish_traits.dm @@ -37,6 +37,8 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) var/list/fish_whitelist /// Depending on the value, fish with trait will be reported as more or less difficult in the catalog. var/added_difficulty = 0 + /// Reagents added to the fish when gained + var/list/reagents_to_add /// 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) @@ -54,7 +56,11 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) /// Applies some special qualities to the fish that has been spawned /datum/fish_trait/proc/apply_to_fish(obj/item/fish/fish) - return + SHOULD_CALL_PARENT(TRUE) + if(reagents_to_add) + for(var/reagent in reagents_to_add) + add_to_reagents(fish, reagent, reagents_to_add[reagent]) + RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(process_reagents)) /// Applies some special qualities to basic mobs generated by fish (i.e. chasm chrab --> young lobstrosity --> lobstrosity). /datum/fish_trait/proc/apply_to_mob(mob/living/basic/mob) @@ -79,6 +85,37 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) fish.grind_results.Insert(1, reagent_type) fish.grind_results[reagent_type] = amount +/// Proc that handles adding reagents from the trait to the fillets from butchered fish. +/datum/fish_trait/proc/process_reagents(obj/item/fish/source, mob/living/user, obj/item/process_item, list/results) + SIGNAL_HANDLER + var/results_with_reagents = 0 + for(var/atom/result as anything in results) + if(result.reagents) + results_with_reagents++ + if(!results_with_reagents) + return + for(var/reagent in reagents_to_add) + var/amount = round(source.grind_results[reagent] / results_with_reagents, 0.1) + for(var/atom/result as anything in results) + result.reagents?.add_reagent(reagent, amount) + +/// Proc that adds or changes the venomous when the fish size and/or weight are updated +/datum/fish_trait/proc/add_venom(obj/item/fish/source, venom_path, new_weight, mult = 0.25) + if(source.size) + var/old_amount = max(round((source.weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR) * mult, 0.1), mult) + source.RemoveElement(/datum/element/venomous, venom_path, old_amount) + + var/new_amount = max(round((new_weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR) * mult, 0.1), mult) + source.AddElement(/datum/element/venomous, venom_path, new_amount) + +/// Proc that changes the venomous element based on if the fish is alive or dead (basically dead fish are weaker). +/datum/fish_trait/proc/change_venom_on_death(obj/item/fish/source, venom_path, live_mult, dead_mult) + var/live_amount = max(round((source.weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR) * live_mult, 0.1), live_mult) + var/dead_amount = max(round((source.weight/FISH_GRIND_RESULTS_WEIGHT_DIVISOR) * dead_mult, 0.1), dead_mult) + var/is_dead = source.status == FISH_DEAD + source.RemoveElement(/datum/element/venomous, venom_path, is_dead ? live_amount : dead_amount) + source.AddElement(/datum/element/venomous, venom_path, is_dead ? dead_amount : live_amount) + /datum/fish_trait/wary name = "Wary" catalog_description = "This fish will avoid visible fish lines, cloaked line recommended." @@ -110,7 +147,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) return if(HAS_TRAIT(rod.bait, TRAIT_OMNI_BAIT)) return - if(HAS_TRAIT(rod.bait, TRAIT_GOOD_QUALITY_BAIT) || HAS_TRAIT(rod.bait, TRAIT_GREAT_QUALITY_BAIT)) + if(!HAS_TRAIT(rod.bait, TRAIT_GOOD_QUALITY_BAIT) && !HAS_TRAIT(rod.bait, TRAIT_GREAT_QUALITY_BAIT)) .[MULTIPLICATIVE_FISHING_MOD] = 0 @@ -126,6 +163,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) .[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) @@ -170,7 +208,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) mob.obj_damage *= 1.3 /datum/fish_trait/heavy/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/minigame) - minigame.fish_idle_velocity -= 10 + minigame.mover.fish_idle_velocity -= 10 /datum/fish_trait/carnivore name = "Carnivore" @@ -211,6 +249,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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) @@ -250,6 +289,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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) @@ -269,6 +309,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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) /** @@ -282,8 +323,19 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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) +///Prevent offsprings of fish with this trait from being of the same type (unless self-mating or the partner also has the trait) +/datum/fish_trait/recessive + name = "Recessive" + catalog_description = "If crossbred, offsprings will always be of the mate species, unless it also possess the trait." + diff_traits_inheritability = 0 + +/datum/fish_trait/no_mating/apply_to_fish(obj/item/fish/fish) + . = ..() + ADD_TRAIT(fish, TRAIT_FISH_RECESSIVE, FISH_TRAIT_DATUM) + /datum/fish_trait/revival diff_traits_inheritability = 15 name = "Self-Revival" @@ -291,6 +343,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) spontaneous_manifest_types = list(/obj/item/fish/boned = 100, /obj/item/fish/mastodon = 100) /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) @@ -319,6 +372,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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) @@ -327,7 +381,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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 + if(victim.size < source.size * 0.7) // 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 @@ -337,31 +391,35 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) /datum/fish_trait/yucky name = "Yucky" catalog_description = "This fish tastes so repulsive, other fishes won't try to eat it." + reagents_to_add = list(/datum/reagent/yuck = 3) /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) - add_to_reagents(fish, /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." + catalog_description = "This fish contains toxins. Feeding it to predatory fishes or people is not reccomended." diff_traits_inheritability = 25 + reagents_to_add = list(/datum/reagent/toxin/tetrodotoxin = 2.5) /datum/fish_trait/toxic/apply_to_fish(obj/item/fish/fish) - RegisterSignal(fish, COMSIG_ATOM_PROCESSED, PROC_REF(add_toxin)) + . = ..() + RegisterSignal(fish, COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT, PROC_REF(make_venomous)) + RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(on_status_change)) RegisterSignal(fish, COMSIG_FISH_EATEN_BY_OTHER_FISH, PROC_REF(on_eaten)) - add_to_reagents(fish, /datum/reagent/toxin/tetrodotoxin, 2.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/make_venomous(obj/item/fish/source, new_size, new_weight) + SIGNAL_HANDLER + if(!HAS_TRAIT(source, TRAIT_FISH_STINGER)) + return + add_venom(source, /datum/reagent/toxin/tetrodotoxin, new_weight, mult = source.status == FISH_DEAD ? 0.1 : 0.25) + +/datum/fish_trait/toxic/proc/on_status_change(obj/item/fish/source) + SIGNAL_HANDLER + if(!HAS_TRAIT(source, TRAIT_FISH_STINGER)) + return + change_venom_on_death(source, /datum/reagent/toxin/tetrodotoxin, 0.25, 0.1) /datum/fish_trait/toxic/proc/on_eaten(obj/item/fish/source, obj/item/fish/predator) if(HAS_TRAIT(predator, TRAIT_FISH_TOXIN_IMMUNE)) @@ -388,6 +446,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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 @@ -398,6 +457,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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 @@ -407,6 +467,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) catalog_description = "This fish is aggressively 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) @@ -431,6 +492,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) added_difficulty = 5 /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/apply_to_mob(mob/living/basic/mob) @@ -448,6 +510,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) 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 @@ -460,6 +523,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) incompatible_traits = list(/datum/fish_trait/predator, /datum/fish_trait/necrophage) /datum/fish_trait/mixotroph/apply_to_fish(obj/item/fish/fish) + . = ..() ADD_TRAIT(fish, TRAIT_FISH_NO_HUNGER, FISH_TRAIT_DATUM) /datum/fish_trait/antigrav @@ -467,12 +531,13 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) inheritability = 75 diff_traits_inheritability = 25 catalog_description = "This fish will invert the gravity of the bait at random. May fall upward outside after being caught." - added_difficulty = 15 + added_difficulty = 20 /datum/fish_trait/antigrav/minigame_mod(obj/item/fishing_rod/rod, mob/fisherman, datum/fishing_challenge/minigame) minigame.special_effects |= FISHING_MINIGAME_RULE_ANTIGRAV /datum/fish_trait/antigrav/apply_to_fish(obj/item/fish/fish) + . = ..() fish.AddElement(/datum/element/forced_gravity, NEGATIVE_GRAVITY) /datum/fish_trait/antigrav/apply_to_mob(mob/living/basic/mob) @@ -489,6 +554,7 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) catalog_description = "This fish tends to die of stress when forced to be around too many other fish." /datum/fish_trait/anxiety/apply_to_fish(obj/item/fish/fish) + . = ..() RegisterSignal(fish, COMSIG_FISH_LIFE, PROC_REF(on_fish_life)) ///signal sent when the anxiety fish is fed, killing it if sharing contents with too many fish. @@ -511,24 +577,18 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) catalog_description = "This fish is electroreceptive, and will generate electric fields. Can be harnessed inside a bioelectric generator." /datum/fish_trait/electrogenesis/apply_to_fish(obj/item/fish/fish) + . = ..() ADD_TRAIT(fish, TRAIT_FISH_ELECTROGENESIS, FISH_TRAIT_DATUM) - RegisterSignal(fish, COMSIG_ITEM_ATTACK, PROC_REF(on_item_attack)) + RegisterSignal(fish, COMSIG_FISH_FORCE_UPDATED, PROC_REF(on_force_updated)) -/datum/fish_trait/electrogenesis/proc/on_item_attack(obj/item/fish/fish, mob/living/target, mob/living/user) +/datum/fish_trait/electrogenesis/proc/on_force_updated(obj/item/fish/fish, weight_rank, bonus_or_malus) SIGNAL_HANDLER - if(fish.status == FISH_ALIVE) - fish.force = 16 + fish.force += 10 - fish.w_class fish.damtype = BURN fish.attack_verb_continuous = list("shocks", "zaps") fish.attack_verb_simple = list("shock", "zap") fish.hitsound = 'sound/effects/sparks4.ogg' - else - fish.force = fish::force - fish.damtype = fish::damtype - fish.attack_verb_continuous = fish::attack_verb_continuous - fish.attack_verb_simple = fish::attack_verb_simple - fish.hitsound = fish::hitsound /datum/fish_trait/electrogenesis/apply_to_mob(mob/living/basic/mob) . = ..() @@ -546,3 +606,44 @@ GLOBAL_LIST_INIT(spontaneous_fish_traits, populate_spontaneous_fish_traits()) /datum/fish_trait/stunted/apply_to_mob(mob/living/basic/mob) . = ..() qdel(mob.GetComponent(/datum/component/growth_and_differentiation)) + +/datum/fish_trait/stinger + name = "Stinger" + inheritability = 80 + diff_traits_inheritability = 35 + catalog_description = "This fish is equipped with a sharp stringer or bill capable of delivering damage and toxins." + spontaneous_manifest_types = list(/obj/item/fish/stingray = 100, /obj/item/fish/swordfish = 100, /obj/item/fish/chainsawfish = 100) + +/datum/fish_trait/stinger/apply_to_fish(obj/item/fish/fish) + . = ..() + ADD_TRAIT(fish, TRAIT_FISH_STINGER, FISH_TRAIT_DATUM) + RegisterSignal(fish, COMSIG_FISH_FORCE_UPDATED, PROC_REF(on_force_updated)) + +/datum/fish_trait/stinger/proc/on_force_updated(obj/item/fish/fish, weight_rank, bonus_or_malus) + SIGNAL_HANDLER + fish.force += 1 + fish.w_class + bonus_or_malus + +/datum/fish_trait/toxic_barbs + name = "Toxic Barbs" + catalog_description = "This fish' stinger, bill or otherwise, is coated with simple, yet effetive venom." + spontaneous_manifest_types = list(/obj/item/fish/stingray = 35) + +/datum/fish_trait/toxic_barbs/apply_to_fish(obj/item/fish/fish) + . = ..() + RegisterSignal(fish, COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT, PROC_REF(make_venomous)) + RegisterSignal(fish, COMSIG_FISH_STATUS_CHANGED, PROC_REF(on_status_change)) + +/datum/fish_trait/toxic_barbs/proc/make_venomous(obj/item/fish/source, new_size, new_weight) + SIGNAL_HANDLER + if(!HAS_TRAIT(source, TRAIT_FISH_STINGER)) + ///Remove the trait from the fish so it doesn't show on the analyzer as it doesn't do anything on stingerless ones. + source.fish_traits -= type + UnregisterSignal(source, list(COMSIG_FISH_UPDATE_SIZE_AND_WEIGHT, COMSIG_FISH_STATUS_CHANGED)) + return + add_venom(source, /datum/reagent/toxin/venom, new_weight, mult = source.status == FISH_DEAD ? 0.3 : 0.7) + +/datum/fish_trait/toxic_barbs/proc/on_status_change(obj/item/fish/source) + SIGNAL_HANDLER + if(!HAS_TRAIT(source, TRAIT_FISH_STINGER)) + return + change_venom_on_death(source, /datum/reagent/toxin/venom, 0.7, 0.3) diff --git a/code/modules/fishing/fish/fish_types.dm b/code/modules/fishing/fish/fish_types.dm index aa36c80696e..95027b75ea6 100644 --- a/code/modules/fishing/fish/fish_types.dm +++ b/code/modules/fishing/fish/fish_types.dm @@ -10,9 +10,12 @@ stable_population = 3 average_size = 30 average_weight = 500 + weight_size_deviation = 0.35 favorite_bait = list(/obj/item/food/bait/worm) required_temperature_min = MIN_AQUARIUM_TEMP+18 required_temperature_max = MIN_AQUARIUM_TEMP+26 + evolution_types = list(/datum/fish_evolution/three_eyes, /datum/fish_evolution/chainsawfish) + compatible_types = list(/obj/item/fish/goldfish/gill, /obj/item/fish/three_eyes, /obj/item/fish/three_eyes/gill) /obj/item/fish/goldfish/gill name = "McGill" @@ -21,6 +24,8 @@ random_case_rarity = FISH_RARITY_NOPE show_in_catalog = FALSE beauty = FISH_BEAUTY_GOOD + compatible_types = list(/obj/item/fish/goldfish, /obj/item/fish/three_eyes) + fish_traits = list(/datum/fish_trait/recessive) /obj/item/fish/angelfish name = "angelfish" @@ -63,13 +68,14 @@ required_temperature_max = MIN_AQUARIUM_TEMP+28 /obj/item/fish/catfish - name = "cory catfish" + name = "catfish" desc = "A catfish has about 100,000 taste buds, and their bodies are covered with them to help detect chemicals present in the water and also to respond to touch." icon_state = "catfish" dedicated_in_aquarium_icon_state = "fish_greyscale" aquarium_vc_color = "#907420" - average_size = 100 - average_weight = 2000 + average_size = 80 + average_weight = 1600 + weight_size_deviation = 0.35 stable_population = 3 favorite_bait = list( list( @@ -107,7 +113,7 @@ RegisterSignal(src, COMSIG_FISH_BEFORE_GROWING, PROC_REF(growth_checks)) RegisterSignal(src, COMSIG_FISH_FINISH_GROWING, PROC_REF(on_growth)) -/obj/item/fish/tadpole/set_status(new_status) +/obj/item/fish/tadpole/set_status(new_status, silent = FALSE) . = ..() if(status == FISH_DEAD) del_timerid = QDEL_IN_STOPPABLE(src, 12 SECONDS) @@ -159,6 +165,7 @@ evolution_types = null compatible_types = list(/obj/item/fish/clownfish) food = /datum/reagent/lube + fishing_difficulty_modifier = 5 beauty = FISH_BEAUTY_GREAT /obj/item/fish/cardinal @@ -200,7 +207,7 @@ average_weight = 500 stable_population = 3 disliked_bait = list(/obj/item/food/bait/worm, /obj/item/food/bait/doughball) - fish_ai_type = FISH_AI_ZIPPY + fish_movement_type = /datum/fish_movement/zippy required_temperature_min = MIN_AQUARIUM_TEMP+23 required_temperature_max = MIN_AQUARIUM_TEMP+28 @@ -216,10 +223,10 @@ stable_population = 3 required_temperature_min = MIN_AQUARIUM_TEMP+23 required_temperature_max = MIN_AQUARIUM_TEMP+28 + fillet_type = /obj/item/food/fishmeat/quality //Too bad they're poisonous fish_traits = list(/datum/fish_trait/heavy, /datum/fish_trait/toxic) beauty = FISH_BEAUTY_GOOD - /obj/item/fish/lanternfish name = "lanternfish" desc = "Typically found in areas below 6600 feet below the surface of the ocean, they live in complete darkness." @@ -230,8 +237,8 @@ source_height = 21 sprite_width = 8 sprite_height = 8 - average_size = 100 - average_weight = 1500 + average_size = 50 + average_weight = 1000 stable_population = 3 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. @@ -246,8 +253,8 @@ required_fluid_type = AQUARIUM_FLUID_SALTWATER stable_population = 2 fillet_type = /obj/item/food/fishmeat/moonfish - average_size = 100 - average_weight = 2000 + average_size = 60 + average_weight = 1000 required_temperature_min = MIN_AQUARIUM_TEMP+20 required_temperature_max = MIN_AQUARIUM_TEMP+30 beauty = FISH_BEAUTY_GOOD @@ -271,6 +278,7 @@ sprite_width = 7 required_fluid_type = AQUARIUM_FLUID_SALTWATER stable_population = 12 + breeding_timeout = 1 MINUTES fillet_type = null average_size = 20 average_weight = 300 @@ -285,10 +293,13 @@ dedicated_in_aquarium_icon_state = "armorfish_small" sprite_height = 5 sprite_width = 6 + average_size = 25 + average_weight = 350 required_fluid_type = AQUARIUM_FLUID_SALTWATER stable_population = 10 + breeding_timeout = 1.25 MINUTES fillet_type = /obj/item/food/fishmeat/armorfish - fish_ai_type = FISH_AI_SLOW + fish_movement_type = /datum/fish_movement/slow required_temperature_min = MIN_AQUARIUM_TEMP+10 required_temperature_max = MIN_AQUARIUM_TEMP+32 @@ -456,7 +467,7 @@ 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 + fish_movement_type = /datum/fish_movement/zippy favorite_bait = list( list( "Type" = "Foodtype", @@ -534,7 +545,7 @@ dedicated_in_aquarium_icon_state = "bonemass_small" sprite_width = 10 sprite_height = 7 - fish_ai_type = FISH_AI_ZIPPY + fish_movement_type = /datum/fish_movement/zippy random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS required_fluid_type = AQUARIUM_FLUID_ANY_WATER min_pressure = HAZARD_LOW_PRESSURE @@ -563,16 +574,16 @@ sprite_height = 7 show_in_catalog = FALSE random_case_rarity = FISH_RARITY_NOPE - fishing_difficulty_modifier = 5 + fishing_difficulty_modifier = 30 required_fluid_type = AQUARIUM_FLUID_ANY_WATER min_pressure = HAZARD_LOW_PRESSURE health = 300 - stable_population = 2 //This means they can only crossbreed. + stable_population = 1 //This means they can only crossbreed. grind_results = list(/datum/reagent/bone_dust = 5, /datum/reagent/consumable/liquidgibs = 5) fillet_type = /obj/item/stack/sheet/bone num_fillets = 2 feeding_frequency = 2 MINUTES - breeding_timeout = 10 MINUTES + breeding_timeout = 5 MINUTES average_size = 180 average_weight = 5000 death_text = "%SRC stops moving." @@ -605,7 +616,7 @@ return holo_area.linked.add_to_spawned(src) -/obj/item/fish/holo/set_status(new_status) +/obj/item/fish/holo/set_status(new_status, silent = FALSE) . = ..() if(status == FISH_DEAD) animate(src, alpha = 0, 3 SECONDS, easing = SINE_EASING) @@ -709,7 +720,7 @@ average_weight = 500 resistance_flags = FIRE_PROOF | LAVA_PROOF required_fluid_type = AQUARIUM_FLUID_ANY_WATER //if we can survive hot lava and freezing plasrivers, we can survive anything - fish_ai_type = FISH_AI_ZIPPY + fish_movement_type = /datum/fish_movement/zippy min_pressure = HAZARD_LOW_PRESSURE required_temperature_min = MIN_AQUARIUM_TEMP+30 required_temperature_max = MIN_AQUARIUM_TEMP+35 @@ -795,3 +806,404 @@ //anxiety naturally limits the amount of zipzaps per tank, so they are stronger alone electrogenesis_power = 20 MEGA JOULES beauty = FISH_BEAUTY_GOOD + +/obj/item/fish/sockeye_salmon + name = "sockeye salmon" + desc = "A fairly common and iconic salmon endemic of the Pacific Ocean. At some point imported into outer space, where we're now." + icon_state = "sockeye" + dedicated_in_aquarium_icon_state = "sockeye_small" + sprite_width = 6 + sprite_height = 4 + stable_population = 6 + required_temperature_min = MIN_AQUARIUM_TEMP+3 + required_temperature_max = MIN_AQUARIUM_TEMP+19 + required_fluid_type = AQUARIUM_FLUID_ANADROMOUS + fillet_type = /obj/item/food/fishmeat/salmon + beauty = FISH_BEAUTY_GOOD + +/obj/item/fish/arctic_char + name = "arctic char" + desc = "A cold-water anadromous fish widespread around the Northern Hemisphere of Earth, yet it has somehow found a way here." + icon_state = "arctic_char" + dedicated_in_aquarium_icon_state = "arctic_char" + sprite_width = 7 + sprite_height = 4 + stable_population = 6 + average_size = 60 + average_weight = 1200 + weight_size_deviation = 0.5 // known for their size dismophism + required_temperature_min = MIN_AQUARIUM_TEMP+3 + required_temperature_max = MIN_AQUARIUM_TEMP+19 + required_fluid_type = AQUARIUM_FLUID_ANADROMOUS + +/obj/item/fish/stingray + name = "stingray" + desc = "A type of ray, most known for its venomous stinger. Despite that, They're normally docile, if not a bit easily frightened." + icon_state = "stingray" + dedicated_in_aquarium_icon_state = "stingray_small" + stable_population = 4 + sprite_height = 7 + sprite_width = 8 + average_size = 60 + average_weight = 700 + beauty = FISH_BEAUTY_GREAT + random_case_rarity = FISH_RARITY_RARE + required_fluid_type = AQUARIUM_FLUID_SALTWATER //Someone ought to add river rays later I guess. + fish_traits = list(/datum/fish_trait/stinger, /datum/fish_trait/toxic_barbs, /datum/fish_trait/wary, /datum/fish_trait/carnivore, /datum/fish_trait/predator) + +/obj/item/fish/sand_surfer + name = "sand surfer" + desc = "A bronze alien \"fish\" living and swimming underneath faraway sandy places." + icon_state = "sand_surfer" + dedicated_in_aquarium_icon_state = "sand_surfer_small" + sprite_height = 6 + sprite_width = 6 + stable_population = 5 + average_size = 65 + average_weight = 1100 + weight_size_deviation = 0.35 + random_case_rarity = FISH_RARITY_RARE + required_fluid_type = AQUARIUM_FLUID_AIR + required_temperature_min = MIN_AQUARIUM_TEMP+25 + required_temperature_max = MIN_AQUARIUM_TEMP+60 + fish_movement_type = /datum/fish_movement/plunger + fishing_difficulty_modifier = 5 + fish_traits = list(/datum/fish_trait/shiny_lover) + beauty = FISH_BEAUTY_GOOD + +/obj/item/fish/sand_crab + name = "burrower crab" + desc = "A sand-dwelling crustacean. It looks like a crab and tastes like a crab, but waddles like a fish." + icon_state = "crab" + dedicated_in_aquarium_icon_state = "crab_small" + sprite_height = 6 + sprite_width = 10 + average_size = 60 + average_weight = 1000 + weight_size_deviation = 0.1 + required_fluid_type = AQUARIUM_FLUID_SALTWATER + required_temperature_min = MIN_AQUARIUM_TEMP+20 + required_temperature_max = MIN_AQUARIUM_TEMP+40 + fillet_type = /obj/item/food/meat/slab/rawcrab + fish_traits = list(/datum/fish_trait/amphibious, /datum/fish_trait/shiny_lover, /datum/fish_trait/carnivore) + fish_movement_type = /datum/fish_movement/slow + favorite_bait = list( + list( + "Type" = "Foodtype", + "Value" = SEAFOOD, + ), + ) + +/obj/item/fish/bumpy + name = "bump-fish" + desc = "An misshapen fish-thing all covered in stubby little tendrils" + icon_state = "bumpy" + dedicated_in_aquarium_icon_state = "bumpy_small" + sprite_height = 4 + sprite_width = 5 + stable_population = 4 + required_fluid_type = AQUARIUM_FLUID_ANY_WATER + required_temperature_min = MIN_AQUARIUM_TEMP+15 + required_temperature_max = MIN_AQUARIUM_TEMP+40 + beauty = FISH_BEAUTY_BAD + fish_traits = list(/datum/fish_trait/amphibious, /datum/fish_trait/vegan) + favorite_bait = list( + list( + "Type" = "Foodtype", + "Value" = VEGETABLES, + ), + ) + +/obj/item/fish/three_eyes + name = "three-eyed goldfish" + desc = "A goldfish with an extra half a pair of eyes. You wonder what it's been feeding on lately..." + icon_state = "three_eyes" + sprite_width = 8 + sprite_height = 8 + average_size = 30 + average_weight = 500 + stable_population = 4 + fish_traits = list(/datum/fish_trait/recessive, /datum/fish_trait/shiny_lover) + compatible_types = list(/obj/item/fish/goldfish, /obj/item/fish/goldfish/gill, /obj/item/fish/three_eyes/gill) + beauty = FISH_BEAUTY_GOOD + fishing_difficulty_modifier = 10 + random_case_rarity = FISH_RARITY_VERY_RARE + food = /datum/reagent/toxin/mutagen + favorite_bait = list( + list( + "Type" = "Reagent", + "Value" = /datum/reagent/toxin/mutagen, + "Amount" = 3, + ), + ) + +/obj/item/fish/three_eyes/gill + name = "McGill" + desc = "A great rubber duck tool for Lawyers who can't get a grasp over their case. It looks kinda different today..." + compatible_types = list(/obj/item/fish/goldfish, /obj/item/fish/three_eyes) + beauty = FISH_BEAUTY_GREAT + show_in_catalog = FALSE + stable_population = 1 + random_case_rarity = FISH_RARITY_NOPE + +/obj/item/fish/swordfish + name = "swordfish" + desc = "A large billfish, most famous for its elongated bill, while also fairly popular for cooking, and as a fearsome weapon in the hands of a veteran spess-fisherman." + icon = 'icons/obj/structures/aquarium/wide.dmi' + icon_state = "swordfish" + inhand_icon_state = "swordfish" + dedicated_in_aquarium_icon = 'icons/obj/structures/aquarium/fish.dmi' + dedicated_in_aquarium_icon_state = "swordfish_small" + force = 18 + sharpness = SHARP_EDGED + attack_verb_continuous = list("slashes", "cuts", "pierces") + attack_verb_simple = list("slash", "cut", "pierce") + block_sound = 'sound/weapons/parry.ogg' + hitsound = 'sound/weapons/rapierhit.ogg' + demolition_mod = 0.75 + attack_speed = 1 SECONDS + block_chance = 50 + wound_bonus = 10 + bare_wound_bonus = 20 + armour_penetration = 75 + base_pixel_x = -18 + pixel_x = -18 + sprite_width = 13 + sprite_height = 6 + stable_population = 3 + average_size = 140 + average_weight = 4000 + breeding_timeout = 4.5 MINUTES + feeding_frequency = 4 MINUTES + health = 180 + beauty = FISH_BEAUTY_EXCELLENT + random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS + required_fluid_type = AQUARIUM_FLUID_SALTWATER + fish_movement_type = /datum/fish_movement/plunger + fishing_difficulty_modifier = 25 + fillet_type = /obj/item/food/fishmeat/quality + favorite_bait = list( + list( + "Type" = "Foodtype", + "Value" = SEAFOOD, + ), + ) + fish_traits = list(/datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/stinger) + +/obj/item/fish/swordfish/get_force_rank() + switch(w_class) + if(WEIGHT_CLASS_TINY) + force -= 11 + attack_speed -= 0.4 SECONDS + block_chance -= 45 + armour_penetration -= 20 + wound_bonus -= 15 + bare_wound_bonus -= 20 + if(WEIGHT_CLASS_SMALL) + force -= 8 + attack_speed -= 0.3 SECONDS + block_chance -= 30 + armour_penetration -= 15 + wound_bonus -= 10 + bare_wound_bonus -= 20 + if(WEIGHT_CLASS_NORMAL) + force -= 5 + attack_speed -= 0.2 SECONDS + block_chance -= 20 + armour_penetration -= 10 + wound_bonus -= 10 + bare_wound_bonus -= 15 + if(WEIGHT_CLASS_BULKY) + force -= 3 + attack_speed -= 0.1 SECONDS + block_chance -= 10 + armour_penetration -= 5 + wound_bonus -= 5 + bare_wound_bonus -= 10 + if(WEIGHT_CLASS_GIGANTIC) + force += 5 + attack_speed += 0.2 SECONDS + demolition_mod += 0.15 + block_chance += 10 + armour_penetration += 5 + wound_bonus += 5 + bare_wound_bonus += 10 + + if(status == FISH_DEAD) + force -= 4 + w_class + block_chance -= 25 + armour_penetration -= 30 + wound_bonus -= 10 + bare_wound_bonus -= 10 + +/obj/item/fish/swordfish/calculate_fish_force_bonus(bonus_malus) + . = ..() + armour_penetration += bonus_malus * 5 + wound_bonus += bonus_malus * 3 + bare_wound_bonus += bonus_malus * 5 + block_chance += bonus_malus * 7 + +/obj/item/fish/chainsawfish + name = "chainsawfish" + desc = "A very, very angry bioweapon, whose sole purpose is to rip and tear." + icon = 'icons/obj/structures/aquarium/wide.dmi' + icon_state = "chainsawfish" + inhand_icon_state = "chainsawfish" + icon_state_dead = "chainsawfish_dead" + dedicated_in_aquarium_icon = 'icons/obj/structures/aquarium/fish.dmi' + dedicated_in_aquarium_icon_state = "chainsaw_small" + force = 22 + demolition_mod = 1.5 + block_chance = 15 + attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") + attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") + hitsound = 'sound/weapons/chainsawhit.ogg' + sharpness = SHARP_EDGED + tool_behaviour = TOOL_SAW + toolspeed = 0.5 + base_pixel_x = -16 + pixel_x = -16 + sprite_width = 8 + sprite_height = 5 + stable_population = 3 + average_size = 85 + average_weight = 2500 + breeding_timeout = 4.25 MINUTES + feeding_frequency = 3 MINUTES + health = 180 + beauty = FISH_BEAUTY_GREAT + random_case_rarity = FISH_RARITY_GOOD_LUCK_FINDING_THIS + required_fluid_type = AQUARIUM_FLUID_FRESHWATER + fish_movement_type = /datum/fish_movement/accelerando + fishing_difficulty_modifier = 30 + favorite_bait = list( + list( + "Type" = "Foodtype", + "Value" = GORE + ), + ) + fish_traits = list(/datum/fish_trait/aggressive, /datum/fish_trait/carnivore, /datum/fish_trait/predator, /datum/fish_trait/stinger) + required_temperature_min = MIN_AQUARIUM_TEMP+18 + required_temperature_max = MIN_AQUARIUM_TEMP+26 + +/obj/item/fish/chainsawfish/Initialize(mapload) + . = ..() + AddElement(/datum/element/update_icon_updates_onmob) + +/obj/item/fish/chainsawfish/update_icon_state() + if(status == FISH_DEAD) + inhand_icon_state = "chainsawfish_dead" + else + inhand_icon_state = "chainsawfish" + if(HAS_TRAIT(src, TRAIT_WIELDED)) + inhand_icon_state = "[inhand_icon_state]_wielded" + return ..() + +/obj/item/fish/chainsawfish/get_force_rank() + switch(w_class) + if(WEIGHT_CLASS_TINY) + force -= 10 + attack_speed -= 0.2 SECONDS + demolition_mod -= 0.4 + block_chance -= 15 + armour_penetration -= 10 + wound_bonus -= 10 + bare_wound_bonus -= 10 + toolspeed += 0.6 + if(WEIGHT_CLASS_SMALL) + force -= 8 + attack_speed -= 0.1 SECONDS + demolition_mod -= 0.3 + block_chance -= 10 + armour_penetration -= 10 + wound_bonus -= 10 + bare_wound_bonus -= 10 + toolspeed += 0.4 + if(WEIGHT_CLASS_NORMAL) + force -= 5 + demolition_mod -= 0.15 + block_chance -= 5 + armour_penetration -= 5 + wound_bonus -= 5 + bare_wound_bonus -= 5 + toolspeed += 0.2 + if(WEIGHT_CLASS_HUGE) + force += 2 + attack_speed += 0.2 SECONDS + demolition_mod += 0.15 + armour_penetration += 10 + block_chance += 10 + wound_bonus += 10 + bare_wound_bonus += 5 + if(WEIGHT_CLASS_GIGANTIC) + force += 4 + attack_speed += 0.4 SECONDS + demolition_mod += 0.3 + block_chance += 20 + armour_penetration += 20 + wound_bonus += 15 + bare_wound_bonus += 10 + toolspeed -= 0.1 + + if(status == FISH_DEAD) + force -= 8 + w_class + hitsound = SFX_SWING_HIT + block_chance -= 25 + demolition_mod -= 0.3 + armour_penetration -= 15 + wound_bonus -= 5 + bare_wound_bonus -= 5 + toolspeed += 1 + +/obj/item/fish/chainsawfish/calculate_fish_force_bonus(bonus_malus) + . = ..() + armour_penetration += bonus_malus * 3 + wound_bonus += bonus_malus * 2 + bare_wound_bonus += bonus_malus * 3 + block_chance += bonus_malus * 2 + toolspeed -= bonus_malus * 0.1 + +/obj/item/fish/soul + name = "soulfish" + desc = "A distant yet vaguely close critter, like a long lost relative. You feel your soul rejuvenated just from looking at it... Also, what the fuck is this shit?!" + icon_state = "soulfish" + dedicated_in_aquarium_icon_state = "soul_small" + sprite_width = 7 + sprite_height = 6 + average_size = 60 + average_weight = 1200 + stable_population = 4 + show_in_catalog = FALSE + beauty = FISH_BEAUTY_EXCELLENT + fish_movement_type = /datum/fish_movement/choppy //Glideless legacy movement? in my fishing minigame? + favorite_bait = list( + list( + "Type" = "Foodtype", + "Value" = FRIED + ), + ) + fillet_type = /obj/item/food/meat/cutlet/plain/human + required_temperature_min = MIN_AQUARIUM_TEMP+3 + required_temperature_max = MIN_AQUARIUM_TEMP+38 + random_case_rarity = FISH_RARITY_NOPE + +/obj/item/fish/skin_crab + name = "skin crab" + desc = "\"And on the eighth day, a demential mockery of both humanity and crabity was made.\" Fascinating." + icon_state = "skin_crab" + dedicated_in_aquarium_icon_state = "skin_crab_small" + sprite_width = 7 + sprite_height = 6 + average_size = 40 + average_weight = 750 + stable_population = 5 + show_in_catalog = FALSE + beauty = FISH_BEAUTY_GREAT + favorite_bait = list( + list( + "Type" = "Foodtype", + "Value" = FRIED + ), + ) + fillet_type = /obj/item/food/meat/slab/rawcrab + random_case_rarity = FISH_RARITY_NOPE diff --git a/code/modules/fishing/fish_movement.dm b/code/modules/fishing/fish_movement.dm new file mode 100644 index 00000000000..a328903617f --- /dev/null +++ b/code/modules/fishing/fish_movement.dm @@ -0,0 +1,214 @@ +/// Any lower than this, and the target position of the fish is considered null +#define FISH_TARGET_MIN_DISTANCE 6 +/// The friction applied to fish jumps, so that it decelerates over time +#define FISH_FRICTION_MULT 0.9 +/// Used to decide whether the fish can jump in a certain direction +#define FISH_SHORT_JUMP_MIN_DISTANCE 100 +/// The maximum distance for a short jump +#define FISH_SHORT_JUMP_MAX_DISTANCE 200 + +///Fish movements are simple datums, generated by the fishing minigame, that represent how the fish moves suring the minigame. +/datum/fish_movement + /// The minigame that spawned us + var/datum/fishing_challenge/master + /// How many times move_fish() has been called + var/times_fired = 0 + /// How likely the fish is to perform a standard jump, then multiplied by difficulty + var/short_jump_chance = 2.25 + /// How likely the fish is to perform a long jump, then multiplied by difficulty + var/long_jump_chance = 0.0625 + /// The speed limit for the short jump + var/short_jump_velocity_limit = 400 + /// The speed limit for the long jump + var/long_jump_velocity_limit = 200 + /// The current speed limit used + var/current_velocity_limit + /// The base velocity of the fish, which may affect jump distances and falling speed. + var/fish_idle_velocity = 0 + /// A position on the slider the fish wants to get to + var/target_position + /// If true, the fish can jump while a target position is set, thus overriding it + var/can_interrupt_move = TRUE + /// The current speed the fish is moving at + var/fish_velocity = 0 + +/datum/fish_movement/New(datum/fishing_challenge/master) + src.master = master + +/** + * Proc that adjusts movement values to the difficulty of the minigame. + * The operations can be a tad complex, but basically it ensures that jump + * chances with a probability higher than 1% increase in a smooth curve so that + * they still reach 100% prob when the difficulty peakes. + */ +/datum/fish_movement/proc/adjust_to_difficulty() + var/square_angle_rad = TORADIANS(90) + var/zero_one_difficulty = master.difficulty/100 + if(short_jump_chance > 1) + short_jump_chance = (zero_one_difficulty**(square_angle_rad-TORADIANS(arctan(short_jump_chance * 1/square_angle_rad))))*100 + else + short_jump_chance *= master.difficulty + if(long_jump_chance > 1) + long_jump_chance = (zero_one_difficulty**(square_angle_rad-TORADIANS(arctan(long_jump_chance * 1/square_angle_rad))))*100 + else + long_jump_chance *= master.difficulty + +///The main proc, called by minigame every SSfishing tick while it's in the 'active' phase. +/datum/fish_movement/proc/move_fish(seconds_per_tick) + times_fired++ + /** + * The jump chances are meant to run every odd tick (each every decisecond) + * We cannot do it every tick because the fish would be jumpier than intended + * and we cannot cut the chances in half to fit on each tick, because the maximum probability + * would go from 100% to 75%. + */ + var/can_roll = times_fired % 2 + + var/long_chance = long_jump_chance * seconds_per_tick * (1/seconds_per_tick) + var/short_chance = short_jump_chance * seconds_per_tick * (1/seconds_per_tick) + + // If we have the target but we're close enough, mark as target reached + if(abs(target_position - master.fish_position) < FISH_TARGET_MIN_DISTANCE) + target_position = null + + // Switching to new long jump target can interrupt any other + if(can_roll && (can_interrupt_move || isnull(target_position)) && prob(long_chance)) + /** + * Move at least 0.75 to full of the availible bar in given direction, + * and more likely to move in the direction where there's more space + */ + var/distance_from_top = FISHING_MINIGAME_AREA - master.fish_position - master.fish_height + var/distance_from_bottom = master.fish_position + var/top_chance + if(distance_from_top < FISH_SHORT_JUMP_MIN_DISTANCE) + top_chance = 0 + else + top_chance = (distance_from_top/max(distance_from_bottom, 1)) * 100 + var/new_target = master.fish_position + if(prob(top_chance)) + new_target += distance_from_top * rand(75, 100)/100 + else + new_target -= distance_from_bottom * rand(75, 100)/100 + target_position = round(new_target) + current_velocity_limit = long_jump_velocity_limit + + // Move towards target + if(!isnull(target_position)) + var/distance = target_position - master.fish_position + // about 5 at diff 15 , 10 at diff 30, 30 at diff 100 + var/acceleration_mult = get_acceleration(seconds_per_tick) + var/target_acceleration = distance * acceleration_mult * seconds_per_tick + + fish_velocity = fish_velocity * FISH_FRICTION_MULT + target_acceleration + else if(can_roll && prob(short_chance)) + var/distance_from_top = FISHING_MINIGAME_AREA - master.fish_position - master.fish_height + var/distance_from_bottom = master.fish_position + var/jump_length + if(distance_from_top >= FISH_SHORT_JUMP_MIN_DISTANCE) + jump_length = rand(FISH_SHORT_JUMP_MIN_DISTANCE, FISH_SHORT_JUMP_MAX_DISTANCE) + if(distance_from_bottom >= FISH_SHORT_JUMP_MIN_DISTANCE && (!jump_length || prob(50))) + jump_length = -rand(FISH_SHORT_JUMP_MIN_DISTANCE, FISH_SHORT_JUMP_MAX_DISTANCE) + target_position = clamp(master.fish_position + jump_length, 0, FISHING_MINIGAME_AREA - master.fish_height) + current_velocity_limit = short_jump_velocity_limit + + fish_velocity = clamp(fish_velocity + fish_idle_velocity, -current_velocity_limit, current_velocity_limit) + set_fish_position(seconds_per_tick) + +///Proc that returns the acceleration of the fish during the minigame. +/datum/fish_movement/proc/get_acceleration(seconds_per_tick) + return 0.3 * master.difficulty + 0.5 + +///Called at the end of move_fish(), for updating the position of the fish in the fishing minigame. +/datum/fish_movement/proc/set_fish_position(seconds_per_tick) + master.fish_position = clamp(master.fish_position + fish_velocity * seconds_per_tick, 0, FISHING_MINIGAME_AREA - master.fish_height) + +///Generic fish movement datum that only performs slow, uninterrupted long jumps +/datum/fish_movement/slow + short_jump_chance = 0 + long_jump_chance = 1.5 + long_jump_velocity_limit = 150 + can_interrupt_move = FALSE + +///Generic fish movement datum with triple the short jump chance. +/datum/fish_movement/zippy + short_jump_chance = parent_type::short_jump_chance * 3 + +///fish movement datum that progressively gets faster until acceleration and velocity are double the starting ones. +/datum/fish_movement/accelerando + ///The jump velocity to add each tick + var/short_jump_vel_add + ///The long jump velocity to add each tick + var/long_jump_vel_add + ///Time to reach full speed, in seconds. + var/accel_time_cap = 30 + +/datum/fish_movement/accelerando/move_fish(seconds_per_tick) + var/seconds_elapsed = (times_fired * seconds_per_tick) + if(seconds_elapsed >= accel_time_cap) + return ..() + if(!times_fired) //First tick, cache the initial jump velocities + short_jump_vel_add = short_jump_velocity_limit/accel_time_cap + long_jump_vel_add = long_jump_velocity_limit/accel_time_cap + return ..() + + if(current_velocity_limit) + var/vel_add = current_velocity_limit == short_jump_velocity_limit ? short_jump_vel_add : long_jump_vel_add + current_velocity_limit += round(vel_add * seconds_per_tick, 0.01) + + short_jump_velocity_limit += round(short_jump_vel_add * seconds_per_tick, 0.01) + long_jump_velocity_limit += round(long_jump_vel_add * seconds_per_tick, 0.01) + return ..() + +/datum/fish_movement/accelerando/get_acceleration(seconds_per_tick) + var/acceleration = ..() + return acceleration + min(acceleration, acceleration * times_fired * seconds_per_tick / accel_time_cap) + +/datum/fish_movement/accelerando/set_fish_position(seconds_per_tick) + fish_velocity = round(fish_velocity) + return ..() + +///Fish movement datum that updates the fish position twice per second. +/datum/fish_movement/choppy + ///We keep of the theorical fish position to eventually use + var/faux_position = 0 + +/datum/fish_movement/choppy/set_fish_position(seconds_per_tick) + faux_position = clamp(faux_position + fish_velocity * seconds_per_tick, 0, FISHING_MINIGAME_AREA - master.fish_height) + if(!((times_fired * SSfishing.wait) % (0.5 SECONDS))) + master.fish_position = faux_position + +///Fish movement datum that weakly pushes the fish up and then down with greater force once it reaches the top of the minigame. +/datum/fish_movement/plunger + ///Is the fish plunging to the bottom of the minigame area, or should it swim up? + var/is_plunging = TRUE + ///The added idle velocity when plunging + var/plunging_speed = -22 + +/datum/fish_movement/plunger/adjust_to_difficulty() + . = ..() + //Adjust the fleeing velocity, up to five times the initial value. + plunging_speed += round(plunging_speed * master.difficulty * 0.03) + fish_idle_velocity += plunging_speed //so it can be safely subtracted if the fish starts at the bottom. + +/datum/fish_movement/plunger/move_fish(seconds_per_tick) + var/fish_area = FISHING_MINIGAME_AREA - master.fish_height + if(is_plunging) + if(target_position > master.fish_position) //nothing should stop us from plunging. + target_position = null + var/dist_bot_percent = master.fish_position/fish_area + if(dist_bot_percent <= 0.04) + fish_idle_velocity -= plunging_speed + is_plunging = FALSE + else + var/dist_top_percent = (fish_area - master.fish_position)/fish_area + if(dist_top_percent <= 0.04) + fish_idle_velocity += plunging_speed + is_plunging = TRUE + + return ..() + + +#undef FISH_TARGET_MIN_DISTANCE +#undef FISH_FRICTION_MULT +#undef FISH_SHORT_JUMP_MIN_DISTANCE +#undef FISH_SHORT_JUMP_MAX_DISTANCE diff --git a/code/modules/fishing/fishing_minigame.dm b/code/modules/fishing/fishing_minigame.dm index 9c70d474a62..db01410d0e2 100644 --- a/code/modules/fishing/fishing_minigame.dm +++ b/code/modules/fishing/fishing_minigame.dm @@ -5,16 +5,6 @@ // UI minigame phase #define MINIGAME_PHASE 3 -/// The height of the minigame slider. Not in pixels, but minigame units. -#define FISHING_MINIGAME_AREA 1000 -/// Any lower than this, and the target position of the fish is considered null -#define FISH_TARGET_MIN_DISTANCE 6 -/// The friction applied to fish jumps, so that it decelerates over time -#define FISH_FRICTION_MULT 0.9 -/// Used to decide whether the fish can jump in a certain direction -#define FISH_SHORT_JUMP_MIN_DISTANCE 100 -/// The maximum distance for a short jump -#define FISH_SHORT_JUMP_MAX_DISTANCE 200 // Acceleration mod when bait is over fish #define FISH_ON_BAIT_ACCELERATION_MULT 0.6 /// The minimum velocity required for the bait to bounce @@ -47,8 +37,6 @@ var/start_time /// Is it finished (either by win/lose or window closing) var/completed = FALSE - /// Fish AI type to use - var/fish_ai = FISH_AI_DUMB /// Rule modifiers (eg weighted bait) var/special_effects = NONE /// A list of possible active minigame effects. If not empty, one will be picked from time to time. @@ -93,8 +81,6 @@ var/fish_position = 0 /// The position of the bait on the minigame slider var/bait_position = 0 - /// The current speed the fish is moving at - var/fish_velocity = 0 /// The current speed the bait is moving at var/bait_velocity = 0 @@ -105,22 +91,7 @@ /// How much completion is gained per second when the bait area is intersecting with the fish's var/completion_gain = 5 - /// How likely the fish is to perform a standard jump, then multiplied by difficulty - var/short_jump_chance = 2.25 - /// How likely the fish is to perform a long jump, then multiplied by difficulty - var/long_jump_chance = 0.0625 - /// The speed limit for the short jump - var/short_jump_velocity_limit = 400 - /// The speed limit for the long jump - var/long_jump_velocity_limit = 200 - /// The current speed limit used - var/current_velocity_limit = 200 - /// The base velocity of the fish, which may affect jump distances and falling speed. - var/fish_idle_velocity = 0 - /// A position on the slider the fish wants to get to - var/target_position - /// If true, the fish can jump while a target position is set, thus overriding it - var/can_interrupt_move = TRUE + var/datum/fish_movement/mover /// Whether the bait is idle or reeling up or down (left and right click) var/reeling_state = REELING_STATE_IDLE @@ -144,24 +115,21 @@ 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) - switch(fish_ai) - if(FISH_AI_ZIPPY) // Keeps on jumping - short_jump_chance *= 3 - if(FISH_AI_SLOW) // Only does long jump, and doesn't change direction until it gets there - short_jump_chance = 0 - long_jump_chance = 1.5 - long_jump_velocity_limit = 150 - long_jump_velocity_limit = FALSE + var/movement_path = initial(fish.fish_movement_type) + mover = new movement_path(src) // Apply fish trait modifiers var/list/fish_list_properties = collect_fish_properties() var/list/fish_traits = fish_list_properties[fish][NAMEOF(fish, fish_traits)] for(var/fish_trait in fish_traits) var/datum/fish_trait/trait = GLOB.fish_traits[fish_trait] trait.minigame_mod(rod, user, src) + else + mover = new /datum/fish_movement(src) + /// Enable special parameters if(rod.line) completion_gain += 1 // Any fishing line will provide a small boost by default @@ -198,22 +166,7 @@ if(HAS_MIND_TRAIT(user, TRAIT_REVEAL_FISH)) fish_icon = GLOB.specific_fish_icons[reward_path] || "fish" - /** - * If the chances are higher than 1% (100% at maximum difficulty), they'll scale - * less than proportionally (exponent less than 1) instead. - * This way we ensure fish with high jump chances won't get TOO jumpy until - * they near the maximum difficulty, at which they hit 100% - */ - var/square_angle_rad = TORADIANS(90) - var/zero_one_difficulty = difficulty/100 - if(short_jump_chance > 1) - short_jump_chance = (zero_one_difficulty**(square_angle_rad-TORADIANS(arctan(short_jump_chance * 1/square_angle_rad))))*100 - else - short_jump_chance *= difficulty - if(long_jump_chance > 1) - long_jump_chance = (zero_one_difficulty**(square_angle_rad-TORADIANS(arctan(long_jump_chance * 1/square_angle_rad))))*100 - else - long_jump_chance *= difficulty + mover.adjust_to_difficulty() bait_height -= round(difficulty * BAIT_HEIGHT_DIFFICULTY_MALUS) bait_pixel_height = round(MINIGAME_BAIT_HEIGHT * (bait_height/initial(bait_height)), 1) @@ -230,6 +183,7 @@ SStgui.close_uis(src) user = null used_rod = null + QDEL_NULL(mover) return ..() /datum/fishing_challenge/proc/send_alert(message) @@ -369,6 +323,14 @@ send_alert("crustacean!!!") if(FISH_ICON_BONE) send_alert("bones!!!") + if(FISH_ICON_ELECTRIC) + send_alert("zappy!!!") + if(FISH_ICON_WEAPON) + send_alert("weapon!!!") + if(FISH_ICON_CRITTER) + send_alert("critter!!!") + if(FISH_ICON_SEED) + send_alert("seed!!!") else send_alert("!!!") animate(lure, pixel_y = 3, time = 5, loop = -1, flags = ANIMATION_RELATIVE) @@ -413,6 +375,10 @@ completion *= 1.2 if(BITING_TIME_WINDOW - 0.5 SECONDS to BITING_TIME_WINDOW) completion *= 1.4 + //randomize the position of the fish a little + fish_position = rand(0, (FISHING_MINIGAME_AREA - fish_height) * 0.8) + var/diff_dist = 100 + difficulty + bait_position = clamp(round(fish_position + rand(-diff_dist, diff_dist) - bait_height * 0.5), 0, FISHING_MINIGAME_AREA - bait_height) if(!prepare_minigame_hud()) return phase = MINIGAME_PHASE @@ -465,7 +431,7 @@ /datum/fishing_challenge/process(seconds_per_tick) if(length(active_effects) && COOLDOWN_FINISHED(src, active_effect_cd)) select_active_effect() - move_fish(seconds_per_tick) + mover.move_fish(seconds_per_tick) move_bait(seconds_per_tick) if(!QDELETED(fishing_hud)) update_visuals() @@ -501,58 +467,6 @@ fishing_hud.icon_state = background current_active_effect = null -///The proc that moves the fish around, just like in the old TGUI, mostly. -/datum/fishing_challenge/proc/move_fish(seconds_per_tick) - var/long_chance = long_jump_chance * seconds_per_tick * 10 - var/short_chance = short_jump_chance * seconds_per_tick * 10 - - // If we have the target but we're close enough, mark as target reached - if(abs(target_position - fish_position) < FISH_TARGET_MIN_DISTANCE) - target_position = null - - // Switching to new long jump target can interrupt any other - if((can_interrupt_move || isnull(target_position)) && prob(long_chance)) - /** - * Move at least 0.75 to full of the availible bar in given direction, - * and more likely to move in the direction where there's more space - */ - var/distance_from_top = FISHING_MINIGAME_AREA - fish_position - fish_height - var/distance_from_bottom = fish_position - var/top_chance - if(distance_from_top < FISH_SHORT_JUMP_MIN_DISTANCE) - top_chance = 0 - else - top_chance = (distance_from_top/max(distance_from_bottom, 1)) * 100 - var/new_target = fish_position - if(prob(top_chance)) - new_target += distance_from_top * rand(75, 100)/100 - else - new_target -= distance_from_bottom * rand(75, 100)/100 - target_position = round(new_target) - current_velocity_limit = long_jump_velocity_limit - - // Move towards target - if(!isnull(target_position)) - var/distance = target_position - fish_position - // about 5 at diff 15 , 10 at diff 30, 30 at diff 100 - var/acceleration_mult = 0.3 * difficulty + 0.5 - var/target_acceleration = distance * acceleration_mult * seconds_per_tick - - fish_velocity = fish_velocity * FISH_FRICTION_MULT + target_acceleration - else if(prob(short_chance)) - var/distance_from_top = FISHING_MINIGAME_AREA - fish_position - fish_height - var/distance_from_bottom = fish_position - var/jump_length - if(distance_from_top >= FISH_SHORT_JUMP_MIN_DISTANCE) - jump_length = rand(FISH_SHORT_JUMP_MIN_DISTANCE, FISH_SHORT_JUMP_MAX_DISTANCE) - if(distance_from_bottom >= FISH_SHORT_JUMP_MIN_DISTANCE && (!jump_length || prob(50))) - jump_length = -rand(FISH_SHORT_JUMP_MIN_DISTANCE, FISH_SHORT_JUMP_MAX_DISTANCE) - target_position = clamp(fish_position + jump_length, 0, FISHING_MINIGAME_AREA - fish_height) - current_velocity_limit = short_jump_velocity_limit - - fish_velocity = clamp(fish_velocity + fish_idle_velocity, -current_velocity_limit, current_velocity_limit) - fish_position = clamp(fish_position + fish_velocity * seconds_per_tick, 0, FISHING_MINIGAME_AREA - fish_height) - ///The proc that moves the bait around, just like in the old TGUI, mostly. /datum/fishing_challenge/proc/move_bait(seconds_per_tick) var/should_bounce = abs(bait_velocity) > BAIT_MIN_VELOCITY_BOUNCE @@ -613,9 +527,7 @@ bait_velocity += velocity_change //check that the fish area is still intersecting the bait now that it has moved - fish_on_bait = (fish_position + fish_height >= bait_position) && (bait_position + bait_height >= fish_position) - - if(fish_on_bait) + if(is_fish_on_bait()) completion += completion_gain * seconds_per_tick if(completion >= 100) complete(TRUE) @@ -627,6 +539,10 @@ completion = clamp(completion, 0, 100) +///Returns TRUE if the fish and the bait are intersecting +/datum/fishing_challenge/proc/is_fish_on_bait() + return (fish_position + fish_height >= bait_position) && (bait_position + bait_height >= fish_position) + ///update the vertical pixel position of both fish and bait, and the icon state of the completion bar /datum/fishing_challenge/proc/update_visuals() var/bait_offset_mult = bait_position/FISHING_MINIGAME_AREA @@ -726,15 +642,6 @@ #undef BITING_PHASE #undef MINIGAME_PHASE -#undef FISHING_MINIGAME_AREA -#undef FISH_TARGET_MIN_DISTANCE -#undef FISH_FRICTION_MULT -#undef FISH_SHORT_JUMP_MIN_DISTANCE -#undef FISH_SHORT_JUMP_MAX_DISTANCE -#undef FISH_ON_BAIT_ACCELERATION_MULT -#undef BAIT_MIN_VELOCITY_BOUNCE -#undef BAIT_DECELERATION_MULT - #undef MINIGAME_SLIDER_HEIGHT #undef MINIGAME_BAIT_HEIGHT #undef MINIGAME_FISH_HEIGHT @@ -745,5 +652,9 @@ #undef REELING_STATE_UP #undef REELING_STATE_DOWN +#undef FISH_ON_BAIT_ACCELERATION_MULT +#undef BAIT_MIN_VELOCITY_BOUNCE +#undef BAIT_DECELERATION_MULT + #undef MAX_FISH_COMPLETION_MALUS #undef BITING_TIME_WINDOW diff --git a/code/modules/fishing/fishing_rod.dm b/code/modules/fishing/fishing_rod.dm index 33c8a0e6ff8..ece2f9d84af 100644 --- a/code/modules/fishing/fishing_rod.dm +++ b/code/modules/fishing/fishing_rod.dm @@ -107,8 +107,19 @@ var/mob/living/caught_mob = reward if(caught_mob.stat == DEAD) return - else if(!isfish(reward)) - return + else + if(!isfish(reward)) + return + var/obj/item/fish/fish = reward + if(HAS_TRAIT(bait, TRAIT_POISONOUS_BAIT) && !HAS_TRAIT(fish, TRAIT_FISH_TOXIN_IMMUNE)) + var/kill_fish = TRUE + for(var/bait_identifer in fish.favorite_bait) + if(is_matching_bait(bait, bait_identifer)) + kill_fish = FALSE + break + if(kill_fish) + fish.set_status(FISH_DEAD, silent = TRUE) + QDEL_NULL(bait) update_icon() diff --git a/code/modules/fishing/sources/_fish_source.dm b/code/modules/fishing/sources/_fish_source.dm index 4a0419f98f5..dc9b910ad8f 100644 --- a/code/modules/fishing/sources/_fish_source.dm +++ b/code/modules/fishing/sources/_fish_source.dm @@ -8,30 +8,48 @@ GLOBAL_LIST_INIT(preset_fish_sources, init_subtypes_w_path_keys(/datum/fish_sour * A lot of the icons here may be a tad inaccurate, but since we're limited to the free font awesome icons we * have access to, we got to make do. */ -GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list( - /mob/living/basic/carp = FISH_ICON_DEF, - /mob/living/basic/mining = FISH_ICON_HOSTILE, - /obj/effect/decal/remains = FISH_ICON_BONE, - /obj/effect/mob_spawn/corpse = FISH_ICON_BONE, - /obj/item/coin = FISH_ICON_COIN, - /obj/item/fish = FISH_ICON_DEF, - /obj/item/fish/armorfish = FISH_ICON_CRAB, - /obj/item/fish/boned = FISH_ICON_BONE, - /obj/item/fish/chasm_crab = FISH_ICON_CRAB, - /obj/item/fish/gunner_jellyfish = FISH_ICON_JELLYFISH, - /obj/item/fish/holo/crab = FISH_ICON_CRAB, - /obj/item/fish/holo/puffer = FISH_ICON_CHUNKY, - /obj/item/fish/mastodon = FISH_ICON_BONE, - /obj/item/fish/pufferfish = FISH_ICON_CHUNKY, - /obj/item/fish/slimefish = FISH_ICON_SLIME, - /obj/item/fish/sludgefish = FISH_ICON_SLIME, - /obj/item/fish/starfish = FISH_ICON_STAR, - /obj/item/storage/wallet = FISH_ICON_COIN, - /obj/item/stack/sheet/bone = FISH_ICON_BONE, - /obj/item/stack/sheet/mineral = FISH_ICON_GEM, - /obj/item/stack/ore = FISH_ICON_GEM, - /obj/structure/closet/crate = FISH_ICON_COIN, -))) +GLOBAL_LIST_INIT(specific_fish_icons, generate_specific_fish_icons()) + +/proc/generate_specific_fish_icons() + var/list/return_list = zebra_typecacheof(list( + /mob/living/basic/axolotl = FISH_ICON_CRITTER, + /mob/living/basic/frog = FISH_ICON_CRITTER, + /mob/living/basic/carp = FISH_ICON_DEF, + /mob/living/basic/mining = FISH_ICON_HOSTILE, + /obj/effect/decal/remains = FISH_ICON_BONE, + /obj/effect/mob_spawn/corpse = FISH_ICON_BONE, + /obj/item/coin = FISH_ICON_COIN, + /obj/item/fish = FISH_ICON_DEF, + /obj/item/fish/armorfish = FISH_ICON_CRAB, + /obj/item/fish/boned = FISH_ICON_BONE, + /obj/item/fish/chainsawfish = FISH_ICON_WEAPON, + /obj/item/fish/chasm_crab = FISH_ICON_CRAB, + /obj/item/fish/gunner_jellyfish = FISH_ICON_JELLYFISH, + /obj/item/fish/holo/crab = FISH_ICON_CRAB, + /obj/item/fish/holo/puffer = FISH_ICON_CHUNKY, + /obj/item/fish/jumpercable = FISH_ICON_ELECTRIC, + /obj/item/fish/lavaloop = FISH_ICON_WEAPON, + /obj/item/fish/mastodon = FISH_ICON_BONE, + /obj/item/fish/pufferfish = FISH_ICON_CHUNKY, + /obj/item/fish/sand_crab = FISH_ICON_CRAB, + /obj/item/fish/skin_crab = FISH_ICON_CRAB, + /obj/item/fish/slimefish = FISH_ICON_SLIME, + /obj/item/fish/sludgefish = FISH_ICON_SLIME, + /obj/item/fish/starfish = FISH_ICON_STAR, + /obj/item/fish/stingray = FISH_ICON_WEAPON, + /obj/item/fish/swordfish = FISH_ICON_WEAPON, + /obj/item/fish/zipzap = FISH_ICON_ELECTRIC, + /obj/item/seeds/grass = FISH_ICON_SEED, + /obj/item/seeds/random = FISH_ICON_SEED, + /obj/item/storage/wallet = FISH_ICON_COIN, + /obj/item/stack/sheet/bone = FISH_ICON_BONE, + /obj/item/stack/sheet/mineral = FISH_ICON_GEM, + /obj/item/stack/ore = FISH_ICON_GEM, + /obj/structure/closet/crate = FISH_ICON_COIN, + )) + + return_list[FISHING_RANDOM_SEED] = FISH_ICON_SEED + return return_list /** * Where the fish actually come from - every fishing spot has one assigned but multiple fishing holes @@ -45,6 +63,10 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list( var/list/fish_table = list() /// If a key from fish_table is present here, that fish is availible in limited quantity and is reduced by one on successful fishing var/list/fish_counts = list() + /// Any limited quantity stuff in this list will be readded to the counts after a while + var/list/fish_count_regen + /// A list of stuff that's currently waiting to be readded to fish_counts + var/list/currently_on_regen /// Text shown as baloon alert when you roll a dud in the table var/duds = list("it was nothing", "the hook is empty") /// Baseline difficulty for fishing in this spot @@ -198,16 +220,26 @@ GLOBAL_LIST_INIT(specific_fish_icons, zebra_typecacheof(list( /datum/fish_source/proc/simple_dispense_reward(reward_path, atom/spawn_location, turf/fishing_spot) if(isnull(reward_path)) return null - if((reward_path in fish_counts)) // This is limited count result + if(reward_path in fish_counts) // This is limited count result fish_counts[reward_path] -= 1 - if(!fish_counts[reward_path]) - fish_counts -= reward_path //Ran out of these since rolling (multiple fishermen on same source most likely) - fish_table -= reward_path + var/regen_time = fish_count_regen?[reward_path] + if(regen_time) + LAZYADDASSOC(currently_on_regen, reward_path, 1) + if(currently_on_regen[reward_path] == 1) + addtimer(CALLBACK(src, PROC_REF(regen_count), reward_path), regen_time) var/atom/movable/reward = spawn_reward(reward_path, spawn_location, fishing_spot) SEND_SIGNAL(src, COMSIG_FISH_SOURCE_REWARD_DISPENSED, reward) return reward +/datum/fish_source/proc/regen_count(reward_path, regen_time) + fish_counts[reward_path] += 1 + currently_on_regen[reward_path] -= 1 + if(!currently_on_regen[reward_path]) + LAZYREMOVE(currently_on_regen, reward_path) + else + addtimer(CALLBACK(src, PROC_REF(regen_count), reward_path), regen_time) + /// Spawns a reward from a atom path right where the fisherman is. Part of the dispense_reward() logic. /datum/fish_source/proc/spawn_reward(reward_path, atom/spawn_location, turf/fishing_spot) if(reward_path == FISHING_DUD) @@ -239,22 +271,13 @@ GLOBAL_LIST(fishing_property_cache) GLOB.fishing_property_cache = fish_property_table return GLOB.fishing_property_cache -/// Checks if bait matches identifier from fav/disliked bait list -/datum/fish_source/proc/is_matching_bait(obj/item/bait, identifier) - if(ispath(identifier)) //Just a path - return istype(bait, identifier) - if(islist(identifier)) - var/list/special_identifier = identifier - switch(special_identifier["Type"]) - 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 - return HAS_TRAIT(bait, identifier) +/// Returns the fish table, with with the unavailable items from fish_counts removed. +/datum/fish_source/proc/get_fish_table() + var/list/table = fish_table.Copy() + for(var/result in table) + if(fish_counts[result] == 0) + table -= result + return table /// Builds a fish weights table modified by bait/rod/user properties /datum/fish_source/proc/get_modified_fish_table(obj/item/fishing_rod/rod, mob/fisherman) @@ -364,13 +387,13 @@ GLOBAL_LIST(fishing_property_cache) for(var/i in 1 to (severity + 2)) if(!prob((100 + 100 * severity)/i * multiplier)) continue - var/reward_loot = pick_weight(fish_table) + var/reward_loot = pick_weight(get_fish_table()) var/atom/movable/reward = simple_dispense_reward(reward_loot, location, location) if(isnull(reward)) continue if(isfish(reward)) var/obj/item/fish/fish = reward - fish.set_status(FISH_DEAD) + fish.set_status(FISH_DEAD, silent = TRUE) if(isitem(reward)) reward.pixel_x = rand(-9, 9) reward.pixel_y = rand(-9, 9) diff --git a/code/modules/fishing/sources/source_types.dm b/code/modules/fishing/sources/source_types.dm index e7192bbd09c..5b4b6fe3624 100644 --- a/code/modules/fishing/sources/source_types.dm +++ b/code/modules/fishing/sources/source_types.dm @@ -1,32 +1,90 @@ /datum/fish_source/ocean fish_table = list( FISHING_DUD = 15, - /obj/item/coin/gold = 5, + /obj/item/coin/gold = 7, /obj/item/fish/clownfish = 15, /obj/item/fish/pufferfish = 15, /obj/item/fish/cardinal = 15, /obj/item/fish/greenchromis = 15, - /obj/item/fish/lanternfish = 5, - /obj/item/fish/zipzap = 5, - /obj/item/fish/clownfish/lube = 3, + /obj/item/fish/stingray = 10, + /obj/item/fish/lanternfish = 7, + /obj/item/fish/zipzap = 7, + /obj/item/fish/clownfish/lube = 5, + /obj/item/fish/swordfish = 5, /obj/structure/mystery_box/fishing = 1, ) fish_counts = list( /obj/item/fish/clownfish/lube = 2, + /obj/item/fish/swordfish = 2, /obj/structure/mystery_box/fishing = 1, ) + fish_count_regen = list( + /obj/item/fish/clownfish/lube = 3 MINUTES, + /obj/item/fish/swordfish = 5 MINUTES, + ) fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5 explosive_malus = TRUE /datum/fish_source/ocean/beach catalog_description = "Beach shore water" +/datum/fish_source/ice_fishing + catalog_description = "Ice-covered water" + fish_table = list( + FISHING_DUD = 4, + /obj/item/fish/arctic_char = 5, + /obj/item/fish/sockeye_salmon = 5, + /obj/item/fish/chasm_crab/ice = 2, + /obj/item/fish/boned = 1, + ) + fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 20 + +/datum/fish_source/river + catalog_description = "River water" + fish_table = list( + FISHING_DUD = 4, + /obj/item/fish/goldfish = 5, + /obj/item/fish/guppy = 5, + /obj/item/fish/angelfish = 4, + /obj/item/fish/catfish = 4, + /obj/item/fish/slimefish = 2, + /obj/item/fish/sockeye_salmon = 1, + /obj/item/fish/arctic_char = 1, + /obj/item/fish/three_eyes = 1, + ) + fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 5 + +/datum/fish_source/sand + catalog_description = "Sand" + fish_table = list( + FISHING_DUD = 8, + /obj/item/fish/sand_crab = 10, + /obj/item/fish/sand_surfer = 10, + /obj/item/fish/bumpy = 10, + /obj/item/coin/gold = 3, + ) + fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 20 + +/datum/fish_source/cursed_spring + catalog_description = null //it's a secret (sorta, I know you're reading this) + fish_table = list( + FISHING_DUD = 2, + /obj/item/fish/soul = 3, + /obj/item/fish/skin_crab = 3, + /obj/item/fishing_rod/telescopic/master = 1, + ) + fish_counts = list( + /obj/item/fishing_rod/telescopic/master = 1, + ) + fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 25 + /datum/fish_source/portal fish_table = list( FISHING_DUD = 7, /obj/item/fish/goldfish = 10, /obj/item/fish/guppy = 10, /obj/item/fish/angelfish = 10, + /obj/item/fish/three_eyes = 3, ) catalog_description = "Aquarium dimension (Fishing portal generator)" ///The name of this option shown in the radial menu on the fishing portal generator @@ -73,6 +131,14 @@ /obj/item/fish/needlefish = 5, /obj/item/fish/armorfish = 5, /obj/item/fish/zipzap = 5, + /obj/item/fish/stingray = 4, + /obj/item/fish/swordfish = 3, + ) + fish_counts = list( + /obj/item/fish/swordfish = 2, + ) + fish_count_regen = list( + /obj/item/fish/swordfish = 5 MINUTES, ) catalog_description = "Ocean dimension (Fishing portal generator)" fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 10 @@ -104,6 +170,13 @@ /obj/item/fish/donkfish = 5, /obj/item/fish/emulsijack = 5, /obj/item/fish/jumpercable = 5, + /obj/item/fish/chainsawfish = 3, + ) + fish_counts = list( + /obj/item/fish/chainsawfish = 1, + ) + fish_count_regen = list( + /obj/item/fish/chainsawfish = 7 MINUTES, ) catalog_description = "Syndicate dimension (Fishing portal generator)" radial_name = "Syndicate" @@ -130,6 +203,7 @@ ///rewards not found in other fishing portals fish_table = list( + /obj/item/fish/three_eyes = 3, /obj/item/fish/holo/checkered = 1, ) @@ -155,8 +229,8 @@ challenge.bait_bounce_mult = clamp(challenge.bait_bounce_mult + (rand(-3, 3) * 0.1), 0.1, 1) challenge.completion_loss = max(challenge.completion_loss + rand(-2, 2), 0) challenge.completion_gain = max(challenge.completion_gain + rand(-1, 1), 2) - challenge.short_jump_velocity_limit += rand(-100, 100) - challenge.long_jump_velocity_limit += rand(-100, 100) + challenge.mover.short_jump_velocity_limit += rand(-100, 100) + challenge.mover.long_jump_velocity_limit += rand(-100, 100) var/static/list/active_effects = bitfield_to_list(FISHING_MINIGAME_ACTIVE_EFFECTS) for(var/effect in active_effects) if(prob(30)) @@ -319,16 +393,19 @@ /obj/item/clothing/gloves/bracer = 2, /obj/effect/decal/remains/human = 2, /obj/item/fish/mastodon = 1, + /obj/item/fishing_rod/telescopic/master = 1, ) fish_counts = list( /obj/item/clothing/gloves/bracer = 1, /obj/effect/decal/remains/human = 1, /obj/item/fish/mastodon = 1, + /obj/item/fishing_rod/telescopic/master = 1, + ) + fish_count_regen = list( + /obj/item/fish/mastodon = 8 MINUTES, ) fishing_difficulty = FISHING_DEFAULT_DIFFICULTY + 15 -#define RANDOM_SEED "Random seed" - /datum/fish_source/hydro_tray catalog_description = "Hydroponics trays" fish_table = list( @@ -372,7 +449,7 @@ return ..() /datum/fish_source/hydro_tray/spawn_reward(reward_path, mob/fisherman, turf/fishing_spot) - if(reward_path != RANDOM_SEED) + if(reward_path != FISHING_RANDOM_SEED) var/mob/living/created_reward = ..() if(istype(created_reward)) created_reward.name = "small [created_reward.name]" @@ -393,5 +470,3 @@ var/picked_path = pick(seeds_to_draw_from) return new picked_path(get_turf(fishing_spot)) - -#undef RANDOM_SEED diff --git a/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm b/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm index 9e188d45856..7c674e98e24 100644 --- a/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm +++ b/code/modules/mapfluff/ruins/icemoonruin_code/hotsprings.dm @@ -14,6 +14,7 @@ baseturfs = /turf/open/water/cursed_spring planetary_atmos = TRUE initial_gas_mix = ICEMOON_DEFAULT_ATMOS + fishing_datum = /datum/fish_source/cursed_spring /turf/open/water/cursed_spring/Entered(atom/movable/arrived, atom/old_loc, list/atom/old_locs) . = ..() diff --git a/code/modules/power/cell.dm b/code/modules/power/cell.dm index a168150c7da..addb8cdb6b8 100644 --- a/code/modules/power/cell.dm +++ b/code/modules/power/cell.dm @@ -20,6 +20,11 @@ custom_materials = list(/datum/material/iron=SMALL_MATERIAL_AMOUNT*7, /datum/material/glass=SMALL_MATERIAL_AMOUNT*0.5) grind_results = list(/datum/reagent/lithium = 15, /datum/reagent/iron = 5, /datum/reagent/silicon = 5) +/obj/item/stock_parts/power_store/cell/Initialize(mapload) + . = ..() + ADD_TRAIT(src, TRAIT_FISHING_BAIT, INNATE_TRAIT) + ADD_TRAIT(src, TRAIT_POISONOUS_BAIT, INNATE_TRAIT) //bro is fishing using lithium... + /* Cell variants*/ /obj/item/stock_parts/power_store/cell/empty empty = TRUE diff --git a/code/modules/unit_tests/fish_unit_tests.dm b/code/modules/unit_tests/fish_unit_tests.dm index 5cb582ca969..1c5415596e6 100644 --- a/code/modules/unit_tests/fish_unit_tests.dm +++ b/code/modules/unit_tests/fish_unit_tests.dm @@ -76,10 +76,11 @@ incompatible_traits = list(/datum/fish_trait/dummy/two) inheritability = 100 diff_traits_inheritability = 100 + reagents_to_add = list(/datum/reagent = 10) /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) @@ -259,15 +260,17 @@ /datum/unit_test/explosive_fishing/Run() var/datum/fish_source/source = GLOB.preset_fish_sources[/datum/fish_source/unit_test] source.spawn_reward_from_explosion(run_loc_floor_bottom_left, 1) - if(length(source.fish_table)) + if(source.fish_counts[/obj/item/wrench]) TEST_FAIL("The unit test item wasn't removed/spawned from fish_table during 'spawn_reward_from_explosion'.") /datum/fish_source/unit_test fish_table = list( /obj/item/wrench = 1, + /obj/item/screwdriver = INFINITY, ) fish_counts = list( /obj/item/wrench = 1, + /obj/item/screwdriver = 0, ) #undef TRAIT_FISH_TESTING diff --git a/icons/hud/fishing_hud.dmi b/icons/hud/fishing_hud.dmi index f18ed7c6cfca903f7b2118ed9d6b342218ec2b2e..0a952615d58e70bbbea16967b5540e8c17bc0495 100644 GIT binary patch literal 4454 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 JE;mBN{s+m&4eS5_ literal 879 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 LNkvXXu0mjfjxOd# literal 880 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%0Ap@7FoEL%B#BQ|R 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 WW%V=9!BbTLyfhx^s8lFDjrt#jfK>(n literal 40829 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 XC71i>YX)075O8U#>8VyfeG&aXhE?Vj diff --git a/icons/obj/structures/aquarium/fish.dmi b/icons/obj/structures/aquarium/fish.dmi index 638c8300f304a001f1e8dcd2abb8a9f7e836cde1..73304ea6af173d406c557b22de03d9cafc7b1eb5 100644 GIT binary patch literal 37209 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 z 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 RW>EkD002ovPDHLkV1gSE4gLTC delta 502 zcmVV=-0C=2JR&a8W%1?hQE4cc(fK3JfpDr79 zEn2#z0003)Nkl9chbfqn2@1IK;?^@A8mupMn$jJd}7`zxl7@PE|BzPf7ZCIUm%tF1%ahDX}x48)7HE(rIh(=3jH8y_>`S4&4-zA%y(9# z=ThVE?Ci^|%);b52FVl?^zLYI&sSz04w0{@Am#!Cc{Oe&%kZ6m)UR-NVit$#^@6;T zw+NKIV;*!mP-xuBN6Y%U{@ey&h_?b=g*2j)%e@k^lez diff --git a/icons/turf/overlays.dmi b/icons/turf/overlays.dmi index 91ad71baada3f50fb06f5ef0ad188c52da6e106b..aa7b6b67a189ead67d97e60319cb4adbf77612fa 100644 GIT binary patch literal 49630 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%0DRM?gozAB1U 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 literal 50082 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 A$N&HU diff --git a/tgstation.dme b/tgstation.dme index afff6b31400..72a4ae195be 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1536,6 +1536,7 @@ #include "code\datums\elements\proficient_miner.dm" #include "code\datums\elements\projectile_drop.dm" #include "code\datums\elements\projectile_shield.dm" +#include "code\datums\elements\quality_food_ingredient.dm" #include "code\datums\elements\radiation_protected_clothing.dm" #include "code\datums\elements\radioactive.dm" #include "code\datums\elements\ranged_armour.dm" @@ -4160,6 +4161,7 @@ #include "code\modules\fishing\admin.dm" #include "code\modules\fishing\bait.dm" #include "code\modules\fishing\fish_catalog.dm" +#include "code\modules\fishing\fish_movement.dm" #include "code\modules\fishing\fishing_equipment.dm" #include "code\modules\fishing\fishing_minigame.dm" #include "code\modules\fishing\fishing_portal_machine.dm"