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

Populate rules for the Spell-Slinger #110

Open
ChaelCodes opened this issue Apr 19, 2020 · 0 comments
Open

Populate rules for the Spell-Slinger #110

ChaelCodes opened this issue Apr 19, 2020 · 0 comments
Labels
good first issue Good for newcomers 🎃Hacktober🎃 Let's build together! Hacktoberfest Tickets groomed for Hacktoberfest 2020

Comments

@ChaelCodes
Copy link
Owner

Describe the Feature

The Spell-Slinger Playbook exists, but there are no moves, improvements, nor gear populated. This makes it rather hard to play as the Spell-Slinger.
We have seedfiles in HK that will load data into the database upon deployment and creation. These files should be idempotent and would help us load rules governing the spell-slinger into the database.

Describe the Solution

Solution
Add the Spell-Slinger improvements, moves, and gear to db/seeds/playbooks/spell_slinger.seeds.
utilize an example from the Chosen seedfile.
The Spell-Slinger Rules can be found at https://www.evilhat.com/home/wp-content/uploads/2019/03/Monster-of-the-Week-Revised-Playbooks.pdf
The seedfile will be automatically run in production upon merging. You can test it locally by running bundle exec rake db:seed:playbooks:spell_slinger.

Moves

If the move is rollable and has a result, the type is Moves::Rollable and the results are broken between six_and_under, seven_to_nine, and ten_plus. Don't forget to add the rating for the roll!
If the move is flavor text, modifies a roll, or does not result in a roll, the type is Moves::Descriptive.

Gear

Gear has 6 attributes: name, description, harm, armor, playbook_id, and tag_list. The playbook_id should always be @spell_slinger.id. name is the name of the weapon, description is optional. If playbook_id is included in the find_or_create_by, then it does not need to be in the hash of attributes. tag_list should be an array of strings. The easiest way to supply that is the following syntax: %w[close reload small]

Improvements

Several different types of Improvements need to be loaded. Here is a series of examples of how to translate common improvements to a model.

Description Type Attributes Notes
Get +1 Sharp, max +3 Improvements::RatingBoost stat_limit: 3, rating: :sharp
Get +1 Tough, max +2 Improvements::RatingBoost stat_limit: 2, rating: :tough
Take another Spell-Slinger move Improvements::PlaybookMove stat_limit: 0 If there is more than 1 Take another playbook move, add a stat_limit with a negative number. This will make unique PlaybookMoves, so they aren't overwritten or deduped.
Take another Spell-Slinger move Improvements::PlaybookMove stat_limit: -1
Gain an ally: one of your old crew. NOT IMPLEMENTED See #94
Recover a stash of money from the old days, enough to live without care... for a year or two. NOT IMPLEMENTED
Take a move from another playbook Improvements::AnotherMove stat_limit: 0 See Improvements::PlaybookMove for notes on uniqueness
Take a move from another playbook Improvements::AnotherMove stat_limit: 0

Advanced Improvements

All advanced improvements have the attribute advanced: true, so they can't be added until you have 5 improvements.

Description Type Attributes Notes
Get +1 to any rating, max +3. Improvements::RatingBoost stat_limit: 3 If rating is not specified, the player is prompted to select a rating
Change this hunter to a new type Improvements::ChangePlaybook
Create a second hunter to play as well as this one. NOT IMPLEMENTED see #100
Mark two of the basic moves as advanced. Improvements::AdvancedMove
Mark another two of the basic moves as advanced. Improvements::AdvancedMove No uniqueness problem, there's a different description
Retire this hunter to safety. Not Implemented See #101
Erase one used luck mark from your playbook. Improvements::GainLuck
@ChaelCodes ChaelCodes added good first issue Good for newcomers Hacktoberfest Tickets groomed for Hacktoberfest 2020 🎃Hacktober🎃 Let's build together! labels Sep 22, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers 🎃Hacktober🎃 Let's build together! Hacktoberfest Tickets groomed for Hacktoberfest 2020
Projects
None yet
Development

No branches or pull requests

1 participant