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

[WIP] Naive first draft beginning bowyery overhaul #39239

Closed
wants to merge 13 commits into from

Conversation

OddSkollar
Copy link
Contributor

@OddSkollar OddSkollar commented Apr 4, 2020

Summary

SUMMARY: Content "Beginning bowyery overhaul by adding new 'bowstring' items and changing extant archery-bow recipes to use them."

Purpose of change

To begin laying the groundwork for more in-depth bow crafting and rebalance of archery.

Describe the solution

Primarily replaces cordage requirements for bows with the new 'bowstring' and 'makeshift bowstring' components, as a start to requiring more tools and character knowledge for bow manufacture.

Describe alternatives you've considered

None. The author was told to just do something and PR it for review rather than agonizing over details. This is his attempt to comply.

Testing

Continually tested ability to craft new items with debug characters of various skill levels, and availability of different books.

Additional context

The author's first PR. He's not bent on any of these changes, just wants to get familiar with the process here.

Commit log/details:

  • Add new crafting components "bowstring" and "makeshift bowstring".

  • "Makeshift bowstring" is known by all characters, and requires 3 long strings or any equivalent cordage.

  • "Bowstring" requires Archery and Survival both at level 2, and is not auto-learned. It can be learned from most survival books, any archery book, and Bowyer's Buddy, with a Survival requirement of 1 (to know what 'tallow' is).

  • Recipe is 12 sources of small flame/heat (lit fire+candle charges, or matches/lighter/soldering iron charges), a tool with Cutting 1, 3 Long Strings equivalent of cordage from plant or animal sources, and 1 of tallow(any source), [bees]wax, or a candle.

  • This has two recipes with different sources of heat to seal its thread knots.

  • The book-learning gate for the bowstring recipes is meant to reflect the author's own ignorance of the topic, despite having consumed more than his share of "survival media".

  • If there's a way to have the self-learning requirement for an item to be higher than the requirement to simply craft it, Survival 3 may be appropriate to auto-learn these recipes.

%%

  • Rename "self bow" to "makeshift shortbow" in-game
  • This better lines up with existing conventions, and helps draw a clear line between "makeshift" (unskilled, shoddy materials and supplies) and properly-crafted bows.

  • TODO: rename item id in backend to reflect this. Shoving this problem forward to a future branch pending author's ability to decode mysterious compiler complaints.

%%

  • Change "self bow->makeshift short bow" description to be more concise and [hopefully] in line with the rest of the game's humor.

  • Change "longbow" -> "flatbow" in-game, per Discord discussion. Update description.

  • TODO: rename item id in backend to reflect this. Shoving this problem forward to a future branch pending author's ability to decode mysterious compiler complaints.
  • Add new weapon and corresponding recipe "makeshift flatbow".
  • Stats are placeholders, but meant to reflect a significant improvement over the makeshift shortbow (formerly self bow), and increased bulk/awkwardness over the standard flatbow. In terms of gameplay, this bow is meant to help archery-focused players survive until they're able to find a bowstring or a recipe thereto.

%%

  • Change recipes of craftable bows to use new item rather than cordage
  • Makeshift bows use makeshift bowstrings. All other bows use standard bowstrings.
  • Change 'longbow->flatbow' recipe to strictly use long sticks. No planks allowed. This is temporary anyway, until implementation of staves, seasoning, and other details.

%%

Screenshots of new items/recipes below, as well as a screenshot of updated longbow recipe for reference.

bowstring 1
image

bowstring 2
image

makeshift bowstring
image

makeshift shortbow
image

makeshift longbow
image

reference longbow
image

* Add crafting components "bowstring" and "makeshift bowstring" used for bow manufacture.
- The former has two recipes with different sources of heat to seal thread knots. It is not auto-learned, but can be found in any archery book, most survival books, and Bowyer's Buddy.
- The latter is auto-learned at the game's start, and not much more resource-intensive than previous recipes.

* Rename "self bow" to "makeshift shortbow"

* Add new weapon and corresponding recipe "makeshift longbow".
- Stats are placeholders, but meant to reflect an improvement over the makeshift shortbow, and increased bulk/awkwardness over the standard longbow. In terms of gameplay, this bow is meant to help archery players survive until they're able to find a bowstring or a recipe thereto.
- The book-learning Survival gate for the bowstring recipe is meant to reflect my own ignorance of the topic, despite having consumed more than my share of "survival media".
- I don't know if there's a way to have the self-learning requirement for an item to be higher than the requirement to simply craft it, but if it's possible, Survival 3 may be appropriate to self-learn this recipe

* Change recipes of craftable bows to use new item rather than cordage
- Makeshift bows use makeshift bowstrings. All other bows use standard bowstrings.

* Change longbow recipe to strictly use long sticks. No planks allowed. This is temporary anyway, until implementation of staves and seasoning.

* Change NPC inventories to carry new makeshift bows rather than self bow to appease runtime barks
@OddSkollar
Copy link
Contributor Author

I've done my best to comply with the style guides - both for the PR and the code itself. Judging by the amount of failed tests, this was less than successful. I'll be working on fixing those presently.

@CountAlex
Copy link
Contributor

I've done my best to comply with the style guides - both for the PR and the code itself. Judging by the amount of failed tests, this was less than successful. I'll be working on fixing those presently.

Remove square brackets around "Content" in first line of PR description, that should do the trick.

appease clang
@Brian-Otten
Copy link
Contributor

This is looking good to me as a first PR, and as a start to making bow crafting more reasonable. It's not a complete rework yet but this is good infrastructure for when bow crafting is more fully reworked.
As far as i can tell there should be no trouble merging this when it's finished.

Update bowstring recipe to use this
Update 'waterproofing' requirement to use this
data/json/items/generic/string.json Outdated Show resolved Hide resolved
data/json/items/ranged/archery.json Outdated Show resolved Hide resolved
data/json/items/ranged/archery.json Outdated Show resolved Hide resolved
Player may not have made a 'previous attempt'.
base 'mixed fabric' stats on cotton, but prohibit disassembly

apply material to new bowstring items
appease cryptic compiler errors

also rename "makeshift longbow" to "makeshift flatbow"
for god's sake
electric boogaloo
forgot to update longbow recipe to reflect flatbow name
Comment on lines +210 to +214
"tools": [ [ [ "fire", -1 ] ], [ [ "candle", 12 ] ] ],
"qualities": [ { "id": "CUT", "level": 1 } ],
"components": [
[ [ "cordage_36", 3 ], [ "sinew", 900 ] ],
[ [ "wax_product", 1, "LIST" ] ],
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Candle would be listed twice - through wax_product requirement and tools section.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's by design. You or may not be able to use the same candle that you're effectively disassembling and using for wax as a makeshift lighter -- and it doesn't appear that it's possible to use candle charges as a component, given that candles (unlike matches) aren't stored in a stack of charges. I'm not sure how best to represent this.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why do we need exactly the candle (as a tool).

Copy link
Contributor Author

@OddSkollar OddSkollar Apr 5, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still learning about a lot of this stuff, which is why this is marked both by [WIP] and "Naive first draft". I don't think it should be actually pulled into the game until I've had time to internalize some of the expertise of my consultants and implement a lot more infrastructure. Everything so everything so far reflects my very narrow understanding.

In said narrow understanding, you need a small flame specifically in order to seal the knots reinforcing the bowstring's attachment points and the one over which the arrow is held without burning and thereby weakening the bowstring's cord itself. I have difficulty visualizing how this could be done safely/reliably with something as large as a campfire. This assumption may be incorrect, and is one of the many, many things I intend to run past the people who know about this stuff.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is one of these cases where we could use abstraction. I.e. survivor is able to properly "apply" large fire from a campfire even for fine works.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I've gotten massively distracted by other projects. I need to review this PR to make sure it's in line with archery nerfs and update screenshots. Re: this specific input, I'm still inclined to disagree but I'll cave to seniority for now and make this change in the morning unless someone else pipes up.

remove redundant field from makeshift shortbow recipe
capitalize Mixed Fabric
@mlangsdorf mlangsdorf added [JSON] Changes (can be) made in JSON Crafting / Construction / Recipes Includes: Uncrafting / Disassembling Game: Balance Balancing of (existing) in-game features. Ranged Ranged (firearms, bows, crossbows, throwing), balance, tactics Items: Archery Bows, crossbows, arrows, bolts labels Apr 7, 2020
@stale
Copy link

stale bot commented May 14, 2020

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. Please do not 'bump' or comment on this issue unless you are actively working on it. Stale issues, and stale issues that are closed are still considered.

@stale stale bot added the stale Closed for lack of activity, but still valid. label May 14, 2020
@stale
Copy link

stale bot commented Jun 13, 2020

This issue has been automatically closed due to lack of activity. This does not mean that we do not value the issue. Feel free to request that it be re-opened if you are going to actively work on it

@stale stale bot closed this Jun 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Crafting / Construction / Recipes Includes: Uncrafting / Disassembling Game: Balance Balancing of (existing) in-game features. Items: Archery Bows, crossbows, arrows, bolts [JSON] Changes (can be) made in JSON Ranged Ranged (firearms, bows, crossbows, throwing), balance, tactics stale Closed for lack of activity, but still valid.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants