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

Allow taming ducks with birdseed #47974

Closed
wants to merge 1,055 commits into from

Conversation

Proxiehunter
Copy link

@Proxiehunter Proxiehunter commented Mar 10, 2021

Category "Features"

Purpose of change

Ducks seem to be untameable currently. Since real life farmers have been known to keep ducks for duck meat, duck eggs, and feathers it seems that they should be tameable in game the same way chickens are. Birdseed seems the most logical way to do that.

Consider also applying to geese which are also sometimes kept by real life farmers and to crows which are relatively easily tamed in real life.

This would increase players access to eggs for both cooking and mutagen creation.

Describe the solution

Replace the current entry for ducks under the bird.json with this one (Updated with code from the correct fork this time I hope):

"id": "mon_duck",
"type": "MONSTER",
"name": { "str": "duck" },
"description": "A mallard duck, often seen around rivers and other bodies of water. It feeds primarily on insects, seeds, roots, and, pre-Cataclysm, bread scraps.",
"default_faction": "small_animal",
"bodytype": "bird",
"categories": [ "WILDLIFE" ],
"species": [ "BIRD" ],
"volume": "1500 ml",
"weight": "1500 g",
"hp": 4,
"speed": 140,
"material": [ "flesh" ],
"symbol": "v",
"color": "brown",
"aggression": -99,
"morale": -8,
"melee_dice": 1,
"melee_dice_sides": 1,
"melee_cut": 0,
"dodge": 4,
"harvest": "bird_small",
"fear_triggers": [ "SOUND", "PLAYER_CLOSE", "FRIEND_ATTACKED", "FRIEND_DIED", "FIRE", "HURT" ],
"death_function": [ "NORMAL" ],
"reproduction": { "baby_egg": "egg_duck", "baby_count": 3, "baby_timer": 5 },
"baby_flags": [ "SPRING" ],
"biosignature": { "biosig_item": "feces_bird", "biosig_timer": 5 },
"flags": [ "SEES", "HEARS", "SMELLS", "ANIMAL", "PATH_AVOID_DANGER_1", "WARM", "FLIES", "SWARMS", "BIRDFOOD" ]

The bold indicating the only change to the entry. As I understand it this would allow ducks to be tamed with bird seed.

Describe alternatives you've considered

Alternative solutions are to either use something else to tame them (not sure how that works, could BREAD be added or is just limited to the typical ones like bird food, cat food, dog food, and cattle fodder?) or continue to not allow players to tame ducks.

Testing

I have not tested but this is a solution I've seen offered when a player wants to tame a creature that was not initially designed to be tamed and this simple edit should not cause errors. I can test it in the next few days if need be.

olanti-p and others added 30 commits January 24, 2021 19:34
Switch string_formatter to use fmtlib
Fix displaying of SUVs hood by Stallion
police suvs update
Changes to JSON data for consistency
Fix uilist filtering with non-ascii chars on Windows
Fix 'Wait for...' query when player doesn't have a watch.
Some changes/fixes for debug wish item menu
Fix displaying of SUVs hood by Stallion
Move cached options to separate file, make PICKUP_RANGE configurable
CBM installation now always installs the bionic itself. Instead of failure, the previous failure effect is applied in addition to the installation. Uninstallation can still fail.
HP damage from installation no longer kills the player. If it would kill, it causes an infection on head and/or torso instead.

Authored-by: firestorm01x2 <firestorm01x2gmail.com>
Coolthulhu and others added 14 commits March 14, 2021 10:37
Snippet/speech additions related to Apis
Fix horse tack recipe being unlearnable
Update cargo capacity (continuation)
[CR]Fix body temperatures being too low
* Redocue chance of dropping weapons and ammo from zombie soldiers and cops

Redocue chance of dropping weapons and ammo from zombie soldiers and cops

* lint

lint

* Add damage and dirt for soldier gun drop

Add damage and dirt for soldier gun drop

* add damage to bio op dropped guns

add damage to bio op dropped guns

* lint

lint

* Cop weapons back to 50

Cop weapons back to 50

* soldier grenades back to 20

* Uppding big guns chance to 50% for dead soldiers

* Rebalace drop again

Rebalace drop again

* lint

lint

* lint again

lint again

* light rebalance

light rebalance

* lint

* Clean Pistol to holster

Clean Pistol to holster

Co-authored-by: firestorm01x2 <firestorm01x2gmail.com>
Coolthulhu and others added 10 commits March 15, 2021 18:08
* Additional cleanup for tests

* Tests for effects & mutations from enchantments

* Enchantment values: stats

* Enchantment values: SPEED

* Some tests for speed / moves gain

* Simplify check for enchantment 'has' condition

* Clean up enchantment bonus calculation

1. Fix final value being out of bounds in some places.
2. Changed the formula for combining multiple enchantments to produce more easily predictable results.
3. Remove dead code

* Renamed 2 functions to be less ambiguous

* Enchantment values: ATTACK_COST, ITEM_ATTACK_COST

* Enchantment values: MOVE_COST

* Enchantment values: METABOLISM

* Enchantment values: MANA_CAP, MANA_REGEN + mana tests

* Migration for old enchant val enum strings

* Consistent rounding for enchantment bonuses

* fix typo

* Revert effects cleanup change
* Adding various things

* Adding various things

* Add 2 other helmets surv, fix positions

* fix craft new backpack

* Casings fix

* fix

* delete casings craft

* fix

* fix

* delete "reversible": true on survivor_bigback

* another backpack

* fix

* fix x2

* fix x3

* Update data/json/items/armor/storage.json

Co-authored-by: Oleg Antipin <olanti-p@yandex.ru>

* fix id craft

Co-authored-by: Oleg Antipin <olanti-p@yandex.ru>
Switch cata_printf to use printf
* Make talk_topic string extraction consistent between runs

* Remove <locale> include from output.h

* Add wrapper around ngettext(), rename npgettext()

Now all *gettext funcitons and _() macro are cata's wrappers.

This is necessary since even without explicit libintl.h include
<locale> header pulls in libintl.h on some platforms anyway.
This behavior cannot be disabled, and could lead to a conflict
between cata's ngettext and libintl's ngettext.

As a bonus, this allowed to remove <libintl.h> and <locale>
includes from translations.h

* Replace ngettext() calls with wrapper, rename usages of npgettext()

Done via find-and-replace

* Test that translations return translated string

* When testing, print lang switch related info via cata_printf

Because DebugLog() does not immediately append newlines,
and that makes the rest of the log ugly.

* Always print rng seed for tests

* Remove unused macro

Static linkage is either broken anyway (msys), or works fine
even without this macro (cygwin, mingw cross-compiled).

* Remove unneeded check in translation test

In this test we don't care if that's the original string,
just that the string is a correct translation.
@anothersimulacrum
Copy link
Member

@Proxiehunter Can you please either close this PR or fix it up?

@ZhilkinSerg ZhilkinSerg changed the base branch from master to 0.F-dev March 25, 2021 07:04
@ZhilkinSerg ZhilkinSerg changed the base branch from 0.F-dev to master March 25, 2021 07:04
@ZhilkinSerg
Copy link
Contributor

It looks like you have opened this pull request accidentally.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[JSON] Changes (can be) made in JSON
Projects
None yet
Development

Successfully merging this pull request may close these issues.