fish_source  
Where the fish actually come from - every fishing spot has one assigned but multiple fishing holes can share single source, ie single shared one for ocean/lavaland river
| Vars | |
| background | Background image name from /datum/asset/simple/fishing_minigame | 
|---|---|
| catalog_description | How the spot type is described in fish catalog section about fish sources, will be skipped if null | 
| currently_on_regen | A list of stuff that's currently waiting to be readded to fish_counts | 
| duds | Text shown as baloon alert when you roll a dud in the table | 
| explosive_fishing_score | If FISH_SOURCE_FLAG_EXPLOSIVE_MALUS is set, this will track of how much we're "exhausting" the system by bombing it repeatedly. | 
| fish_count_regen | Any limited quantity stuff in this list will be readded to the counts after a while | 
| fish_counts | If a key from fish_table is present here, that fish is availible in limited quantity and is reduced by one on successful fishing | 
| fish_table | Fish catch weight table - these are relative weights | 
| fishing_difficulty | Baseline difficulty for fishing in this spot. THIS IS ADDED TO THE DEFAULT DIFFICULTY OF THE MINIGAME (15) | 
| overlay_state | When selected by the fishing portal, this will be the icon_state of the overlay shown on the machine. | 
| profound_fisher_blacklist | Mindless mobs that can fish will never pull up items on this list | 
| radial_state | When linked to a fishing portal, this will be the icon_state of this option in the radial menu | 
| wait_time_range | If set, this overrides the upper and lower bounds of how long you should wait during the waiting phase of the minigame. | 
| weight_leveling_exponents | List of exponents used to level out the table weight differences between fish depending on bait quality. | 
| weight_result_multiplier | List of multipliers used to make fishes more common compared to everything else depending on bait quality, indexed from best to worst. | 
| Procs | |
| calculate_difficulty | Calculates the difficulty of the minigame: | 
| calculate_difficulty_minigame | Comsig proc from the fishing minigame for 'calculate_difficulty' | 
| dispense_reward | Gives out the reward if possible | 
| generate_wiki_contents | Called by /datum/autowiki/fish_sources unless the catalog entry for this fish source is null. It should Return a list of entries with keys named "name", "icon", "weight" and "notes" detailing the contents of this fish source. | 
| get_catchable_fish_names | Add a string with the names of catchable fishes to the examine text. | 
| get_fish_table | Returns the fish table, with with the unavailable items from fish_counts removed. | 
| get_modified_fish_table | Builds a fish weights table modified by bait/rod/user properties | 
| has_known_fishes | returns true if this fishing spot has fish that are shown in the catalog. | 
| interrupt_challenge | Proc called when the challenge is interrupted within the fish source code. | 
| level_out_fish | A proc that levels out the weights of various fish, leading to rarer fishes being more common. | 
| on_challenge_completed | Proc called when the COMSIG_MOB_COMPLETE_FISHING signal is sent. Check if we've succeeded. If so, write into memory and dispense the reward. | 
| on_fishing_spot_del | Called whenever a fishing spot with this fish source attached is deleted | 
| on_fishing_spot_init | Called when src is set as the fish source of a fishing spot component | 
| on_start_fishing | Called below above proc, in case the fishing source has anything to do that isn't denial | 
| pre_challenge_started | Used to register signals or add traits and the such right after conditions have been cleared and before the minigame starts. | 
| readd_fish | Called when releasing a fish in a fishing spot with the TRAIT_CATCH_AND_RELEASE trait. | 
| reason_we_cant_fish | Can we fish in this spot at all. Returns DENIAL_REASON or null if we're good to go | 
| roll_mindless_reward | Version of roll_reward() that blacklists objects that shouldn't be caught by ai-controlled mobs. | 
| roll_reward | Returns a typepath, instance or another special value which we use for dispensing a reward later. | 
| roll_reward_minigame | Comsig proc from the fishing minigame for 'roll_reward' | 
| simple_dispense_reward | Simplified version of dispense_reward that doesn't need a fisherman. | 
| spawn_reward | Spawns a reward from a atom path right where the fisherman is. Part of the dispense_reward() logic. | 
Var Details
background 
Background image name from /datum/asset/simple/fishing_minigame
catalog_description 
How the spot type is described in fish catalog section about fish sources, will be skipped if null
currently_on_regen  
A list of stuff that's currently waiting to be readded to fish_counts
duds 
Text shown as baloon alert when you roll a dud in the table
explosive_fishing_score 
If FISH_SOURCE_FLAG_EXPLOSIVE_MALUS is set, this will track of how much we're "exhausting" the system by bombing it repeatedly.
fish_count_regen  
Any limited quantity stuff in this list will be readded to the counts after a while
fish_counts  
If a key from fish_table is present here, that fish is availible in limited quantity and is reduced by one on successful fishing
fish_table  
Fish catch weight table - these are relative weights
fishing_difficulty 
Baseline difficulty for fishing in this spot. THIS IS ADDED TO THE DEFAULT DIFFICULTY OF THE MINIGAME (15)
overlay_state 
When selected by the fishing portal, this will be the icon_state of the overlay shown on the machine.
profound_fisher_blacklist  
Mindless mobs that can fish will never pull up items on this list
radial_state 
When linked to a fishing portal, this will be the icon_state of this option in the radial menu
wait_time_range  
If set, this overrides the upper and lower bounds of how long you should wait during the waiting phase of the minigame.
weight_leveling_exponents  
List of exponents used to level out the table weight differences between fish depending on bait quality.
weight_result_multiplier  
List of multipliers used to make fishes more common compared to everything else depending on bait quality, indexed from best to worst.
Proc Details
calculate_difficulty
Calculates the difficulty of the minigame:
This includes the source's fishing difficulty, that of the fish, the rod, favorite and disliked baits, fish traits and the fisherman skill.
For non-fish, it's just the source's fishing difficulty minus the fisherman skill.
calculate_difficulty_minigame
Comsig proc from the fishing minigame for 'calculate_difficulty'
dispense_reward
Gives out the reward if possible
generate_wiki_contents
Called by /datum/autowiki/fish_sources unless the catalog entry for this fish source is null. It should Return a list of entries with keys named "name", "icon", "weight" and "notes" detailing the contents of this fish source.
get_catchable_fish_names
Add a string with the names of catchable fishes to the examine text.
get_fish_table
Returns the fish table, with with the unavailable items from fish_counts removed.
get_modified_fish_table
Builds a fish weights table modified by bait/rod/user properties
has_known_fishes
returns true if this fishing spot has fish that are shown in the catalog.
interrupt_challenge
Proc called when the challenge is interrupted within the fish source code.
level_out_fish
A proc that levels out the weights of various fish, leading to rarer fishes being more common.
on_challenge_completed
Proc called when the COMSIG_MOB_COMPLETE_FISHING signal is sent. Check if we've succeeded. If so, write into memory and dispense the reward.
on_fishing_spot_del
Called whenever a fishing spot with this fish source attached is deleted
on_fishing_spot_init
Called when src is set as the fish source of a fishing spot component
on_start_fishing
Called below above proc, in case the fishing source has anything to do that isn't denial
pre_challenge_started
Used to register signals or add traits and the such right after conditions have been cleared and before the minigame starts.
readd_fish
Called when releasing a fish in a fishing spot with the TRAIT_CATCH_AND_RELEASE trait.
reason_we_cant_fish
Can we fish in this spot at all. Returns DENIAL_REASON or null if we're good to go
roll_mindless_reward
Version of roll_reward() that blacklists objects that shouldn't be caught by ai-controlled mobs.
roll_reward
Returns a typepath, instance or another special value which we use for dispensing a reward later.
roll_reward_minigame
Comsig proc from the fishing minigame for 'roll_reward'
simple_dispense_reward
Simplified version of dispense_reward that doesn't need a fisherman.
spawn_reward
Spawns a reward from a atom path right where the fisherman is. Part of the dispense_reward() logic.