/tg/ Station 13 - Modules - TypesVar Details - Proc Details

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

backgroundBackground image name from /datum/asset/simple/fishing_minigame
catalog_descriptionHow the spot type is described in fish catalog section about fish sources, will be skipped if null
currently_on_regenA list of stuff that's currently waiting to be readded to fish_counts
dudsText shown as baloon alert when you roll a dud in the table
exploded_turfsIf explosive_malus is true, this will be used to keep track of the turfs where an explosion happened for when we'll spawn the loot.
explosive_malusIt true, repeated and large explosions won't be as efficient. This is usually meant for global fish sources.
fish_count_regenAny limited quantity stuff in this list will be readded to the counts after a while
fish_countsIf a key from fish_table is present here, that fish is availible in limited quantity and is reduced by one on successful fishing
fish_tableFish catch weight table - these are relative weights
fishing_difficultyBaseline difficulty for fishing in this spot
profound_fisher_blacklistMindless mobs that can fish will never pull up items on this list

Procs

calculate_difficultyCalculates the difficulty of the minigame:
dispense_rewardGives out the reward if possible
get_catchable_fish_namesAdd a string with the names of catchable fishes to the examine text.
get_fish_tableReturns the fish table, with with the unavailable items from fish_counts removed.
get_modified_fish_tableBuilds a fish weights table modified by bait/rod/user properties
has_known_fishesreturns true if this fishing spot has fish that are shown in the catalog.
interrupt_challengeProc called when the challenge is interrupted within the fish source code.
on_challenge_completedProc called when the COMSIG_FISHING_CHALLENGE_COMPLETED signal is sent. Check if we've succeeded. If so, write into memory and dispense the reward.
on_fishing_spot_delCalled whenever a fishing spot with this fish source attached is deleted
on_fishing_spot_initCalled when src is set as the fish source of a fishing spot component
on_start_fishingCalled below above proc, in case the fishing source has anything to do that isn't denial
pre_challenge_startedUsed to register signals or add traits and the such right after conditions have been cleared and before the minigame starts.
reason_we_cant_fishCan we fish in this spot at all. Returns DENIAL_REASON or null if we're good to go
roll_rewardIn case you want more complex rules for specific spots
simple_dispense_rewardSimplified version of dispense_reward that doesn't need a fisherman.
spawn_rewardSpawns 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

exploded_turfs

If explosive_malus is true, this will be used to keep track of the turfs where an explosion happened for when we'll spawn the loot.

explosive_malus

It true, repeated and large explosions won't be as efficient. This is usually meant for global fish sources.

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

profound_fisher_blacklist

Mindless mobs that can fish will never pull up items on this list

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.

dispense_reward

Gives out the reward if possible

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.

on_challenge_completed

Proc called when the COMSIG_FISHING_CHALLENGE_COMPLETED signal is sent. Check if we've succeeded. If so, write into memory and dispense the reward.

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.

reason_we_cant_fish

Can we fish in this spot at all. Returns DENIAL_REASON or null if we're good to go

roll_reward

In case you want more complex rules for specific spots

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.