Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds ocean creatures. Part 1: Infrastructure + Fish. #70202

Merged
merged 38 commits into from
Dec 20, 2023

Conversation

gkarfakis19
Copy link
Contributor

@gkarfakis19 gkarfakis19 commented Dec 14, 2023

Summary

Content "Added creatures to populate the new edge ocean."

Purpose of change

Added multiple creatures to populate the new ocean. Currently focused on just normal (unmutated) sea-life.

Current list:

  • Eels (existed already)
  • Salmon (existed already)
  • Atlantic Cod
  • Haddock
  • Atlantic Bluefin Tuna
  • Atlantic Halibut
  • Pollock
  • Flounder
  • Mackerel
  • Striped Bass
  • Bluefish
  • Black Sea Bass (blackfish)
  • Scup (Porgy)

These creatures will be split onto 2 groups: ocean shore and deep ocean. I have added some C++ changes to the mongroup placer that facilitates this. It currently uses the place_oceans noise generator with a higher threshold, which works well. The actual number may need to be rebalanced.

Please give me more ideas for "monsters" that I can add. It would be cool to see some mutated versions of ocean creatures perhaps.

Describe the solution

Some small code infrastructure work to add the monster spawn groups to the ocean.
I simply replicated the lake/river code. It might be better to JSONify this and not use C++ at all for it. Please let me know if that is the case.

Describe alternatives you've considered

Not adding any monsters.

Testing

Teleported to ocean, verified that ocean shore and ocean deep mongroups spawn appropriately.

Additional context

@Karol1223
Copy link
Contributor

Why are you just adding all the fish to the ocean? Please only add those that actually live in saltwater, otherwise this is just more work for people cleaning this mongroup up in the future.

@github-actions github-actions bot added [JSON] Changes (can be) made in JSON Map / Mapgen Overmap, Mapgen, Map extras, Map display Spawn Creatures, items, vehicles, locations appearing on map [C++] Changes (can be) made in C++. Previously named `Code` astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions labels Dec 14, 2023
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Dec 14, 2023
@worm-girl
Copy link
Contributor

Absolutely none of those fish nor the naiads are saltwater animals.

@Karol1223
Copy link
Contributor

The eel and the salmon can be in the ocean, but anything else out. I'd add lobsters too, given we already have them in the code.

@gkarfakis19
Copy link
Contributor Author

gkarfakis19 commented Dec 14, 2023 via email

@Karol1223
Copy link
Contributor

You should draft the PR, then.

@worm-girl
Copy link
Contributor

worm-girl commented Dec 14, 2023

Off the top of my head:

Giant stinging anemone with a reach grab-and-drag attack. Stationary, but still dangerous.

Gigantic starfish with too many arms. Real slow, but don't get grabbed.

Return of the Jawed Terror.

Zombie Orca

All the existing octopus/kraken/scylla stuff should be moved out to the ocean. This would require relocating their lair, not just letting them roam free.

Regular animals include seabass, bluefin tuna, common octopus, two species of dolphin, harbor porpoise, crabs, mahi-mahi, flounder, weakfish, and shrimp.

We might want to also try and implement foraging. That would cover sessile or nearly sessile animals like clams, scallops, mussels, quahogs, periwinkles, and sea urchins. These would be items, not monsters, the same as the snails you can forage from underbrush in forests.

The best way to do those guys would probably be making tide pools or underwater rock clusters that can be examined, the same as you examine underbrush.

@Karol1223
Copy link
Contributor

Karol1223 commented Dec 14, 2023

Just for the love of god don't do it all in one PR or this will be a nightmare to review.

What I think is valid for this PR, though, is differentiating between coastal spawns and pelagic spawns that start some time into the ocean (0.5 OM? I'm eyeballing) for possible future whales and shit like that. Also on the topic of whales, I'd refrain from adding any animals that weigh over 1 ton, because we can't properly simulate them with 1000l tile volume limit.

@Procyonae
Copy link
Contributor

I'd suggest just starting with real fish for the first PR and then adding whatever you feel like on top of that, also I'm not sure how bird AI works but they might not like the lack of anywhere to land

@TheSaddestGoomba
Copy link
Contributor

Oyster Toadfish are another local marine fish. They're nasty enough by nature. I went on a fishing trip in the Chesapeake Bay and was told to just cut the line if you catch one. They're not big but they have a venomous spine and a toothy maw made to crack open shellfish, very dangerous to handle. They could be a serious threat after some mutation.

@I-am-Erk
Copy link
Member

I'd recommend keeping this one small and doing more in a follow-up, a lot of the ideas suggested would work best isolated to lower z-levels for example.

While copying lake mapgen, make sure not to overspawn like lakes do. That needs to be audited at some point

@gkarfakis19 gkarfakis19 marked this pull request as draft December 14, 2023 19:04
@gkarfakis19 gkarfakis19 changed the title Adds ocean creatures [WIP] Adds ocean creatures Dec 14, 2023
@gkarfakis19 gkarfakis19 changed the title Adds ocean creatures Adds ocean creatures. Part 1: Fish. Dec 14, 2023
@github-actions github-actions bot removed astyled astyled PR, label is assigned by github actions json-styled JSON lint passed, label assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions labels Dec 14, 2023
@gkarfakis19
Copy link
Contributor Author

I have included some C++ changes within the mongroup placer so that ocean shore vs deep ocean monster groups are placed depending on their proximity to the shore.

@carmakazi
Copy link
Contributor

carmakazi commented Dec 15, 2023

Largemouth bass is not a saltwater fish, but the Striped Bass (mon_fish_pbass), which also already exists, is a saltwater fish that migrates to freshwater to spawn. I would recommend replacing the largemouth spawns you have with striped ones.

data/json/monsters/fish.json Outdated Show resolved Hide resolved
data/json/monsters/fish.json Outdated Show resolved Hide resolved
data/json/monsters/fish.json Outdated Show resolved Hide resolved
gkarfakis19 and others added 7 commits December 14, 2023 20:50
Co-authored-by: Jianxiang Wang (王健翔) <qrox@sina.com>
Co-authored-by: Jianxiang Wang (王健翔) <qrox@sina.com>
Co-authored-by: Jianxiang Wang (王健翔) <qrox@sina.com>
@github-actions github-actions bot added the BasicBuildPassed This PR builds correctly, label assigned by github actions label Dec 15, 2023
@Karol1223
Copy link
Contributor

Can you organize the fish JSON so that the fry of the respective species are right next to their adult form instead of at the bottom of the file? This will be uncomfortable to work with otherwise, and in the future PRs this wouldn't be allowed to preserve git blame.

data/json/monsters/fish.json Outdated Show resolved Hide resolved
@gkarfakis19
Copy link
Contributor Author

Failing test does not seem to be related to my changes.

data/json/items/comestibles/egg.json Outdated Show resolved Hide resolved
Copy link
Contributor

Spell checker encountered unrecognized words in the in-game text added in this pull request. See below for details.

Click to expand
  • Also known as porgy, the scup is a small fish commonly found in Atlantic coastal waters, recognizable by its silver body with blue and purple tinges.
  • scup
  • scup (porgy) fry

This alert is automatically generated. You can simply disregard if this is inaccurate, or (optionally) you can also add the new words to tools/spell_checker/dictionary.txt so they will not trigger an alert next time.

@gkarfakis19
Copy link
Contributor Author

This seems ready to merge.

@Maleclypse Maleclypse merged commit a2a8907 into CleverRaven:master Dec 20, 2023
25 checks passed
@gkarfakis19 gkarfakis19 deleted the dev_ocean2 branch December 20, 2023 00:43
@DukePaulAtreid3s
Copy link
Contributor

Can we get some Mutant Sea Bass rep?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
astyled astyled PR, label is assigned by github actions BasicBuildPassed This PR builds correctly, label assigned by github actions [C++] Changes (can be) made in C++. Previously named `Code` [JSON] Changes (can be) made in JSON json-styled JSON lint passed, label assigned by github actions Map / Mapgen Overmap, Mapgen, Map extras, Map display Spawn Creatures, items, vehicles, locations appearing on map
Projects
None yet
Development

Successfully merging this pull request may close these issues.