diff --git a/fish/pools/fish_catalog.tres b/fish/pools/fish_catalog.tres index 66a1c34..d646449 100644 --- a/fish/pools/fish_catalog.tres +++ b/fish/pools/fish_catalog.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" load_steps=10 format=3] +[gd_resource type="Resource" load_steps=21 format=3] [ext_resource type="Script" path="res://fish/fish_pool.gd" id="1_pool"] [ext_resource type="Resource" path="res://fish/species/bluegill/bluegill.tres" id="2_bluegill"] @@ -9,7 +9,18 @@ [ext_resource type="Resource" path="res://fish/species/catfish_channel/catfish_channel.tres" id="7_catfish_channel"] [ext_resource type="Resource" path="res://fish/species/catfish_flathead/catfish_flathead.tres" id="8_catfish_flathead"] [ext_resource type="Resource" path="res://fish/species/catfish_white/catfish_white.tres" id="9_catfish_white"] +[ext_resource type="Resource" path="res://fish/species/tuna_albacore/tuna_albacore.tres" id="10_tuna_albacore"] +[ext_resource type="Resource" path="res://fish/species/tuna_bigeye/tuna_bigeye.tres" id="11_tuna_bigeye"] +[ext_resource type="Resource" path="res://fish/species/tuna_bluefin/tuna_bluefin.tres" id="12_tuna_bluefin"] +[ext_resource type="Resource" path="res://fish/species/tuna_skipjack/tuna_skipjack.tres" id="13_tuna_skipjack"] +[ext_resource type="Resource" path="res://fish/species/tuna_yellowfin/tuna_yellowfin.tres" id="14_tuna_yellowfin"] +[ext_resource type="Resource" path="res://fish/species/goby_round/goby_round.tres" id="15_goby_round"] +[ext_resource type="Resource" path="res://fish/species/salmon_atlantic/salmon_atlantic.tres" id="16_salmon_atlantic"] +[ext_resource type="Resource" path="res://fish/species/salmon_chum/salmon_chum.tres" id="17_salmon_chum"] +[ext_resource type="Resource" path="res://fish/species/salmon_coho/salmon_coho.tres" id="18_salmon_coho"] +[ext_resource type="Resource" path="res://fish/species/salmon_pink/salmon_pink.tres" id="19_salmon_pink"] +[ext_resource type="Resource" path="res://fish/species/salmon_sockeye/salmon_sockeye.tres" id="20_salmon_sockeye"] [resource] script = ExtResource("1_pool") -candidates = [ExtResource("2_bluegill"), ExtResource("3_bass"), ExtResource("4_carp"), ExtResource("5_sunfish"), ExtResource("6_catfish_blue"), ExtResource("7_catfish_channel"), ExtResource("8_catfish_flathead"), ExtResource("9_catfish_white")] +candidates = [ExtResource("2_bluegill"), ExtResource("3_bass"), ExtResource("4_carp"), ExtResource("5_sunfish"), ExtResource("6_catfish_blue"), ExtResource("7_catfish_channel"), ExtResource("8_catfish_flathead"), ExtResource("9_catfish_white"), ExtResource("10_tuna_albacore"), ExtResource("11_tuna_bigeye"), ExtResource("12_tuna_bluefin"), ExtResource("13_tuna_skipjack"), ExtResource("14_tuna_yellowfin"), ExtResource("15_goby_round"), ExtResource("16_salmon_atlantic"), ExtResource("17_salmon_chum"), ExtResource("18_salmon_coho"), ExtResource("19_salmon_pink"), ExtResource("20_salmon_sockeye")] diff --git a/fish/pools/starter_ocean_pool.tres b/fish/pools/starter_ocean_pool.tres index a84106e..8772d68 100644 --- a/fish/pools/starter_ocean_pool.tres +++ b/fish/pools/starter_ocean_pool.tres @@ -1,9 +1,19 @@ -[gd_resource type="Resource" load_steps=4 format=3] +[gd_resource type="Resource" load_steps=14 format=3] [ext_resource type="Script" path="res://fish/fish_pool.gd" id="1_pool"] [ext_resource type="Resource" path="res://fish/species/bass/bass.tres" id="2_bass"] [ext_resource type="Resource" path="res://fish/species/sunfish/sunfish.tres" id="3_sunfish"] +[ext_resource type="Resource" path="res://fish/species/tuna_albacore/tuna_albacore.tres" id="4_tuna_albacore"] +[ext_resource type="Resource" path="res://fish/species/tuna_bigeye/tuna_bigeye.tres" id="5_tuna_bigeye"] +[ext_resource type="Resource" path="res://fish/species/tuna_bluefin/tuna_bluefin.tres" id="6_tuna_bluefin"] +[ext_resource type="Resource" path="res://fish/species/tuna_skipjack/tuna_skipjack.tres" id="7_tuna_skipjack"] +[ext_resource type="Resource" path="res://fish/species/tuna_yellowfin/tuna_yellowfin.tres" id="8_tuna_yellowfin"] +[ext_resource type="Resource" path="res://fish/species/salmon_atlantic/salmon_atlantic.tres" id="9_salmon_atlantic"] +[ext_resource type="Resource" path="res://fish/species/salmon_chum/salmon_chum.tres" id="10_salmon_chum"] +[ext_resource type="Resource" path="res://fish/species/salmon_coho/salmon_coho.tres" id="11_salmon_coho"] +[ext_resource type="Resource" path="res://fish/species/salmon_pink/salmon_pink.tres" id="12_salmon_pink"] +[ext_resource type="Resource" path="res://fish/species/salmon_sockeye/salmon_sockeye.tres" id="13_salmon_sockeye"] [resource] script = ExtResource("1_pool") -candidates = [ExtResource("2_bass"), ExtResource("3_sunfish")] +candidates = [ExtResource("2_bass"), ExtResource("3_sunfish"), ExtResource("4_tuna_albacore"), ExtResource("5_tuna_bigeye"), ExtResource("6_tuna_bluefin"), ExtResource("7_tuna_skipjack"), ExtResource("8_tuna_yellowfin"), ExtResource("9_salmon_atlantic"), ExtResource("10_salmon_chum"), ExtResource("11_salmon_coho"), ExtResource("12_salmon_pink"), ExtResource("13_salmon_sockeye")] diff --git a/fish/pools/starter_pond_pool.tres b/fish/pools/starter_pond_pool.tres index a594d72..276aaa5 100644 --- a/fish/pools/starter_pond_pool.tres +++ b/fish/pools/starter_pond_pool.tres @@ -1,4 +1,4 @@ -[gd_resource type="Resource" load_steps=8 format=3] +[gd_resource type="Resource" load_steps=9 format=3] [ext_resource type="Script" path="res://fish/fish_pool.gd" id="1_pool"] [ext_resource type="Resource" path="res://fish/species/bluegill/bluegill.tres" id="2_bluegill"] @@ -7,7 +7,8 @@ [ext_resource type="Resource" path="res://fish/species/catfish_channel/catfish_channel.tres" id="7_catfish_channel"] [ext_resource type="Resource" path="res://fish/species/catfish_flathead/catfish_flathead.tres" id="8_catfish_flathead"] [ext_resource type="Resource" path="res://fish/species/catfish_white/catfish_white.tres" id="9_catfish_white"] +[ext_resource type="Resource" path="res://fish/species/goby_round/goby_round.tres" id="10_goby_round"] [resource] script = ExtResource("1_pool") -candidates = [ExtResource("2_bluegill"), ExtResource("4_carp"), ExtResource("6_catfish_blue"), ExtResource("7_catfish_channel"), ExtResource("8_catfish_flathead"), ExtResource("9_catfish_white")] +candidates = [ExtResource("2_bluegill"), ExtResource("4_carp"), ExtResource("6_catfish_blue"), ExtResource("7_catfish_channel"), ExtResource("8_catfish_flathead"), ExtResource("9_catfish_white"), ExtResource("10_goby_round")] diff --git a/fish/species/goby_round/fish_goby_round.png b/fish/species/goby_round/fish_goby_round.png new file mode 100644 index 0000000..89e3f78 Binary files /dev/null and b/fish/species/goby_round/fish_goby_round.png differ diff --git a/fish/species/goby_round/fish_goby_round.png.import b/fish/species/goby_round/fish_goby_round.png.import new file mode 100644 index 0000000..6fb96e8 --- /dev/null +++ b/fish/species/goby_round/fish_goby_round.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bdhywe0r1xcio" +path="res://.godot/imported/fish_goby_round.png-3c3fd3dd06c7b5dd4539ab186bf0d865.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/goby_round/fish_goby_round.png" +dest_files=["res://.godot/imported/fish_goby_round.png-3c3fd3dd06c7b5dd4539ab186bf0d865.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/goby_round/goby_round.tres b/fish/species/goby_round/goby_round.tres new file mode 100644 index 0000000..44aa8fa --- /dev/null +++ b/fish/species/goby_round/goby_round.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 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_script"] +[ext_resource type="Texture2D" path="res://fish/species/goby_round/fish_goby_round.png" id="4_texture"] + +[sub_resource type="Resource" id="RoundGobyAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"worm", &"minnow"]) +preferred_bait_weight_multiplier = 1.35 + +[resource] +script = ExtResource("1_fish_data") +id = &"goby_round" +display_name = "round goby" +allowed_water_types = 1 +rarity = 0 +base_catch_weight = 8.0 +catch_profile = ExtResource("2_profile") +availability = SubResource("RoundGobyAvailability") +weight_min_lb = 0.1 +weight_max_lb = 0.6 +display_scale_min = 0.55 +display_scale_max = 0.9 +display_scale_curve = 1.0 +sell_value_min = 2 +sell_value_max = 3 +sell_value_curve = 1.0 +display_texture = ExtResource("4_texture") diff --git a/fish/species/salmon_atlantic/fish_salmon_atlantic.png b/fish/species/salmon_atlantic/fish_salmon_atlantic.png new file mode 100644 index 0000000..ea6164b Binary files /dev/null and b/fish/species/salmon_atlantic/fish_salmon_atlantic.png differ diff --git a/fish/species/salmon_atlantic/fish_salmon_atlantic.png.import b/fish/species/salmon_atlantic/fish_salmon_atlantic.png.import new file mode 100644 index 0000000..36fb242 --- /dev/null +++ b/fish/species/salmon_atlantic/fish_salmon_atlantic.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://ddbclfu5wtd5r" +path="res://.godot/imported/fish_salmon_atlantic.png-e11e70a37a78573bfb86a21b48ae319b.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/salmon_atlantic/fish_salmon_atlantic.png" +dest_files=["res://.godot/imported/fish_salmon_atlantic.png-e11e70a37a78573bfb86a21b48ae319b.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/salmon_atlantic/salmon_atlantic.tres b/fish/species/salmon_atlantic/salmon_atlantic.tres new file mode 100644 index 0000000..886b348 --- /dev/null +++ b/fish/species/salmon_atlantic/salmon_atlantic.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/salmon_atlantic/fish_salmon_atlantic.png" id="4_texture"] + +[sub_resource type="Resource" id="AtlanticSalmonAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"salmon_atlantic" +display_name = "atlantic salmon" +allowed_water_types = 2 +rarity = 3 +base_catch_weight = 0.65 +catch_profile = ExtResource("2_profile") +availability = SubResource("AtlanticSalmonAvailability") +weight_min_lb = 8.0 +weight_max_lb = 40.0 +display_scale_min = 1.05 +display_scale_max = 1.9 +display_scale_curve = 0.85 +sell_value_min = 20 +sell_value_max = 42 +sell_value_curve = 0.85 +display_texture = ExtResource("4_texture") diff --git a/fish/species/salmon_chum/fish_salmon_chum.png b/fish/species/salmon_chum/fish_salmon_chum.png new file mode 100644 index 0000000..920b39d Binary files /dev/null and b/fish/species/salmon_chum/fish_salmon_chum.png differ diff --git a/fish/species/salmon_chum/fish_salmon_chum.png.import b/fish/species/salmon_chum/fish_salmon_chum.png.import new file mode 100644 index 0000000..587b83b --- /dev/null +++ b/fish/species/salmon_chum/fish_salmon_chum.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dqjkmd6l1a2i4" +path="res://.godot/imported/fish_salmon_chum.png-78c86aca1218255db2c488a5c22e4409.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/salmon_chum/fish_salmon_chum.png" +dest_files=["res://.godot/imported/fish_salmon_chum.png-78c86aca1218255db2c488a5c22e4409.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/salmon_chum/salmon_chum.tres b/fish/species/salmon_chum/salmon_chum.tres new file mode 100644 index 0000000..2ce0f20 --- /dev/null +++ b/fish/species/salmon_chum/salmon_chum.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/salmon_chum/fish_salmon_chum.png" id="4_texture"] + +[sub_resource type="Resource" id="ChumSalmonAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"salmon_chum" +display_name = "chum salmon" +allowed_water_types = 2 +rarity = 1 +base_catch_weight = 2.5 +catch_profile = ExtResource("2_profile") +availability = SubResource("ChumSalmonAvailability") +weight_min_lb = 6.0 +weight_max_lb = 25.0 +display_scale_min = 1.0 +display_scale_max = 1.75 +display_scale_curve = 0.9 +sell_value_min = 10 +sell_value_max = 22 +sell_value_curve = 0.9 +display_texture = ExtResource("4_texture") diff --git a/fish/species/salmon_coho/fish_salmon_coho.png b/fish/species/salmon_coho/fish_salmon_coho.png new file mode 100644 index 0000000..2caf696 Binary files /dev/null and b/fish/species/salmon_coho/fish_salmon_coho.png differ diff --git a/fish/species/salmon_coho/fish_salmon_coho.png.import b/fish/species/salmon_coho/fish_salmon_coho.png.import new file mode 100644 index 0000000..1cd3254 --- /dev/null +++ b/fish/species/salmon_coho/fish_salmon_coho.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://c4c4e43lbr88c" +path="res://.godot/imported/fish_salmon_coho.png-fc57b7ff3c0ac63ccfec6db9cec1dedb.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/salmon_coho/fish_salmon_coho.png" +dest_files=["res://.godot/imported/fish_salmon_coho.png-fc57b7ff3c0ac63ccfec6db9cec1dedb.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/salmon_coho/salmon_coho.tres b/fish/species/salmon_coho/salmon_coho.tres new file mode 100644 index 0000000..66203de --- /dev/null +++ b/fish/species/salmon_coho/salmon_coho.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/salmon_coho/fish_salmon_coho.png" id="4_texture"] + +[sub_resource type="Resource" id="CohoSalmonAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"salmon_coho" +display_name = "coho salmon" +allowed_water_types = 2 +rarity = 2 +base_catch_weight = 1.4 +catch_profile = ExtResource("2_profile") +availability = SubResource("CohoSalmonAvailability") +weight_min_lb = 5.0 +weight_max_lb = 30.0 +display_scale_min = 1.0 +display_scale_max = 1.8 +display_scale_curve = 0.88 +sell_value_min = 14 +sell_value_max = 28 +sell_value_curve = 0.88 +display_texture = ExtResource("4_texture") diff --git a/fish/species/salmon_pink/fish_salmon_pink.png b/fish/species/salmon_pink/fish_salmon_pink.png new file mode 100644 index 0000000..85b1d88 Binary files /dev/null and b/fish/species/salmon_pink/fish_salmon_pink.png differ diff --git a/fish/species/salmon_pink/fish_salmon_pink.png.import b/fish/species/salmon_pink/fish_salmon_pink.png.import new file mode 100644 index 0000000..caf4c74 --- /dev/null +++ b/fish/species/salmon_pink/fish_salmon_pink.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bk27bsdrtlqap" +path="res://.godot/imported/fish_salmon_pink.png-0c9ca3bc540b868c12fe32b1cdc59249.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/salmon_pink/fish_salmon_pink.png" +dest_files=["res://.godot/imported/fish_salmon_pink.png-0c9ca3bc540b868c12fe32b1cdc59249.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/salmon_pink/salmon_pink.tres b/fish/species/salmon_pink/salmon_pink.tres new file mode 100644 index 0000000..a6b74d5 --- /dev/null +++ b/fish/species/salmon_pink/salmon_pink.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/salmon_pink/fish_salmon_pink.png" id="4_texture"] + +[sub_resource type="Resource" id="PinkSalmonAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"salmon_pink" +display_name = "pink salmon" +allowed_water_types = 2 +rarity = 1 +base_catch_weight = 3.0 +catch_profile = ExtResource("2_profile") +availability = SubResource("PinkSalmonAvailability") +weight_min_lb = 3.0 +weight_max_lb = 12.0 +display_scale_min = 0.9 +display_scale_max = 1.55 +display_scale_curve = 0.92 +sell_value_min = 8 +sell_value_max = 15 +sell_value_curve = 0.92 +display_texture = ExtResource("4_texture") diff --git a/fish/species/salmon_sockeye/fish_salmon_sockeye.png b/fish/species/salmon_sockeye/fish_salmon_sockeye.png new file mode 100644 index 0000000..bb98433 Binary files /dev/null and b/fish/species/salmon_sockeye/fish_salmon_sockeye.png differ diff --git a/fish/species/salmon_sockeye/fish_salmon_sockeye.png.import b/fish/species/salmon_sockeye/fish_salmon_sockeye.png.import new file mode 100644 index 0000000..71a8856 --- /dev/null +++ b/fish/species/salmon_sockeye/fish_salmon_sockeye.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cmokm3sra4ai8" +path="res://.godot/imported/fish_salmon_sockeye.png-99d566111b5cad1e6ae4702b6f9128fd.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/salmon_sockeye/fish_salmon_sockeye.png" +dest_files=["res://.godot/imported/fish_salmon_sockeye.png-99d566111b5cad1e6ae4702b6f9128fd.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/salmon_sockeye/salmon_sockeye.tres b/fish/species/salmon_sockeye/salmon_sockeye.tres new file mode 100644 index 0000000..54e6bff --- /dev/null +++ b/fish/species/salmon_sockeye/salmon_sockeye.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/salmon_sockeye/fish_salmon_sockeye.png" id="4_texture"] + +[sub_resource type="Resource" id="SockeyeSalmonAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"salmon_sockeye" +display_name = "sockeye salmon" +allowed_water_types = 2 +rarity = 2 +base_catch_weight = 1.6 +catch_profile = ExtResource("2_profile") +availability = SubResource("SockeyeSalmonAvailability") +weight_min_lb = 4.0 +weight_max_lb = 15.0 +display_scale_min = 0.95 +display_scale_max = 1.6 +display_scale_curve = 0.9 +sell_value_min = 12 +sell_value_max = 24 +sell_value_curve = 0.9 +display_texture = ExtResource("4_texture") diff --git a/fish/species/tuna_albacore/fish_tuna_albacore.png b/fish/species/tuna_albacore/fish_tuna_albacore.png new file mode 100644 index 0000000..3769c08 Binary files /dev/null and b/fish/species/tuna_albacore/fish_tuna_albacore.png differ diff --git a/fish/species/tuna_albacore/fish_tuna_albacore.png.import b/fish/species/tuna_albacore/fish_tuna_albacore.png.import new file mode 100644 index 0000000..f2e6b6f --- /dev/null +++ b/fish/species/tuna_albacore/fish_tuna_albacore.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bxebn81i552fg" +path="res://.godot/imported/fish_tuna_albacore.png-aaac5d00c8a250b19db99d7069f549e1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/tuna_albacore/fish_tuna_albacore.png" +dest_files=["res://.godot/imported/fish_tuna_albacore.png-aaac5d00c8a250b19db99d7069f549e1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/tuna_albacore/tuna_albacore.tres b/fish/species/tuna_albacore/tuna_albacore.tres new file mode 100644 index 0000000..f98cd96 --- /dev/null +++ b/fish/species/tuna_albacore/tuna_albacore.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/tuna_albacore/fish_tuna_albacore.png" id="4_texture"] + +[sub_resource type="Resource" id="AlbacoreAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"tuna_albacore" +display_name = "albacore tuna" +allowed_water_types = 2 +rarity = 2 +base_catch_weight = 1.5 +catch_profile = ExtResource("2_profile") +availability = SubResource("AlbacoreAvailability") +weight_min_lb = 10.0 +weight_max_lb = 45.0 +display_scale_min = 1.1 +display_scale_max = 1.9 +display_scale_curve = 0.85 +sell_value_min = 12 +sell_value_max = 24 +sell_value_curve = 0.85 +display_texture = ExtResource("4_texture") diff --git a/fish/species/tuna_bigeye/fish_tuna_bigeye.png b/fish/species/tuna_bigeye/fish_tuna_bigeye.png new file mode 100644 index 0000000..b4a36c3 Binary files /dev/null and b/fish/species/tuna_bigeye/fish_tuna_bigeye.png differ diff --git a/fish/species/tuna_bigeye/fish_tuna_bigeye.png.import b/fish/species/tuna_bigeye/fish_tuna_bigeye.png.import new file mode 100644 index 0000000..3539d10 --- /dev/null +++ b/fish/species/tuna_bigeye/fish_tuna_bigeye.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bypnhqmkhnm2c" +path="res://.godot/imported/fish_tuna_bigeye.png-1c20be325f0bac055325a6fa0ad17dd1.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/tuna_bigeye/fish_tuna_bigeye.png" +dest_files=["res://.godot/imported/fish_tuna_bigeye.png-1c20be325f0bac055325a6fa0ad17dd1.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/tuna_bigeye/tuna_bigeye.tres b/fish/species/tuna_bigeye/tuna_bigeye.tres new file mode 100644 index 0000000..618c7d3 --- /dev/null +++ b/fish/species/tuna_bigeye/tuna_bigeye.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/tuna_bigeye/fish_tuna_bigeye.png" id="4_texture"] + +[sub_resource type="Resource" id="BigeyeAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"tuna_bigeye" +display_name = "bigeye tuna" +allowed_water_types = 2 +rarity = 3 +base_catch_weight = 0.55 +catch_profile = ExtResource("2_profile") +availability = SubResource("BigeyeAvailability") +weight_min_lb = 20.0 +weight_max_lb = 120.0 +display_scale_min = 1.2 +display_scale_max = 2.2 +display_scale_curve = 0.8 +sell_value_min = 22 +sell_value_max = 48 +sell_value_curve = 0.8 +display_texture = ExtResource("4_texture") diff --git a/fish/species/tuna_bluefin/fish_tuna_bluefin.png b/fish/species/tuna_bluefin/fish_tuna_bluefin.png new file mode 100644 index 0000000..a2b3cad Binary files /dev/null and b/fish/species/tuna_bluefin/fish_tuna_bluefin.png differ diff --git a/fish/species/tuna_bluefin/fish_tuna_bluefin.png.import b/fish/species/tuna_bluefin/fish_tuna_bluefin.png.import new file mode 100644 index 0000000..674a0b7 --- /dev/null +++ b/fish/species/tuna_bluefin/fish_tuna_bluefin.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dg7nafydp4flx" +path="res://.godot/imported/fish_tuna_bluefin.png-04ec876b3a78ea716b7a0673e8497fab.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/tuna_bluefin/fish_tuna_bluefin.png" +dest_files=["res://.godot/imported/fish_tuna_bluefin.png-04ec876b3a78ea716b7a0673e8497fab.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/tuna_bluefin/tuna_bluefin.tres b/fish/species/tuna_bluefin/tuna_bluefin.tres new file mode 100644 index 0000000..50591c3 --- /dev/null +++ b/fish/species/tuna_bluefin/tuna_bluefin.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/tuna_bluefin/fish_tuna_bluefin.png" id="4_texture"] + +[sub_resource type="Resource" id="BluefinAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"tuna_bluefin" +display_name = "bluefin tuna" +allowed_water_types = 2 +rarity = 4 +base_catch_weight = 0.18 +catch_profile = ExtResource("2_profile") +availability = SubResource("BluefinAvailability") +weight_min_lb = 30.0 +weight_max_lb = 250.0 +display_scale_min = 1.3 +display_scale_max = 2.5 +display_scale_curve = 0.78 +sell_value_min = 35 +sell_value_max = 90 +sell_value_curve = 0.78 +display_texture = ExtResource("4_texture") diff --git a/fish/species/tuna_skipjack/fish_tuna_skipjack.png b/fish/species/tuna_skipjack/fish_tuna_skipjack.png new file mode 100644 index 0000000..5a7f74d Binary files /dev/null and b/fish/species/tuna_skipjack/fish_tuna_skipjack.png differ diff --git a/fish/species/tuna_skipjack/fish_tuna_skipjack.png.import b/fish/species/tuna_skipjack/fish_tuna_skipjack.png.import new file mode 100644 index 0000000..786e985 --- /dev/null +++ b/fish/species/tuna_skipjack/fish_tuna_skipjack.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://vvtr81d2aojs" +path="res://.godot/imported/fish_tuna_skipjack.png-98d7d6a76fc86bd76f861358be0635c7.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/tuna_skipjack/fish_tuna_skipjack.png" +dest_files=["res://.godot/imported/fish_tuna_skipjack.png-98d7d6a76fc86bd76f861358be0635c7.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/tuna_skipjack/tuna_skipjack.tres b/fish/species/tuna_skipjack/tuna_skipjack.tres new file mode 100644 index 0000000..c1174e6 --- /dev/null +++ b/fish/species/tuna_skipjack/tuna_skipjack.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/tuna_skipjack/fish_tuna_skipjack.png" id="4_texture"] + +[sub_resource type="Resource" id="SkipjackAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"tuna_skipjack" +display_name = "skipjack tuna" +allowed_water_types = 2 +rarity = 1 +base_catch_weight = 3.0 +catch_profile = ExtResource("2_profile") +availability = SubResource("SkipjackAvailability") +weight_min_lb = 5.0 +weight_max_lb = 25.0 +display_scale_min = 1.0 +display_scale_max = 1.7 +display_scale_curve = 0.9 +sell_value_min = 8 +sell_value_max = 16 +sell_value_curve = 0.9 +display_texture = ExtResource("4_texture") diff --git a/fish/species/tuna_yellowfin/fish_tuna_yellowfin.png b/fish/species/tuna_yellowfin/fish_tuna_yellowfin.png new file mode 100644 index 0000000..a1afc81 Binary files /dev/null and b/fish/species/tuna_yellowfin/fish_tuna_yellowfin.png differ diff --git a/fish/species/tuna_yellowfin/fish_tuna_yellowfin.png.import b/fish/species/tuna_yellowfin/fish_tuna_yellowfin.png.import new file mode 100644 index 0000000..a8918aa --- /dev/null +++ b/fish/species/tuna_yellowfin/fish_tuna_yellowfin.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bwpdgagaysdsf" +path="res://.godot/imported/fish_tuna_yellowfin.png-14cd53683bfec6af599f1e1dc5728b99.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://fish/species/tuna_yellowfin/fish_tuna_yellowfin.png" +dest_files=["res://.godot/imported/fish_tuna_yellowfin.png-14cd53683bfec6af599f1e1dc5728b99.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/uastc_level=0 +compress/rdo_quality_loss=0.0 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/channel_remap/red=0 +process/channel_remap/green=1 +process/channel_remap/blue=2 +process/channel_remap/alpha=3 +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/fish/species/tuna_yellowfin/tuna_yellowfin.tres b/fish/species/tuna_yellowfin/tuna_yellowfin.tres new file mode 100644 index 0000000..6fff5df --- /dev/null +++ b/fish/species/tuna_yellowfin/tuna_yellowfin.tres @@ -0,0 +1,30 @@ +[gd_resource type="Resource" script_class="FishData" load_steps=5 format=3] + +[ext_resource type="Script" path="res://fish/fish_data.gd" id="1_fish_data"] +[ext_resource type="Resource" path="res://fishing/bass_catch_profile.tres" id="2_profile"] +[ext_resource type="Script" path="res://fish/fish_availability.gd" id="3_availability_script"] +[ext_resource type="Texture2D" path="res://fish/species/tuna_yellowfin/fish_tuna_yellowfin.png" id="4_texture"] + +[sub_resource type="Resource" id="YellowfinAvailability"] +script = ExtResource("3_availability_script") +preferred_bait_tags = Array[StringName]([&"minnow"]) +preferred_bait_weight_multiplier = 1.4 + +[resource] +script = ExtResource("1_fish_data") +id = &"tuna_yellowfin" +display_name = "yellowfin tuna" +allowed_water_types = 2 +rarity = 2 +base_catch_weight = 1.0 +catch_profile = ExtResource("2_profile") +availability = SubResource("YellowfinAvailability") +weight_min_lb = 15.0 +weight_max_lb = 80.0 +display_scale_min = 1.15 +display_scale_max = 2.1 +display_scale_curve = 0.82 +sell_value_min = 16 +sell_value_max = 36 +sell_value_curve = 0.82 +display_texture = ExtResource("4_texture") diff --git a/tests/economy_regression_validation.gd b/tests/economy_regression_validation.gd index 0f54ca7..51dca5d 100644 --- a/tests/economy_regression_validation.gd +++ b/tests/economy_regression_validation.gd @@ -48,7 +48,7 @@ func _run() -> void: as PlayerAssetReservationService ) assert(player != null) - assert(catalog != null and catalog.candidates.size() == 8) + assert(catalog != null and catalog.candidates.size() == 19) assert(sale_service != null) assert(shop_service != null) assert(session != null and session.is_host()) diff --git a/tests/fish_catalog_content_validation.gd b/tests/fish_catalog_content_validation.gd index 2a74663..59aaf3a 100644 --- a/tests/fish_catalog_content_validation.gd +++ b/tests/fish_catalog_content_validation.gd @@ -40,8 +40,22 @@ const CATFISH_IDS: Array[StringName] = [ const FRESH_WATER_IDS: Array[StringName] = [ &"bluegill", &"carp", &"catfish_blue", &"catfish_channel", &"catfish_flathead", &"catfish_white", + &"goby_round", +] +const SALT_WATER_IDS: Array[StringName] = [ + &"bass", + &"sunfish", + &"tuna_albacore", + &"tuna_bigeye", + &"tuna_bluefin", + &"tuna_skipjack", + &"tuna_yellowfin", + &"salmon_atlantic", + &"salmon_chum", + &"salmon_coho", + &"salmon_pink", + &"salmon_sockeye", ] -const SALT_WATER_IDS: Array[StringName] = [&"bass", &"sunfish"] func _initialize() -> void: @@ -58,9 +72,9 @@ func _run() -> void: func _validate_catalog_and_pools() -> void: - assert(Catalog.candidates.size() == 8) - assert(PondPool.candidates.size() == 6) - assert(OceanPool.candidates.size() == 2) + assert(Catalog.candidates.size() == 19) + assert(PondPool.candidates.size() == 7) + assert(OceanPool.candidates.size() == 12) for fish_id: StringName in ORIGINAL_IDS: var original_fish: FishDataType = Catalog.get_fish_by_id(fish_id) assert(original_fish != null) @@ -104,6 +118,43 @@ func _validate_catalog_and_pools() -> void: assert(fish.sell_value_min == int(values[4])) assert(fish.sell_value_max == int(values[5])) + var expected_tuna_values: Dictionary[StringName, Array] = { + &"tuna_albacore": [2, 1.5, 10.0, 45.0, 12, 24], + &"tuna_bigeye": [3, 0.55, 20.0, 120.0, 22, 48], + &"tuna_bluefin": [4, 0.18, 30.0, 250.0, 35, 90], + &"tuna_skipjack": [1, 3.0, 5.0, 25.0, 8, 16], + &"tuna_yellowfin": [2, 1.0, 15.0, 80.0, 16, 36], + } + for fish_id: StringName in expected_tuna_values: + var fish: FishDataType = Catalog.get_fish_by_id(fish_id) + var values: Array = expected_tuna_values[fish_id] + assert(fish != null and fish.is_selectable()) + assert(int(fish.rarity) == int(values[0])) + assert(is_equal_approx(fish.base_catch_weight, float(values[1]))) + assert(is_equal_approx(fish.weight_min_lb, float(values[2]))) + assert(is_equal_approx(fish.weight_max_lb, float(values[3]))) + assert(fish.sell_value_min == int(values[4])) + assert(fish.sell_value_max == int(values[5])) + + var expected_new_values: Dictionary[StringName, Array] = { + &"goby_round": [0, 8.0, 0.1, 0.6, 2, 3], + &"salmon_atlantic": [3, 0.65, 8.0, 40.0, 20, 42], + &"salmon_chum": [1, 2.5, 6.0, 25.0, 10, 22], + &"salmon_coho": [2, 1.4, 5.0, 30.0, 14, 28], + &"salmon_pink": [1, 3.0, 3.0, 12.0, 8, 15], + &"salmon_sockeye": [2, 1.6, 4.0, 15.0, 12, 24], + } + for fish_id: StringName in expected_new_values: + var fish: FishDataType = Catalog.get_fish_by_id(fish_id) + var values: Array = expected_new_values[fish_id] + assert(fish != null and fish.is_selectable()) + assert(int(fish.rarity) == int(values[0])) + assert(is_equal_approx(fish.base_catch_weight, float(values[1]))) + assert(is_equal_approx(fish.weight_min_lb, float(values[2]))) + assert(is_equal_approx(fish.weight_max_lb, float(values[3]))) + assert(fish.sell_value_min == int(values[4])) + assert(fish.sell_value_max == int(values[5])) + var pond_context := FishingContextType.new() pond_context.location_tags = [&"starter_pond"] pond_context.water_type = WaterType.Type.FRESH_WATER diff --git a/tests/logbook_runtime_validation.gd b/tests/logbook_runtime_validation.gd index b201b9a..923bbf1 100644 --- a/tests/logbook_runtime_validation.gd +++ b/tests/logbook_runtime_validation.gd @@ -49,20 +49,20 @@ func _run() -> void: assert(not hotbar.visible) var entry_buttons: Dictionary = logbook.get("_entry_buttons") - assert(entry_buttons.size() == 6) + assert(entry_buttons.size() == 7) await _capture_if_requested("-unknown") logbook.call( "_select_category", WaterType.Type.FRESH_WATER ) await create_timer(0.25).timeout - assert((logbook.get("_entry_buttons") as Dictionary).size() == 6) + assert((logbook.get("_entry_buttons") as Dictionary).size() == 7) await _capture_if_requested("-fresh") logbook.call("_select_category", WaterType.Type.SALT_WATER) await create_timer(0.25).timeout - assert((logbook.get("_entry_buttons") as Dictionary).size() == 2) + assert((logbook.get("_entry_buttons") as Dictionary).size() == 12) logbook.call("_select_category", WaterType.Type.FRESH_WATER) await create_timer(0.25).timeout - assert((logbook.get("_entry_buttons") as Dictionary).size() == 6) + assert((logbook.get("_entry_buttons") as Dictionary).size() == 7) player.collection_log.mark_discovered(&"bluegill") await process_frame logbook.call("_select_entry", &"bluegill", &"bluegill") @@ -101,7 +101,7 @@ func _validate_save_round_trip( var player := main.get("_player") as Player var catalog := main.get("fish_catalog") as FishPool assert(catalog != null) - assert(catalog.candidates.size() == 8) + assert(catalog.candidates.size() == 19) for index: int in 4: _add_test_catch(player, catalog.candidates[index]) assert(save_manager.save_now()) @@ -122,7 +122,7 @@ func _validate_save_round_trip( assert(player.inventory.replace_all_catches(no_catches, 1)) assert(player.collection_log.replace_discovered_ids(no_discoveries)) assert(save_manager.load_player_data()) - assert(player.inventory.get_all_catches().size() == 8) + assert(player.inventory.get_all_catches().size() == 19) for fish: FishData in catalog.candidates: assert(player.inventory.get_count(fish.id) == 1) assert(player.collection_log.has_discovered(fish.id)) diff --git a/tests/logbook_validation.gd b/tests/logbook_validation.gd index 4c25e35..8003fa4 100644 --- a/tests/logbook_validation.gd +++ b/tests/logbook_validation.gd @@ -49,6 +49,17 @@ func _validate_catalog() -> void: &"catfish_channel", &"catfish_flathead", &"catfish_white", + &"tuna_albacore", + &"tuna_bigeye", + &"tuna_bluefin", + &"tuna_skipjack", + &"tuna_yellowfin", + &"goby_round", + &"salmon_atlantic", + &"salmon_chum", + &"salmon_coho", + &"salmon_pink", + &"salmon_sockeye", ] assert(LogbookCatalog.CATALOG_ORDER == expected_ids) for index: int in expected_ids.size(): @@ -62,7 +73,20 @@ func _validate_catalog() -> void: ) var expected_category: WaterType.Type = ( WaterType.Type.SALT_WATER - if expected_ids[index] in [&"bass", &"sunfish"] + if expected_ids[index] in [ + &"bass", + &"sunfish", + &"tuna_albacore", + &"tuna_bigeye", + &"tuna_bluefin", + &"tuna_skipjack", + &"tuna_yellowfin", + &"salmon_atlantic", + &"salmon_chum", + &"salmon_coho", + &"salmon_pink", + &"salmon_sockeye", + ] else WaterType.Type.FRESH_WATER ) assert( @@ -105,7 +129,7 @@ func _validate_page() -> void: page.call("_select_category", category) await create_timer(0.25).timeout var entries: Dictionary = page.get("_entry_buttons") - assert(entries.size() == (6 if category == WaterType.Type.FRESH_WATER else 2)) + assert(entries.size() == (7 if category == WaterType.Type.FRESH_WATER else 12)) for fish: FishDataType in LogbookCatalog.ordered_species( CatalogResource.candidates ): @@ -155,7 +179,7 @@ func _validate_page() -> void: candidate.display_name ) ) - assert(silhouette_count == 8) + assert(silhouette_count == 19) page.call("_select_category", WaterType.Type.OTHER) await create_timer(0.25).timeout diff --git a/tests/world_time_validation.gd b/tests/world_time_validation.gd index a5fde90..4c25619 100644 --- a/tests/world_time_validation.gd +++ b/tests/world_time_validation.gd @@ -138,7 +138,21 @@ func _validate_fishing_availability() -> void: assert(not night_fish.availability.is_available(day_context)) assert(night_fish.availability.is_available(night_context)) assert(night_fish.availability.is_available(transition_context)) - for fish_id: StringName in [&"bass", &"carp"]: + for fish_id: StringName in [ + &"bass", + &"carp", + &"tuna_albacore", + &"tuna_bigeye", + &"tuna_bluefin", + &"tuna_skipjack", + &"tuna_yellowfin", + &"goby_round", + &"salmon_atlantic", + &"salmon_chum", + &"salmon_coho", + &"salmon_pink", + &"salmon_sockeye", + ]: var all_time_fish: FishDataType = Catalog.get_fish_by_id(fish_id) assert(all_time_fish.availability.is_available(day_context)) assert(all_time_fish.availability.is_available(night_context)) diff --git a/ui/logbook_catalog.gd b/ui/logbook_catalog.gd index ad1a9c9..79c9df9 100644 --- a/ui/logbook_catalog.gd +++ b/ui/logbook_catalog.gd @@ -14,6 +14,17 @@ const CATALOG_ORDER: Array[StringName] = [ &"catfish_channel", &"catfish_flathead", &"catfish_white", + &"tuna_albacore", + &"tuna_bigeye", + &"tuna_bluefin", + &"tuna_skipjack", + &"tuna_yellowfin", + &"goby_round", + &"salmon_atlantic", + &"salmon_chum", + &"salmon_coho", + &"salmon_pink", + &"salmon_sockeye", ] # Short presentation notes are kept here with the catalog contract rather @@ -52,6 +63,50 @@ const FISH_FACTS: Dictionary[StringName, String] = { "white catfish began along the atlantic coast between new york " + "and florida. people later carried them far beyond that home range." ), + &"tuna_albacore": ( + "albacore have unusually long pectoral fins. their warm muscles help " + + "them cruise across wide stretches of open ocean." + ), + &"tuna_bigeye": ( + "bigeye tuna make daily trips between deep, cool water and warmer " + + "surface layers. their large eyes suit those dim depths." + ), + &"tuna_bluefin": ( + "bluefin tuna are powerful ocean travelers. heat retained in their " + + "swimming muscles lets them thrive in surprisingly cold seas." + ), + &"tuna_skipjack": ( + "skipjack travel in fast-moving schools and have dark stripes along " + + "their lower sides. they rarely stop swimming." + ), + &"tuna_yellowfin": ( + "yellowfin are named for their bright yellow fins and finlets. large " + + "schools often gather with other open-ocean hunters." + ), + &"goby_round": ( + "round gobies use fused pelvic fins like a suction cup to hold onto " + + "rocks. they are small fish with a famously large appetite." + ), + &"salmon_atlantic": ( + "atlantic salmon can return from the ocean to the river where they " + + "hatched. unlike many salmon, some survive to make the trip again." + ), + &"salmon_chum": ( + "chum salmon travel immense distances and develop striking bars when " + + "they return to fresh water to spawn." + ), + &"salmon_coho": ( + "coho salmon are agile hunters known for powerful leaps. young coho " + + "may spend more than a year growing in streams." + ), + &"salmon_pink": ( + "pink salmon usually follow a strict two-year life cycle. spawning " + + "males develop the hump that inspired their nickname." + ), + &"salmon_sockeye": ( + "sockeye salmon feed heavily on plankton at sea. adults turn vivid red " + + "as they return inland to spawn." + ), } static func category_for(fish: FishDataType) -> WaterType.Type: