Expand fish and equipment catalogs

This commit is contained in:
Alexander Sellite 2026-08-14 16:31:28 -04:00
parent 63e50e285d
commit f55663c105
380 changed files with 9430 additions and 575 deletions

View file

@ -49,7 +49,7 @@ static func get_display_name(product_id: StringName) -> String:
static func get_description(product_id: StringName) -> String: static func get_description(product_id: StringName) -> String:
if product_id == ART_KIT_ITEM_ID: if product_id == ART_KIT_ITEM_ID:
return "Press P in the game world to paint!" return "Select the Art Kit in the Hotbar to paint."
var color_id: StringName = PlayerArtUnlocks.color_id_for_product(product_id) var color_id: StringName = PlayerArtUnlocks.color_id_for_product(product_id)
if not color_id.is_empty(): if not color_id.is_empty():
return "Unlocks this marker color in the Paint UI." return "Unlocks this marker color in the Paint UI."

View file

@ -3,10 +3,12 @@ extends RefCounted
const ItemCatalogType = preload("res://items/item_catalog.gd") const ItemCatalogType = preload("res://items/item_catalog.gd")
const ItemDataType = preload("res://items/item_data.gd") const ItemDataType = preload("res://items/item_data.gd")
const FishingRodDataType = preload("res://items/fishing_rod_data.gd")
const PlayerBagType = preload("res://inventory/player_bag.gd") const PlayerBagType = preload("res://inventory/player_bag.gd")
const PlayerWalletType = preload("res://economy/player_wallet.gd") const PlayerWalletType = preload("res://economy/player_wallet.gd")
const WORM_MAX_STACK: int = 10 const WORM_MAX_STACK: int = 10
const FISH_FINDER_ID: StringName = &"fish_finder" const FISH_FINDER_ID: StringName = &"fish_finder"
const MAGNET_ID: StringName = &"magnet"
const BATTERIES_ID: StringName = &"batteries" const BATTERIES_ID: StringName = &"batteries"
const ITEM_PRICES: Dictionary[StringName, int] = { const ITEM_PRICES: Dictionary[StringName, int] = {
@ -22,6 +24,7 @@ const ITEM_PRICES: Dictionary[StringName, int] = {
&"energy_drink": 35, &"energy_drink": 35,
&"snack": 30, &"snack": 30,
FISH_FINDER_ID: 500, FISH_FINDER_ID: 500,
MAGNET_ID: 250,
BATTERIES_ID: 15, BATTERIES_ID: 15,
} }
const BAIT_UNLOCK_PRICES: Dictionary[StringName, int] = { const BAIT_UNLOCK_PRICES: Dictionary[StringName, int] = {
@ -42,6 +45,7 @@ const ITEM_ORDER: Array[StringName] = [
&"luminous_roe", &"luminous_roe",
&"the_standby", &"the_standby",
FISH_FINDER_ID, FISH_FINDER_ID,
MAGNET_ID,
&"coffee", &"coffee",
&"energy_drink", &"energy_drink",
&"snack", &"snack",
@ -57,6 +61,25 @@ static func get_stock_item_ids() -> Array[StringName]:
return ITEM_ORDER.duplicate() return ITEM_ORDER.duplicate()
static func get_rod_stock(
catalog: ItemCatalogType,
) -> Array[FishingRodDataType]:
var rods: Array[FishingRodDataType] = []
if catalog == null:
return rods
for item: ItemDataType in catalog.get_available_items():
var rod := item as FishingRodDataType
if rod != null and rod.is_shop_available():
rods.append(rod)
rods.sort_custom(
func(left: FishingRodDataType, right: FishingRodDataType) -> bool:
if left.shop_order == right.shop_order:
return str(left.item_id) < str(right.item_id)
return left.shop_order < right.shop_order
)
return rods
static func get_unlock_price(item_id: StringName) -> int: static func get_unlock_price(item_id: StringName) -> int:
return BAIT_UNLOCK_PRICES.get(item_id, -1) return BAIT_UNLOCK_PRICES.get(item_id, -1)
@ -81,7 +104,12 @@ static func is_permanent_unlock(
) -> bool: ) -> bool:
return ( return (
item != null item != null
and (item.is_lure() or item_id == FISH_FINDER_ID) and (
item.is_lure()
or item_id == FISH_FINDER_ID
or item_id == MAGNET_ID
or item is FishingRodDataType
)
) )
@ -111,6 +139,8 @@ static func purchase_one(
if wallet == null or bag == null or catalog == null: if wallet == null or bag == null or catalog == null:
return false return false
var item: ItemDataType = catalog.get_item_by_id(item_id) var item: ItemDataType = catalog.get_item_by_id(item_id)
if item == null or not item.is_available():
return false
var bait_topoff: bool = is_bait_topoff(item_id) var bait_topoff: bool = is_bait_topoff(item_id)
var permanent_unlock: bool = is_permanent_unlock(item_id, item) var permanent_unlock: bool = is_permanent_unlock(item_id, item)
var quantity: int = get_purchase_quantity( var quantity: int = get_purchase_quantity(
@ -118,15 +148,20 @@ static func purchase_one(
bag.get_quantity(item_id), bag.get_quantity(item_id),
item.max_stack if item != null else WORM_MAX_STACK, item.max_stack if item != null else WORM_MAX_STACK,
) )
var price: int = get_purchase_cost( var rod := item as FishingRodDataType
item_id, var price: int = (
quantity, rod.shop_price
bag.is_bait_unlocked(item_id), if rod != null
else get_purchase_cost(
item_id,
quantity,
bag.is_bait_unlocked(item_id),
)
) )
if ( if (
price < 0 price < 0
or item == null or not item.is_available()
or not item.is_valid() or (rod != null and not rod.is_shop_available())
or ( or (
item.category != ItemDataType.Category.CONSUMABLE item.category != ItemDataType.Category.CONSUMABLE
and not bait_topoff and not bait_topoff

View file

@ -26,14 +26,21 @@ enum Rarity {
@export var id: StringName @export var id: StringName
@export var display_name: String @export var display_name: String
@export_category("Developer Catalog")
## Disabled species remain resolvable for saves but cannot be newly selected.
@export var active: bool = true
@export_range(1, 999999, 1) var catalog_number: int = 1
@export var collection_group: StringName
@export_multiline var logbook_fact: String
@export_category("Fishing")
@export_flags("Fresh Water", "Salt Water") @export_flags("Fresh Water", "Salt Water")
var allowed_water_types: int = WaterType.ALL_FISHABLE_MASK var allowed_water_types: int = WaterType.ALL_FISHABLE_MASK
@export var rarity: Rarity = Rarity.COMMON @export var rarity: Rarity = Rarity.COMMON
@export_range(0.0, 1000.0, 0.01) var base_catch_weight: float = 1.0 @export_range(0.0, 1000.0, 0.01) var base_catch_weight: float = 1.0
@export var catch_profile: CatchDifficultyProfileType @export var catch_profile: CatchDifficultyProfileType
@export var availability: FishAvailabilityType @export var availability: FishAvailabilityType
@export_range(0.01, 1000.0, 0.01) var weight_min_lb: float = 0.5 @export_range(0.001, 500000.0, 0.001) var weight_min_lb: float = 0.5
@export_range(0.01, 1000.0, 0.01) var weight_max_lb: float = 1.0 @export_range(0.001, 500000.0, 0.001) var weight_max_lb: float = 1.0
# Retained in resource files for compatibility with existing authored data; # Retained in resource files for compatibility with existing authored data;
# runtime presentation is derived from absolute weight below. # runtime presentation is derived from absolute weight below.
@export_range(0.01, 20.0, 0.01) var display_scale_min: float = 0.8 @export_range(0.01, 20.0, 0.01) var display_scale_min: float = 0.8
@ -47,7 +54,8 @@ var allowed_water_types: int = WaterType.ALL_FISHABLE_MASK
func is_selectable() -> bool: func is_selectable() -> bool:
return ( return (
not id.is_empty() active
and not id.is_empty()
and base_catch_weight > 0.0 and base_catch_weight > 0.0
and catch_profile != null and catch_profile != null
and weight_min_lb > 0.0 and weight_min_lb > 0.0
@ -74,7 +82,7 @@ func get_primary_water_type() -> WaterType.Type:
func get_minimum_weight() -> float: func get_minimum_weight() -> float:
return maxf(weight_min_lb, 0.01) return maxf(weight_min_lb, 0.001)
func get_maximum_weight() -> float: func get_maximum_weight() -> float:

View file

@ -7,10 +7,12 @@ const FishDataType = preload("res://fish/fish_data.gd")
const FishPoolType = preload("res://fish/fish_pool.gd") const FishPoolType = preload("res://fish/fish_pool.gd")
const FishQualityType = preload("res://fish/fish_quality.gd") const FishQualityType = preload("res://fish/fish_quality.gd")
const FishingContextType = preload("res://fishing/fishing_context.gd") const FishingContextType = preload("res://fishing/fishing_context.gd")
const FishingRodDataType = preload("res://items/fishing_rod_data.gd")
var undiscovered_weight_multiplier: float = 1.5 var undiscovered_weight_multiplier: float = 1.5
var rarity_weight_multipliers: Array[float] = [] var rarity_weight_multipliers: Array[float] = []
var quality_weight_multipliers: Array[float] = [] var quality_weight_multipliers: Array[float] = []
var active_rod: FishingRodDataType
var use_deterministic_test_seed: bool = false var use_deterministic_test_seed: bool = false
var deterministic_test_seed: int = 24680 var deterministic_test_seed: int = 24680
var selection_seed: int = 0 var selection_seed: int = 0
@ -55,8 +57,16 @@ func select_fish(
# quality and rarity bands globally; required tags remain authoritative. # quality and rarity bands globally; required tags remain authoritative.
if not collection_log.has_discovered(fish.id): if not collection_log.has_discovered(fish.id):
final_weight *= maxf(undiscovered_weight_multiplier, 0.0) final_weight *= maxf(undiscovered_weight_multiplier, 0.0)
if active_rod != null:
final_weight *= maxf(
active_rod.undiscovered_weight_multiplier,
0.0,
)
if fish.rarity >= 0 and fish.rarity < rarity_weight_multipliers.size(): if fish.rarity >= 0 and fish.rarity < rarity_weight_multipliers.size():
final_weight *= maxf(rarity_weight_multipliers[fish.rarity], 0.0) final_weight *= maxf(rarity_weight_multipliers[fish.rarity], 0.0)
if active_rod != null:
final_weight *= active_rod.get_rarity_multiplier(fish.rarity)
final_weight *= active_rod.get_affinity_multiplier(fish, context)
if final_weight <= 0.0: if final_weight <= 0.0:
continue continue
all_fish.append(fish) all_fish.append(fish)
@ -87,6 +97,8 @@ func _roll_rarity(context: FishingContextType) -> int:
for index: int in range(weights.size()): for index: int in range(weights.size()):
if index < rarity_weight_multipliers.size(): if index < rarity_weight_multipliers.size():
weights[index] *= maxf(rarity_weight_multipliers[index], 0.0) weights[index] *= maxf(rarity_weight_multipliers[index], 0.0)
if active_rod != null:
weights[index] *= active_rod.get_rarity_multiplier(index)
var total: float = 0.0 var total: float = 0.0
for weight: float in weights: for weight: float in weights:
total += weight total += weight
@ -107,9 +119,13 @@ func create_catch(fish: FishDataType, bait_tags: Array[StringName] = []) -> Fish
caught_fish.fish = fish caught_fish.fish = fish
caught_fish.fish_id = fish.id caught_fish.fish_id = fish.id
caught_fish.ensure_identity() caught_fish.ensure_identity()
caught_fish.weight_lb = _rng.randf_range( var weight_roll: float = _biased_unit_roll(
active_rod.weight_roll_bias if active_rod != null else 0.0
)
caught_fish.weight_lb = lerpf(
fish.get_minimum_weight(), fish.get_minimum_weight(),
fish.get_maximum_weight() fish.get_maximum_weight(),
weight_roll,
) )
caught_fish.display_scale = fish.get_display_scale_for_weight( caught_fish.display_scale = fish.get_display_scale_for_weight(
caught_fish.weight_lb caught_fish.weight_lb
@ -118,6 +134,11 @@ func create_catch(fish: FishDataType, bait_tags: Array[StringName] = []) -> Fish
var quality_multipliers: Array[float] = FishQualityType.roll_weights_for_bait(effective_bait) var quality_multipliers: Array[float] = FishQualityType.roll_weights_for_bait(effective_bait)
for quality: int in range(mini(quality_multipliers.size(), quality_weight_multipliers.size())): for quality: int in range(mini(quality_multipliers.size(), quality_weight_multipliers.size())):
quality_multipliers[quality] *= maxf(quality_weight_multipliers[quality], 0.0) quality_multipliers[quality] *= maxf(quality_weight_multipliers[quality], 0.0)
for quality: int in range(quality_multipliers.size()):
if active_rod != null:
quality_multipliers[quality] *= active_rod.get_quality_multiplier(
quality
)
caught_fish.quality = FishQualityType.roll( caught_fish.quality = FishQualityType.roll(
_rng, _rng,
quality_multipliers, quality_multipliers,
@ -127,3 +148,14 @@ func create_catch(fish: FishDataType, bait_tags: Array[StringName] = []) -> Fish
caught_fish.quality, caught_fish.quality,
) )
return caught_fish return caught_fish
func _biased_unit_roll(bias: float) -> float:
var roll: float = _rng.randf()
var safe_bias: float = clampf(bias, -0.5, 0.5)
if is_zero_approx(safe_bias):
return roll
var exponent: float = 1.0 / (1.0 + absf(safe_bias) * 2.0)
if safe_bias > 0.0:
return pow(roll, exponent)
return 1.0 - pow(1.0 - roll, exponent)

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"abalone_red"
display_name = "red abalone"
active = false
catalog_number = 6405
collection_group = &"Shellfish"
logbook_fact = "red abalones cling to pacific rocks with broad muscular feet. rows of shell holes release water that has passed over the gills."
allowed_water_types = 2
rarity = 3
base_catch_weight = 0.09
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 12.0
sell_value_min = 24
sell_value_max = 56
sell_value_curve = 0.88

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
[resource]
script = ExtResource("1_fish_data")
id = &"amberjack_greater"
display_name = "greater amberjack"
active = false
catalog_number = 3604
collection_group = &"Large coastal predators"
logbook_fact = "greater amberjacks circle reefs, wrecks, and offshore platforms. a dark stripe crosses the eye of their sturdy torpedo-shaped bodies."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.25
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 5.0
weight_max_lb = 90.0
sell_value_min = 15
sell_value_max = 42
sell_value_curve = 0.82

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
[resource]
script = ExtResource("1_fish_data")
id = &"amberjack_lesser"
display_name = "lesser amberjack"
active = false
catalog_number = 3605
collection_group = &"Large coastal predators"
logbook_fact = "lesser amberjacks school around deep reefs and floating objects. an enlarged eye suits their preference for dimmer water."
allowed_water_types = 2
rarity = 1
base_catch_weight = 0.75
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 20.0
sell_value_min = 7
sell_value_max = 18
sell_value_curve = 0.86

View file

@ -13,6 +13,10 @@ allowed_location_tags = Array[StringName]([&"ocean"])
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"anchovy_european" id = &"anchovy_european"
display_name = "european anchovy" display_name = "european anchovy"
active = true
catalog_number = 805
collection_group = &"Coastal schooling fish"
logbook_fact = "european anchovies form dense schools and feed by filtering tiny plankton from coastal water."
allowed_water_types = 2 allowed_water_types = 2
base_catch_weight = 0.5 base_catch_weight = 0.5
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -13,6 +13,10 @@ allowed_location_tags = Array[StringName]([&"ocean"])
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"anchovy_northern" id = &"anchovy_northern"
display_name = "northern anchovy" display_name = "northern anchovy"
active = true
catalog_number = 808
collection_group = &"Coastal schooling fish"
logbook_fact = "northern anchovies gather in huge schools along the pacific coast and filter plankton with their fine gill rakers."
allowed_water_types = 2 allowed_water_types = 2
base_catch_weight = 0.5 base_catch_weight = 0.5
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"angelfish_freshwater"
display_name = "freshwater angelfish"
active = false
catalog_number = 7504
collection_group = &"Tropical freshwater fish"
logbook_fact = "freshwater angelfish slip between tall plants on narrow triangular bodies. long fins and vertical bars resemble stems and shadows."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.3
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.05
weight_max_lb = 0.5
sell_value_min = 10
sell_value_max = 22
sell_value_curve = 0.95

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"angelfish_queen"
display_name = "queen angelfish"
active = false
catalog_number = 5703
collection_group = &"Reef ornamentals"
logbook_fact = "queen angelfish graze sponges from warm atlantic reefs. a blue-ringed spot on the forehead resembles a tiny crown."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.3
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 2.0
sell_value_min = 11
sell_value_max = 25
sell_value_curve = 0.94

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"anglerfish_black_seadevil"
display_name = "black seadevil"
active = false
catalog_number = 1801
collection_group = &"Deep-sea oddities"
logbook_fact = "black seadevils lure prey with a glowing organ suspended above the mouth. tiny males permanently attach to much larger females."
allowed_water_types = 2
rarity = 4
base_catch_weight = 0.05
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 2.0
sell_value_min = 48
sell_value_max = 105
sell_value_curve = 0.92

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"arapaima"
display_name = "arapaima"
active = false
catalog_number = 2702
collection_group = &"Freshwater giants"
logbook_fact = "arapaima must surface frequently to gulp air through a specialized swim bladder. large armored scales protect their long river-going bodies."
allowed_water_types = 1
rarity = 4
base_catch_weight = 0.04
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 40.0
weight_max_lb = 400.0
sell_value_min = 60
sell_value_max = 140
sell_value_curve = 0.78

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"arowana_silver"
display_name = "silver arowana"
active = false
catalog_number = 7606
collection_group = &"Tropical freshwater predators"
logbook_fact = "silver arowanas patrol the surface with upturned mouths and long bodies. powerful jumps capture insects and small animals above the water."
allowed_water_types = 1
rarity = 3
base_catch_weight = 0.11
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 15.0
sell_value_min = 25
sell_value_max = 56
sell_value_curve = 0.86

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"axolotl"
display_name = "axolotl"
active = false
catalog_number = 2001
collection_group = &"Freshwater amphibians"
logbook_fact = "axolotls remain aquatic and keep feathery external gills throughout adulthood. lost limbs and parts of several organs can regenerate."
allowed_water_types = 1
rarity = 4
base_catch_weight = 0.04
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 0.7
sell_value_min = 36
sell_value_max = 78
sell_value_curve = 0.96

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"barbel_common"
display_name = "common barbel"
active = false
catalog_number = 2501
collection_group = &"Freshwater coarse fish"
logbook_fact = "common barbels hold close to fast river bottoms with streamlined bodies and broad fins. four mouth barbels locate food among stones."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.28
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 25.0
sell_value_min = 13
sell_value_max = 31
sell_value_curve = 0.85

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"barracuda_great"
display_name = "great barracuda"
active = false
catalog_number = 5804
collection_group = &"Reef predators"
logbook_fact = "great barracudas hover motionless before accelerating toward prey. long jaws carry two distinct rows of sharp teeth."
allowed_water_types = 2
rarity = 3
base_catch_weight = 0.12
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 5.0
weight_max_lb = 80.0
sell_value_min = 28
sell_value_max = 65
sell_value_curve = 0.82

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"barramundi"
display_name = "barramundi"
active = false
catalog_number = 7302
collection_group = &"Tropical estuary"
logbook_fact = "barramundi move between rivers and coasts and can breathe in low-oxygen water. many mature first as males and later become females."
allowed_water_types = 3
rarity = 2
base_catch_weight = 0.24
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 2.0
weight_max_lb = 45.0
sell_value_min = 15
sell_value_max = 38
sell_value_curve = 0.84

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"barreleye_pacific"
display_name = "Pacific barreleye"
active = false
catalog_number = 1804
collection_group = &"Deep-sea oddities"
logbook_fact = "pacific barreleyes peer upward through transparent shields covering the head. tubular eyes rotate forward when the fish turns to feed."
allowed_water_types = 2
rarity = 4
base_catch_weight = 0.045
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 2.5
sell_value_min = 42
sell_value_max = 88
sell_value_curve = 0.9

View file

@ -14,6 +14,10 @@ preferred_bait_weight_multiplier = 1.4
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"bass" id = &"bass"
display_name = "striped bass" display_name = "striped bass"
active = true
catalog_number = 6701
collection_group = &"Temperate coastal"
logbook_fact = "striped bass split their lives between salt and fresh water, returning upriver to spawn. a long-lived striper may see three decades."
allowed_water_types = 2 allowed_water_types = 2
rarity = 1 rarity = 1
base_catch_weight = 4.0 base_catch_weight = 4.0

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"betta_siamese"
display_name = "Siamese fighting fish"
active = false
catalog_number = 7508
collection_group = &"Tropical freshwater fish"
logbook_fact = "siamese fighting fish breathe surface air with a labyrinth organ. males build bubble nests and guard the eggs beneath them."
allowed_water_types = 1
rarity = 1
base_catch_weight = 1.0
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.01
weight_max_lb = 0.15
sell_value_min = 5
sell_value_max = 10
sell_value_curve = 1.0

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"black_drum"
display_name = "black drum"
active = false
catalog_number = 6802
collection_group = &"Temperate estuary"
logbook_fact = "black drum crush oysters and crabs with rounded throat teeth. large adults develop dark vertical bars that fade with age."
allowed_water_types = 2
rarity = 1
base_catch_weight = 0.7
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 70.0
sell_value_min = 8
sell_value_max = 27
sell_value_curve = 0.82

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"blobfish_smooth_head"
display_name = "smooth-head blobfish"
active = false
catalog_number = 1805
collection_group = &"Deep-sea oddities"
logbook_fact = "smooth-head blobfish rest on deep slopes where pressure supports their soft bodies. they conserve energy by waiting for edible matter nearby."
allowed_water_types = 2
rarity = 4
base_catch_weight = 0.04
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.5
weight_max_lb = 5.0
sell_value_min = 42
sell_value_max = 90
sell_value_curve = 0.86

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"bluefish"
display_name = "bluefish"
active = false
catalog_number = 702
collection_group = &"Coastal pelagic fish"
logbook_fact = "bluefish race in coordinated schools while pursuing smaller fish. sharp teeth and powerful jaws make their feeding bursts especially fierce."
allowed_water_types = 2
rarity = 1
base_catch_weight = 0.85
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.5
weight_max_lb = 25.0
sell_value_min = 7
sell_value_max = 19
sell_value_curve = 0.85

View file

@ -9,6 +9,10 @@
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"bluegill" id = &"bluegill"
display_name = "bluegill" display_name = "bluegill"
active = true
catalog_number = 3102
collection_group = &"Freshwater panfish"
logbook_fact = "bluegill fathers sweep shallow bowls into the bottom for nests, then stand guard. whole neighborhoods of nests can crowd together."
allowed_water_types = 1 allowed_water_types = 1
rarity = 0 rarity = 0
base_catch_weight = 10.0 base_catch_weight = 10.0

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"bonefish"
display_name = "bonefish"
active = false
catalog_number = 7401
collection_group = &"Tropical flats fish"
logbook_fact = "bonefish sweep tropical flats in silvery schools and root for buried prey. their speed and pale bodies make them difficult to follow in shallow water."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.25
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.5
weight_max_lb = 15.0
sell_value_min = 13
sell_value_max = 31
sell_value_curve = 0.86

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"bowfin"
display_name = "bowfin"
active = false
catalog_number = 101
collection_group = &"Ancient freshwater fish"
logbook_fact = "bowfin can gulp air at the surface when warm backwaters run low on oxygen. a long dorsal fin ripples as they stalk prey."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.28
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 20.0
sell_value_min = 13
sell_value_max = 30
sell_value_curve = 0.85

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"boxfish_yellow"
display_name = "yellow boxfish"
active = false
catalog_number = 5608
collection_group = &"Reef oddities"
logbook_fact = "yellow boxfish juveniles are bright cubes covered in black spots. rigid body armor leaves small fins to provide careful steering."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.32
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.03
weight_max_lb = 0.8
sell_value_min = 10
sell_value_max = 22
sell_value_curve = 0.96

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
[resource]
script = ExtResource("1_fish_data")
id = &"bream_common"
display_name = "common bream"
active = false
catalog_number = 2502
collection_group = &"Freshwater coarse fish"
logbook_fact = "common bream gather in slow rivers and lakes with silvery, deep-sided bodies. protruding mouths sift insect larvae from soft bottoms."
allowed_water_types = 1
rarity = 0
base_catch_weight = 1.8
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.3
weight_max_lb = 15.0
sell_value_min = 4
sell_value_max = 12
sell_value_curve = 0.88

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"buffalo_bigmouth"
display_name = "bigmouth buffalo"
active = false
catalog_number = 2301
collection_group = &"Freshwater bottom fish"
logbook_fact = "bigmouth buffalo filter plankton with fine gill rakers instead of rooting for prey. some individuals survive for more than a century."
allowed_water_types = 1
rarity = 3
base_catch_weight = 0.12
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 8.0
weight_max_lb = 80.0
sell_value_min = 28
sell_value_max = 63
sell_value_curve = 0.82

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
[resource]
script = ExtResource("1_fish_data")
id = &"buffalo_smallmouth"
display_name = "smallmouth buffalo"
active = false
catalog_number = 2304
collection_group = &"Freshwater bottom fish"
logbook_fact = "smallmouth buffalo use thick lips to graze bottom-dwelling food in warm rivers. their deep, heavy bodies form a pronounced arch behind the head."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.3
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 3.0
weight_max_lb = 45.0
sell_value_min = 14
sell_value_max = 34
sell_value_curve = 0.84

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"bullhead_black"
display_name = "black bullhead"
active = false
catalog_number = 2401
collection_group = &"Freshwater catfish"
logbook_fact = "black bullheads tolerate warm, cloudy water with little oxygen. stout spines protect the dorsal and pectoral fins from predators."
allowed_water_types = 1
rarity = 1
base_catch_weight = 1.0
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.3
weight_max_lb = 6.0
sell_value_min = 5
sell_value_max = 11
sell_value_curve = 0.92

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"bullhead_brown"
display_name = "brown bullhead"
active = false
catalog_number = 2403
collection_group = &"Freshwater catfish"
logbook_fact = "brown bullheads search muddy bottoms with eight sensitive barbels. males guard nests and herd newly hatched young in a dark moving ball."
allowed_water_types = 1
rarity = 0
base_catch_weight = 2.3
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 4.0
sell_value_min = 3
sell_value_max = 7
sell_value_curve = 0.95

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"bullhead_yellow"
display_name = "yellow bullhead"
active = false
catalog_number = 2408
collection_group = &"Freshwater catfish"
logbook_fact = "yellow bullheads use pale chin barbels to distinguish food in murky shallows. both parents may guard the nest and schooling young."
allowed_water_types = 1
rarity = 0
base_catch_weight = 2.0
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 3.5
sell_value_min = 3
sell_value_max = 7
sell_value_curve = 0.95

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"burbot"
display_name = "burbot"
active = false
catalog_number = 1001
collection_group = &"Cold freshwater fish"
logbook_fact = "burbot are the only freshwater members of the cod family. they become most active in cold darkness and may spawn beneath winter ice."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.24
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.5
weight_max_lb = 18.0
sell_value_min = 12
sell_value_max = 28
sell_value_curve = 0.86

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"butterflyfish_copperband"
display_name = "copperband butterflyfish"
active = false
catalog_number = 5701
collection_group = &"Reef ornamentals"
logbook_fact = "copperband butterflyfish probe reef cracks with long narrow snouts. bold orange bands and a false eyespot confuse predators."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.32
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.03
weight_max_lb = 0.4
sell_value_min = 9
sell_value_max = 21
sell_value_curve = 0.98

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"capelin"
display_name = "capelin"
active = false
catalog_number = 1302
collection_group = &"Cold schooling fish"
logbook_fact = "capelin are small polar fish that feed whales, seabirds, and larger fish. many schools roll onto beaches or shallows to release their eggs."
allowed_water_types = 2
rarity = 1
base_catch_weight = 1.0
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.03
weight_max_lb = 0.2
sell_value_min = 4
sell_value_max = 8
sell_value_curve = 1.0

View file

@ -14,6 +14,10 @@ preferred_bait_weight_multiplier = 1.5
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"carp" id = &"carp"
display_name = "common carp" display_name = "common carp"
active = true
catalog_number = 2503
collection_group = &"Freshwater coarse fish"
logbook_fact = "whisker-like barbels help a common carp investigate the bottom. nosing through sediment can cloud the water and loosen plants."
allowed_water_types = 1 allowed_water_types = 1
rarity = 2 rarity = 2
base_catch_weight = 1.5 base_catch_weight = 1.5

View file

@ -16,6 +16,10 @@ preferred_bait_weight_multiplier = 1.35
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"catfish_blue" id = &"catfish_blue"
display_name = "blue catfish" display_name = "blue catfish"
active = true
catalog_number = 2402
collection_group = &"Freshwater catfish"
logbook_fact = "a deep fork in the tail inspired the blue catfish's scientific name. it rests deep by daylight and becomes more active after dark."
allowed_water_types = 1 allowed_water_types = 1
rarity = 1 rarity = 1
base_catch_weight = 1.25 base_catch_weight = 1.25

View file

@ -16,6 +16,10 @@ preferred_bait_weight_multiplier = 1.35
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"catfish_channel" id = &"catfish_channel"
display_name = "channel catfish" display_name = "channel catfish"
active = true
catalog_number = 2404
collection_group = &"Freshwater catfish"
logbook_fact = "a channel catfish can taste through skin all over its body, especially near its gills and whiskers. the male watches the eggs."
allowed_water_types = 1 allowed_water_types = 1
base_catch_weight = 2.0 base_catch_weight = 2.0
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -16,6 +16,10 @@ preferred_bait_weight_multiplier = 1.35
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"catfish_flathead" id = &"catfish_flathead"
display_name = "flathead catfish" display_name = "flathead catfish"
active = true
catalog_number = 2405
collection_group = &"Freshwater catfish"
logbook_fact = "flatheads favor hideouts made by logs, rocks, ledges, and other underwater structure. as they grow, fish dominate their menu."
allowed_water_types = 1 allowed_water_types = 1
rarity = 1 rarity = 1
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"catfish_walking"
display_name = "walking catfish"
active = false
catalog_number = 7510
collection_group = &"Tropical freshwater fish"
logbook_fact = "walking catfish wriggle across wet ground using stiff pectoral spines for support. an air-breathing organ helps them survive the journey."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.3
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.5
weight_max_lb = 5.0
sell_value_min = 11
sell_value_max = 24
sell_value_curve = 0.9

View file

@ -16,6 +16,10 @@ preferred_bait_weight_multiplier = 1.35
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"catfish_white" id = &"catfish_white"
display_name = "white catfish" display_name = "white catfish"
active = true
catalog_number = 2407
collection_group = &"Freshwater catfish"
logbook_fact = "white catfish began along the atlantic coast between new york and florida. people later carried them far beyond that home range."
allowed_water_types = 1 allowed_water_types = 1
base_catch_weight = 2.0 base_catch_weight = 2.0
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
forbid_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"char_arctic"
display_name = "arctic char"
active = false
catalog_number = 1101
collection_group = &"Cold freshwater salmonids"
logbook_fact = "arctic char thrive farther north than any other freshwater fish. some remain in lakes while others migrate between rivers and the sea."
allowed_water_types = 3
rarity = 2
base_catch_weight = 0.3
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 25.0
sell_value_min = 14
sell_value_max = 32
sell_value_curve = 0.86

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"chromis_blue_green"
display_name = "blue-green chromis"
active = false
catalog_number = 5901
collection_group = &"Reef schooling fish"
logbook_fact = "blue-green chromis form loose clouds above branching coral. the school dives into narrow shelter whenever a predator approaches."
allowed_water_types = 2
rarity = 0
base_catch_weight = 2.8
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.01
weight_max_lb = 0.25
sell_value_min = 2
sell_value_max = 4
sell_value_curve = 1.0

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"chub_creek"
display_name = "creek chub"
active = false
catalog_number = 2802
collection_group = &"Freshwater minnows"
logbook_fact = "creek chubs gather around pools and undercut banks in small streams. males build gravel ridges where several fish may spawn."
allowed_water_types = 1
rarity = 0
base_catch_weight = 3.2
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.05
weight_max_lb = 0.8
sell_value_min = 2
sell_value_max = 4
sell_value_curve = 1.0

View file

@ -13,6 +13,10 @@ allowed_location_tags = Array[StringName]([&"starter_pond"])
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"chub_european" id = &"chub_european"
display_name = "european chub" display_name = "european chub"
active = true
catalog_number = 2505
collection_group = &"Freshwater coarse fish"
logbook_fact = "european chub are adaptable river fish. adults often patrol shallows and feed on insects, small fish, and fruit."
allowed_water_types = 1 allowed_water_types = 1
base_catch_weight = 0.55 base_catch_weight = 0.55
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -13,6 +13,10 @@ allowed_location_tags = Array[StringName]([&"starter_pond"])
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"chub_flame" id = &"chub_flame"
display_name = "flame chub" display_name = "flame chub"
active = true
catalog_number = 2805
collection_group = &"Freshwater minnows"
logbook_fact = "flame chubs prefer cool, clear streams. their bright breeding colors make a small fish easy to spot in spring water."
allowed_water_types = 1 allowed_water_types = 1
rarity = 1 rarity = 1
base_catch_weight = 0.4 base_catch_weight = 0.4

View file

@ -13,6 +13,10 @@ allowed_location_tags = Array[StringName]([&"starter_pond"])
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"chub_lake" id = &"chub_lake"
display_name = "lake chub" display_name = "lake chub"
active = true
catalog_number = 2807
collection_group = &"Freshwater minnows"
logbook_fact = "lake chubs school in cold northern water and use their small mouths to pick insects and other tiny prey from the current."
allowed_water_types = 1 allowed_water_types = 1
base_catch_weight = 0.55 base_catch_weight = 0.55
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"cisco"
display_name = "cisco"
active = false
catalog_number = 1002
collection_group = &"Cold freshwater fish"
logbook_fact = "cisco school in the cool open water of northern lakes. these slim relatives of salmon feed on plankton and become prey for larger fish."
allowed_water_types = 1
rarity = 0
base_catch_weight = 2.2
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 3.0
sell_value_min = 3
sell_value_max = 7
sell_value_curve = 0.95

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"clam_geoduck"
display_name = "Pacific geoduck"
active = false
catalog_number = 6403
collection_group = &"Shellfish"
logbook_fact = "pacific geoducks bury their shells deep while a long siphon reaches the seafloor. these clams can survive for well over a century."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.25
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.5
weight_max_lb = 15.0
sell_value_min = 14
sell_value_max = 34
sell_value_curve = 0.88

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"clam_giant"
display_name = "giant clam"
active = false
catalog_number = 6402
collection_group = &"Shellfish"
logbook_fact = "giant clams host photosynthetic algae inside brightly colored mantles. heavy shells remain anchored to one reef spot throughout adulthood."
allowed_water_types = 2
rarity = 3
base_catch_weight = 0.1
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 5.0
weight_max_lb = 500.0
sell_value_min = 28
sell_value_max = 72
sell_value_curve = 0.8

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"clownfish_ocellaris"
display_name = "ocellaris clownfish"
active = false
catalog_number = 5702
collection_group = &"Reef ornamentals"
logbook_fact = "ocellaris clownfish shelter safely among stinging anemone tentacles. each group is led by a female that develops from the largest male."
allowed_water_types = 2
rarity = 1
base_catch_weight = 1.0
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.01
weight_max_lb = 0.15
sell_value_min = 5
sell_value_max = 10
sell_value_curve = 1.0

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"cobia"
display_name = "cobia"
active = false
catalog_number = 3602
collection_group = &"Large coastal predators"
logbook_fact = "cobia often follow sharks, rays, and floating structures in warm seas. a broad dark stripe runs along their long, powerful bodies."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.24
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 5.0
weight_max_lb = 80.0
sell_value_min = 15
sell_value_max = 40
sell_value_curve = 0.82

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
[resource]
script = ExtResource("1_fish_data")
id = &"cod_atlantic"
display_name = "atlantic cod"
active = false
catalog_number = 1402
collection_group = &"Cold shelf fish"
logbook_fact = "atlantic cod carry a pale lateral line and one chin barbel. they search cold seafloors for crustaceans, mollusks, and smaller fish."
allowed_water_types = 2
rarity = 0
base_catch_weight = 1.8
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 55.0
sell_value_min = 5
sell_value_max = 18
sell_value_curve = 0.85

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
[resource]
script = ExtResource("1_fish_data")
id = &"cod_pacific"
display_name = "pacific cod"
active = false
catalog_number = 1406
collection_group = &"Cold shelf fish"
logbook_fact = "pacific cod use a chin barbel to investigate cold shelf bottoms. seasonal schools follow prey between deeper water and coastal spawning grounds."
allowed_water_types = 2
rarity = 0
base_catch_weight = 1.8
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 45.0
sell_value_min = 5
sell_value_max = 17
sell_value_curve = 0.85

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"coelacanth_west_indian"
display_name = "West Indian Ocean coelacanth"
active = false
catalog_number = 1702
collection_group = &"Deep-sea legends"
logbook_fact = "west indian ocean coelacanths shelter in deep volcanic caves by day. fleshy lobed fins move in an alternating, limb-like rhythm."
allowed_water_types = 2
rarity = 4
base_catch_weight = 0.03
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 20.0
weight_max_lb = 200.0
sell_value_min = 65
sell_value_max = 145
sell_value_curve = 0.8

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"conch_queen"
display_name = "queen conch"
active = false
catalog_number = 6404
collection_group = &"Shellfish"
logbook_fact = "queen conchs graze algae with a long flexible snout. adults develop a broad flared shell lip and move by vaulting on one muscular foot."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.24
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 5.0
sell_value_min = 15
sell_value_max = 36
sell_value_curve = 0.91

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"cornetfish_red"
display_name = "red cornetfish"
active = false
catalog_number = 5606
collection_group = &"Reef oddities"
logbook_fact = "red cornetfish stalk reefs with extremely long bodies and tubular snouts. a trailing filament extends from the center of the tail."
allowed_water_types = 2
rarity = 3
base_catch_weight = 0.11
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 4.0
sell_value_min = 24
sell_value_max = 55
sell_value_curve = 0.92

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"cowfish_longhorn"
display_name = "longhorn cowfish"
active = false
catalog_number = 5604
collection_group = &"Reef oddities"
logbook_fact = "longhorn cowfish wear a rigid box of fused scales with horns above the eyes. small fins steer the angular body with surprising precision."
allowed_water_types = 2
rarity = 3
base_catch_weight = 0.13
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 2.0
sell_value_min = 23
sell_value_max = 52
sell_value_curve = 0.94

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"crab_blue"
display_name = "blue crab"
active = false
catalog_number = 3902
collection_group = &"Marine crabs"
logbook_fact = "blue crabs swim with flattened rear legs shaped like paddles. bright blue claws and an olive shell conceal a quick, defensive temperament."
allowed_water_types = 2
rarity = 0
base_catch_weight = 1.15
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 1.1
sell_value_min = 3
sell_value_max = 8
sell_value_curve = 0.95

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"crab_dungeness"
display_name = "Dungeness crab"
active = false
catalog_number = 3903
collection_group = &"Marine crabs"
logbook_fact = "dungeness crabs bury beneath sand with only their eyes and antennae exposed. broad toothed shells protect them along cool pacific coasts."
allowed_water_types = 2
rarity = 1
base_catch_weight = 0.65
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.5
weight_max_lb = 3.0
sell_value_min = 6
sell_value_max = 14
sell_value_curve = 0.92

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
forbid_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"crab_ghost"
display_name = "Atlantic ghost crab"
active = false
catalog_number = 3901
collection_group = &"Marine crabs"
logbook_fact = "atlantic ghost crabs dash across beaches on long pale legs and retreat into deep burrows. raised eyes scan nearly every direction."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.28
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.02
weight_max_lb = 0.5
sell_value_min = 11
sell_value_max = 24
sell_value_curve = 0.97

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"crab_japanese_spider"
display_name = "Japanese spider crab"
active = false
catalog_number = 3904
collection_group = &"Marine crabs"
logbook_fact = "japanese spider crabs carry the longest leg span of any living arthropod. adults roam deep seafloors around japan."
allowed_water_types = 2
rarity = 4
base_catch_weight = 0.045
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 5.0
weight_max_lb = 44.0
sell_value_min = 38
sell_value_max = 88
sell_value_curve = 0.84

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"crab_red_king"
display_name = "red king crab"
active = false
catalog_number = 3905
collection_group = &"Marine crabs"
logbook_fact = "red king crabs stride over cold northern bottoms on long armored legs. despite the name, they are closer to hermit crabs than true crabs."
allowed_water_types = 2
rarity = 3
base_catch_weight = 0.11
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 2.0
weight_max_lb = 24.0
sell_value_min = 24
sell_value_max = 58
sell_value_curve = 0.85

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"crappie_black"
display_name = "black crappie"
active = false
catalog_number = 3101
collection_group = &"Freshwater panfish"
logbook_fact = "black crappie gather around submerged wood and vegetation in clear water. irregular dark speckles scatter across their deep silver bodies."
allowed_water_types = 1
rarity = 1
base_catch_weight = 1.0
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 4.0
sell_value_min = 5
sell_value_max = 11
sell_value_curve = 0.9

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"crappie_white"
display_name = "white crappie"
active = false
catalog_number = 3107
collection_group = &"Freshwater panfish"
logbook_fact = "white crappie favor warm, cloudy water and gather around structure. vertical bars cross their silver sides instead of scattered speckles."
allowed_water_types = 1
rarity = 0
base_catch_weight = 1.7
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 4.5
sell_value_min = 4
sell_value_max = 9
sell_value_curve = 0.9

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"crayfish_red_swamp"
display_name = "red swamp crayfish"
active = false
catalog_number = 2601
collection_group = &"Freshwater crustaceans"
logbook_fact = "red swamp crayfish burrow into wet ground when water recedes. adaptable populations feed on plants, carrion, and small aquatic animals."
allowed_water_types = 1
rarity = 0
base_catch_weight = 1.1
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.03
weight_max_lb = 0.25
sell_value_min = 3
sell_value_max = 7
sell_value_curve = 0.98

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"croaker_atlantic"
display_name = "atlantic croaker"
active = false
catalog_number = 6801
collection_group = &"Temperate estuary"
logbook_fact = "atlantic croakers vibrate muscles against the swim bladder to make a croaking sound. chin barbels locate worms in sandy bays."
allowed_water_types = 2
rarity = 0
base_catch_weight = 2.1
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 5.0
sell_value_min = 3
sell_value_max = 8
sell_value_curve = 0.92

View file

@ -0,0 +1,27 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
[resource]
script = ExtResource("1_fish_data")
id = &"croaker_yellowfin"
display_name = "yellowfin croaker"
active = false
catalog_number = 6807
collection_group = &"Temperate estuary"
logbook_fact = "yellowfin croakers search sandy surf zones with a small chin barbel. internal muscles produce croaks and drumming calls."
allowed_water_types = 2
rarity = 0
base_catch_weight = 2.0
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 4.0
sell_value_min = 3
sell_value_max = 8
sell_value_curve = 0.92

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"cusk"
display_name = "cusk"
active = false
catalog_number = 1202
collection_group = &"Cold reef fish"
logbook_fact = "cusk move slowly across cold rocky bottoms, sheltering in cracks and caves. a single long fin runs around much of the rear body."
allowed_water_types = 2
rarity = 1
base_catch_weight = 0.75
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.5
weight_max_lb = 30.0
sell_value_min = 7
sell_value_max = 19
sell_value_curve = 0.85

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"cuttlefish_common"
display_name = "common cuttlefish"
active = false
catalog_number = 1502
collection_group = &"Cuttlefish and nautiluses"
logbook_fact = "common cuttlefish flash changing colors and patterns through specialized skin cells. an internal cuttlebone controls buoyancy."
allowed_water_types = 2
rarity = 1
base_catch_weight = 0.55
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 12.0
sell_value_min = 7
sell_value_max = 17
sell_value_curve = 0.9

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"cuttlefish_flamboyant"
display_name = "flamboyant cuttlefish"
active = false
catalog_number = 1503
collection_group = &"Cuttlefish and nautiluses"
logbook_fact = "flamboyant cuttlefish walk along the seafloor on their arms and fins. vivid displays warn predators of potent toxins."
allowed_water_types = 2
rarity = 3
base_catch_weight = 0.1
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.05
weight_max_lb = 0.4
sell_value_min = 26
sell_value_max = 58
sell_value_curve = 0.96

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"damselfish_sergeant_major"
display_name = "sergeant major"
active = false
catalog_number = 5904
collection_group = &"Reef schooling fish"
logbook_fact = "sergeant majors guard purple egg patches on hard reef surfaces. five dark bars cross their yellow and silver bodies."
allowed_water_types = 2
rarity = 0
base_catch_weight = 2.5
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.02
weight_max_lb = 0.5
sell_value_min = 2
sell_value_max = 5
sell_value_curve = 0.98

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"danio_zebra"
display_name = "zebrafish"
active = false
catalog_number = 2103
collection_group = &"Freshwater aquarium fish"
logbook_fact = "zebrafish carry horizontal blue stripes from gill to tail. hardy schools thrive in shallow streams, flooded fields, and quiet pools."
allowed_water_types = 1
rarity = 0
base_catch_weight = 1.35
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.01
weight_max_lb = 0.12
sell_value_min = 2
sell_value_max = 5
sell_value_curve = 0.98

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"discus"
display_name = "discus"
active = false
catalog_number = 7503
collection_group = &"Tropical freshwater fish"
logbook_fact = "discus move through quiet amazon backwaters with round, flattened bodies. parents feed newly hatched young with nutrient-rich skin mucus."
allowed_water_types = 1
rarity = 3
base_catch_weight = 0.12
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.1
weight_max_lb = 1.0
sell_value_min = 24
sell_value_max = 52
sell_value_curve = 0.92

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"dolphin_bottlenose"
display_name = "common bottlenose dolphin"
active = false
catalog_number = 7702
collection_group = &"Whales and dolphins"
logbook_fact = "common bottlenose dolphins coordinate with whistles, clicks, and body signals. echolocation reveals prey hidden in dark or cloudy water."
allowed_water_types = 2
rarity = 4
base_catch_weight = 0.012
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 330.0
weight_max_lb = 1400.0
sell_value_min = 75
sell_value_max = 180
sell_value_curve = 0.76

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"dorado_golden"
display_name = "golden dorado"
active = false
catalog_number = 7602
collection_group = &"Tropical freshwater predators"
logbook_fact = "golden dorado chase fish through powerful south american rivers. muscular tails, heavy jaws, and golden scales suit life in fast current."
allowed_water_types = 1
rarity = 3
base_catch_weight = 0.1
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 5.0
weight_max_lb = 55.0
sell_value_min = 29
sell_value_max = 66
sell_value_curve = 0.82

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"dugong"
display_name = "dugong"
active = false
catalog_number = 501
collection_group = &"Coastal marine mammals"
logbook_fact = "dugongs graze seagrass meadows with a downturned, bristled snout. they are the only fully marine members of the sirenian family."
allowed_water_types = 2
rarity = 4
base_catch_weight = 0.011
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 500.0
weight_max_lb = 1100.0
sell_value_min = 72
sell_value_max = 165
sell_value_curve = 0.77

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"eel_american"
display_name = "american eel"
active = false
catalog_number = 4001
collection_group = &"Migratory eels"
logbook_fact = "american eels hatch far out in the sargasso sea before entering freshwater rivers. adults later reverse the journey to spawn once."
allowed_water_types = 3
rarity = 2
base_catch_weight = 0.25
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.3
weight_max_lb = 8.0
sell_value_min = 12
sell_value_max = 27
sell_value_curve = 0.88

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"eel_european"
display_name = "european eel"
active = false
catalog_number = 4002
collection_group = &"Migratory eels"
logbook_fact = "european eels cross the atlantic as transparent larvae before entering rivers and lakes. mature silver eels return to sea to reproduce."
allowed_water_types = 3
rarity = 2
base_catch_weight = 0.2
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.3
weight_max_lb = 10.0
sell_value_min = 13
sell_value_max = 30
sell_value_curve = 0.88

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"electric_eel"
display_name = "electric eel"
active = false
catalog_number = 2901
collection_group = &"Freshwater oddities"
logbook_fact = "electric eels navigate and hunt with electrical pulses produced along most of the body. they must surface regularly to breathe air."
allowed_water_types = 1
rarity = 3
base_catch_weight = 0.1
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 44.0
sell_value_min = 25
sell_value_max = 60
sell_value_curve = 0.82

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"fallfish"
display_name = "fallfish"
active = false
catalog_number = 2506
collection_group = &"Freshwater coarse fish"
logbook_fact = "fallfish are large minnows that build broad stone nests in flowing water. other stream fish often reuse the gravel mounds for spawning."
allowed_water_types = 1
rarity = 1
base_catch_weight = 0.9
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 3.5
sell_value_min = 5
sell_value_max = 10
sell_value_curve = 0.92

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"fangtooth_common"
display_name = "common fangtooth"
active = false
catalog_number = 1802
collection_group = &"Deep-sea oddities"
logbook_fact = "common fangtooths carry outsized teeth that fit into pockets in the roof of the mouth. they migrate upward from deep water after dark."
allowed_water_types = 2
rarity = 3
base_catch_weight = 0.1
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.05
weight_max_lb = 0.5
sell_value_min = 25
sell_value_max = 56
sell_value_curve = 0.96

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"flounder_peacock"
display_name = "peacock flounder"
active = false
catalog_number = 5401
collection_group = &"Reef flatfish"
logbook_fact = "peacock flounders change their spots and colors to match tropical sand. both eyes scan above while the flat body remains concealed."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.3
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 5.0
sell_value_min = 11
sell_value_max = 24
sell_value_curve = 0.9

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"flounder_summer"
display_name = "summer flounder"
active = false
catalog_number = 402
collection_group = &"Coastal flatfish"
logbook_fact = "summer flounder bury themselves in sand with only their eyes exposed. a sudden burst carries them upward to seize passing prey."
allowed_water_types = 2
rarity = 1
base_catch_weight = 0.9
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.3
weight_max_lb = 15.0
sell_value_min = 6
sell_value_max = 16
sell_value_curve = 0.88

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"flounder_winter"
display_name = "winter flounder"
active = false
catalog_number = 403
collection_group = &"Coastal flatfish"
logbook_fact = "winter flounder favor cool bays and estuaries where they rest on muddy bottoms. their eyes sit on the right side of the body."
allowed_water_types = 2
rarity = 0
base_catch_weight = 1.8
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.2
weight_max_lb = 8.0
sell_value_min = 4
sell_value_max = 9
sell_value_curve = 0.9

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"flyingfish_tropical"
display_name = "tropical flyingfish"
active = false
catalog_number = 6603
collection_group = &"Surface ocean fish"
logbook_fact = "tropical flyingfish accelerate underwater before spreading enlarged fins above the surface. glides help them escape pursuing predators."
allowed_water_types = 2
rarity = 2
base_catch_weight = 0.35
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.05
weight_max_lb = 1.5
sell_value_min = 10
sell_value_max = 22
sell_value_curve = 0.94

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"foureyes_largescale"
display_name = "largescale foureyes"
active = false
catalog_number = 202
collection_group = &"Brackish oddities"
logbook_fact = "largescale foureyes cruise with each eye divided across the waterline. one half watches above while the other scans below."
allowed_water_types = 3
rarity = 2
base_catch_weight = 0.32
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.05
weight_max_lb = 1.0
sell_value_min = 10
sell_value_max = 23
sell_value_curve = 0.95

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_rain = true
[resource]
script = ExtResource("1_fish_data")
id = &"freshwater_drum"
display_name = "freshwater drum"
active = false
catalog_number = 2902
collection_group = &"Freshwater oddities"
logbook_fact = "freshwater drum crush snails and mussels with powerful throat teeth. muscles vibrating against the swim bladder produce a low drumming sound."
allowed_water_types = 1
rarity = 1
base_catch_weight = 0.7
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 35.0
sell_value_min = 7
sell_value_max = 20
sell_value_curve = 0.85

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
[resource]
script = ExtResource("1_fish_data")
id = &"gar_alligator"
display_name = "alligator gar"
active = false
catalog_number = 2701
collection_group = &"Freshwater giants"
logbook_fact = "alligator gar combine a broad tooth-filled snout with heavy armor-like scales. a vascular swim bladder lets them breathe air at the surface."
allowed_water_types = 1
rarity = 4
base_catch_weight = 0.055
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 20.0
weight_max_lb = 300.0
sell_value_min = 55
sell_value_max = 125
sell_value_curve = 0.8

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"gar_longnose"
display_name = "longnose gar"
active = false
catalog_number = 103
collection_group = &"Ancient freshwater fish"
logbook_fact = "longnose gar wait near the surface before snapping sideways at passing fish. their narrow jaws carry rows of fine needle-like teeth."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.24
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 2.0
weight_max_lb = 35.0
sell_value_min = 14
sell_value_max = 34
sell_value_curve = 0.85

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"gar_spotted"
display_name = "spotted gar"
active = false
catalog_number = 106
collection_group = &"Ancient freshwater fish"
logbook_fact = "spotted gar linger among vegetation where their mottled bodies break up their outline. they rise to gulp air as well as breathing through gills."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.2
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 1.0
weight_max_lb = 15.0
sell_value_min = 13
sell_value_max = 29
sell_value_curve = 0.88

View file

@ -14,6 +14,10 @@ preferred_bait_weight_multiplier = 1.35
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"goby_round" id = &"goby_round"
display_name = "round goby" display_name = "round goby"
active = true
catalog_number = 3401
collection_group = &"Freshwater small fish"
logbook_fact = "round gobies use fused pelvic fins like a suction cup to hold onto rocks. they are small fish with a famously large appetite."
allowed_water_types = 1 allowed_water_types = 1
base_catch_weight = 8.0 base_catch_weight = 8.0
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_day = false
require_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"goldeye"
display_name = "goldeye"
active = false
catalog_number = 2903
collection_group = &"Freshwater oddities"
logbook_fact = "goldeye patrol turbid rivers with large light-sensitive eyes and a toothed tongue. they rise toward the surface to hunt insects and small fish."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.3
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.3
weight_max_lb = 6.0
sell_value_min = 12
sell_value_max = 25
sell_value_curve = 0.9

View file

@ -13,6 +13,10 @@ allowed_location_tags = Array[StringName]([&"starter_pond"])
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"goldfish" id = &"goldfish"
display_name = "goldfish" display_name = "goldfish"
active = true
catalog_number = 3002
collection_group = &"Freshwater ornamental"
logbook_fact = "goldfish can tolerate a surprisingly wide range of conditions. their wild relatives often live in slow, weedy water."
allowed_water_types = 1 allowed_water_types = 1
base_catch_weight = 0.5 base_catch_weight = 0.5
catch_profile = ExtResource("2_profile") catch_profile = ExtResource("2_profile")

View file

@ -13,6 +13,10 @@ allowed_location_tags = Array[StringName]([&"starter_pond"])
script = ExtResource("1_fish_data") script = ExtResource("1_fish_data")
id = &"goldfish_bubbleeye" id = &"goldfish_bubbleeye"
display_name = "bubble-eye goldfish" display_name = "bubble-eye goldfish"
active = true
catalog_number = 3001
collection_group = &"Freshwater ornamental"
logbook_fact = "bubble-eye goldfish have delicate fluid-filled sacs beneath their eyes, making careful handling especially important."
allowed_water_types = 1 allowed_water_types = 1
rarity = 1 rarity = 1
base_catch_weight = 0.35 base_catch_weight = 0.35

View file

@ -0,0 +1,28 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
[resource]
script = ExtResource("1_fish_data")
id = &"gourami_giant"
display_name = "giant gourami"
active = false
catalog_number = 7505
collection_group = &"Tropical freshwater fish"
logbook_fact = "giant gouramis breathe surface air through a specialized labyrinth organ. adults graze plants but also investigate insects and small animals."
allowed_water_types = 1
rarity = 2
base_catch_weight = 0.25
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 2.0
weight_max_lb = 20.0
sell_value_min = 13
sell_value_max = 31
sell_value_curve = 0.86

View file

@ -0,0 +1,29 @@
[gd_resource type="Resource" script_class="FishData" load_steps=4 format=3]
[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"]
[ext_resource type="Resource" path="res://fishing/common_catch_profile.tres" id="2_profile"]
[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability"]
[sub_resource type="Resource" id="Availability"]
script = ExtResource("3_availability")
allow_night = false
forbid_fog = true
[resource]
script = ExtResource("1_fish_data")
id = &"grayling_arctic"
display_name = "arctic grayling"
active = false
catalog_number = 1102
collection_group = &"Cold freshwater salmonids"
logbook_fact = "arctic grayling carry a tall, colorful dorsal fin like a sail. they feed on drifting insects in cold, clear rivers and lakes."
allowed_water_types = 1
rarity = 1
base_catch_weight = 0.75
catch_profile = ExtResource("2_profile")
availability = SubResource("Availability")
weight_min_lb = 0.3
weight_max_lb = 6.0
sell_value_min = 6
sell_value_max = 14
sell_value_curve = 0.9

Some files were not shown because too many files have changed in this diff Show more