-
Notifications
You must be signed in to change notification settings - Fork 26
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 Spooky #187
base: main
Are you sure you want to change the base?
Changes from 3 commits
69f794f
d0ed980
3aaa913
712c8b2
907bfcd
c9f5a50
78da8a4
5de4acd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,274 @@ | ||
# frozen_string_literal: true | ||
|
||
after :playbook do | ||
@spooky = Playbook.find_by! name: 'The Spooky' | ||
|
||
###### | ||
# Moves | ||
# ratings: charm: 0, cool: 1, sharp: 2, tough: 3, weird: 4 | ||
###### | ||
[{ | ||
name: 'Telepathy', | ||
type: 'Moves::Descriptive', | ||
playbook_id: @spooky.id, | ||
description: 'You can read people’s thoughts and put words | ||
in their mind. This can allow you to investigate a mystery | ||
or read a bad situation without needing to actually talk. | ||
You an also manipulate someone without speaking. You still | ||
roll moves as normal, except people will not expect the | ||
weirdness of your mental communication.' | ||
} | ||
{ | ||
name: 'Hex', | ||
type: 'Moves::Descriptive', | ||
playbook_id: @spooky.id, | ||
description: 'When you cast a spell (with use magic), as | ||
well as the normal effects, you may pick from the following: | ||
• The target contracts a disease. • The target immediatly | ||
suffers harm (-2 harm magic ignore-armor • The target breaks | ||
something precious or important' | ||
}, | ||
{ | ||
name: 'The Sight', | ||
type: 'Moves::Descriptive', | ||
playbook_id: @spooky.id, | ||
description:'You can see the invisible, especially spirits and magical | ||
influences. You may communicate with (maybe even make deals with) the | ||
spirits you see, and they give you more opportunities to spot | ||
clues when you investigate a mystery.' | ||
}, | ||
{ | ||
name: 'Premonitions', | ||
rating: :weird, | ||
type: 'Moves::Rollable', | ||
playbook_id: @spooky.id, | ||
six_and_under: 'On a miss, you get a vision of something bad happening | ||
to you and the Keeper holds 3, to be spent one-for-one as penalties to | ||
rolls you make.', | ||
seven_to_nine: 'On a 7-9+ you get clouded images of some-thing bad that | ||
is yet to happen: mark experience if you stop it.', | ||
ten_plus: 'On a 10+, you get a detailed vision of some-thing bad that is | ||
yet to happen. You take +1 forward to prevent it coming true, and mark | ||
experience if you stop it.', | ||
description: 'At the start of each mystery, roll +Weird.' | ||
}, | ||
{ | ||
name: 'Hunches', | ||
rating: :sharp, | ||
type: 'Moves::Rollable', | ||
playbook_id: @spooky.id, | ||
six_and_under: 'On a miss, you get there just in time to be in trouble | ||
yourself', | ||
seven_to_nine: 'On a 7-9, you get there late—in time to intervene, but | ||
not prevent it altogether.', | ||
ten_plus: 'On a 10+ you knew where you needed to go, just in time to | ||
get there.', | ||
description: 'When something bad is happening (or just about to happen) | ||
somewhere that you aren’t, roll +Sharp' | ||
}, | ||
{ | ||
name: 'Tune In', | ||
rating: :sharp, | ||
ChaelCodes marked this conversation as resolved.
Show resolved
Hide resolved
|
||
type: 'Moves::Rollable', | ||
playbook_id: @spooky.id, | ||
six_and_under: 'On a miss, the monster becomes aware of you.', | ||
seven_to_nine: 'On a 7-9, hold 1.', | ||
ten_plus: 'On a 10+, hold 3.', | ||
description: 'You can attune your mind to a monster or minion. | ||
Roll +Weird. Spend one hold to ask the Keeper one of the | ||
following questions, and gain +1 ongoing while acting on the | ||
answers. • Where is the creature right now? • What is it | ||
planning to do right now? • Who is it going to attack | ||
next? • Who does it regard a the biggest threat? How | ||
can i attract its attention?' | ||
}, | ||
{ | ||
name: 'The Big Whammy', | ||
type: 'Moves::Descriptive', | ||
playbook_id: @spooky.id, | ||
description:'You can use your powers to kick some ass: roll +Weird | ||
instead of +Tough. The attack has 2-harm close obvious ignore-armor. On | ||
a miss, you’ll get magical backlash.' | ||
}, | ||
{ | ||
name: 'Jinx', | ||
rating: :weird, | ||
type: 'Moves::Rollable', | ||
playbook_id: @spooky.id, | ||
six_and_under: 'On a miss, the Keeper holds 2 over you to be used in the | ||
same way.', | ||
seven_to_nine: 'On a 7-9, hold 1.', | ||
ten_plus: 'On a 10+, hold 2.', | ||
description: 'You can encourage coincidences to occur, the way you want. | ||
When you jinx a target, roll +Weird. Interfere with a hunter, giving | ||
them -1 forward. Help a hunter, giving them +1 forward, by interfering | ||
with the enemy. Interfere with what a monster, minion, or bystander is | ||
trying to do. Inflict 1-harm on the target due to an accident. The target | ||
finds something you left for them. The target loses something that you | ||
will soon find.' | ||
}, | ||
].each do |move| | ||
Move.find_or_create_by!(move) | ||
end | ||
|
||
##### | ||
# Gear | ||
##### | ||
|
||
# Note: Spooky have custom weapons | ||
[ | ||
{ | ||
name: '.38 revolver', | ||
armor: 2, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be harm, not armor. Same goes for the rest of the weapons. |
||
tag_list: %w[close reload loud] | ||
}, | ||
{ | ||
name: '9mm', | ||
armor: 2, | ||
tag_list: %w[close loud] | ||
}, | ||
{ | ||
name: 'Hunting rifle', | ||
armor: 2, | ||
tag_list: %w[far loud] | ||
}, | ||
{ | ||
name: 'Shotgun', | ||
armor: 3, | ||
tag_list: %w[close messy] | ||
}, | ||
{ | ||
name: 'Big knife', | ||
armor: 1, | ||
tag_list: %w[hand] | ||
}, | ||
].each do |gear_attrs| | ||
gear = Gear.find_or_create_by!( | ||
name: gear_attrs[:name], | ||
playbook: @spooky | ||
) | ||
gear.update!(gear_attrs) | ||
|
||
##### | ||
# Improvements | ||
##### | ||
[ | ||
{ | ||
description: 'Get +1 Weird, max +3', | ||
type: 'Improvements::RatingBoost', | ||
stat_limit: 3, | ||
rating: :weird, | ||
playbook: @spooky | ||
}, | ||
{ | ||
description: 'Get +1 Charm, max +2', | ||
type: 'Improvements::RatingBoost', | ||
stat_limit: 2, | ||
rating: :charm, | ||
playbook: @spooky | ||
}, | ||
{ | ||
description: 'Get +1 Cool, max +2', | ||
type: 'Improvements::RatingBoost', | ||
stat_limit: 2, | ||
rating: :cool, | ||
playbook: @spooky | ||
}, | ||
{ | ||
description: 'Get +1 Sharp, max +2', | ||
type: 'Improvements::RatingBoost', | ||
stat_limit: 2, | ||
rating: :sharp, | ||
playbook: @spooky | ||
}, | ||
{ | ||
description: 'Take another Spooky move', | ||
type: 'Improvements::PlaybookMove', | ||
playbook: @spooky, | ||
stat_limit: 0 | ||
}, | ||
{ | ||
description: 'Take another Spooky move', | ||
type: 'Improvements::PlaybookMove', | ||
playbook: @spooky, | ||
# Used to differentiate (and initially hide this) from the identical improvement above. | ||
stat_limit: -1 | ||
}, | ||
{ | ||
description: 'Change some, or all, your dark side tags', | ||
playbook: @spooky, | ||
}, | ||
{ | ||
description: 'Get a mystical library, like the Expert’s haven option', | ||
type: 'Improvements::AnotherMove', | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This should be 'Improvements::HavenMove' There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We should make an issue for this move too, I'll make it in the morning. Haven Move currently does not let you specify the move. |
||
playbook: @spooky, | ||
stat_limit: 0 | ||
}, | ||
{ | ||
description: 'Take a move from another playbook', | ||
type: 'Improvements::AnotherMove', | ||
playbook: @spooky, | ||
stat_limit: 0 | ||
}, | ||
{ | ||
description: 'Take a move from another playbook', | ||
type: 'Improvements::AnotherMove', | ||
playbook: @spooky, | ||
# Used to differentiate (and initially hide this) from the identical improvement above. | ||
stat_limit: -1 | ||
}, | ||
{ | ||
description: 'Get +1 to any rating, max +3.', | ||
playbook: @spooky, | ||
type: 'Improvements::RatingBoost', | ||
stat_limit: 3, | ||
advanced: true | ||
}, | ||
{ | ||
description: 'Change this Hunter to a new type.', | ||
playbook: @spooky, | ||
type: 'Improvements::ChangePlaybook', | ||
advanced: true | ||
}, | ||
{ | ||
description: 'Create a second hunter to play as well as this one.', | ||
playbook: @spooky, | ||
advanced: true | ||
}, | ||
{ | ||
description: 'Mark two of the basic moves as advanced', | ||
playbook: @spooky, | ||
type: 'Improvements::AdvancedMove', | ||
advanced: true | ||
}, | ||
{ | ||
description: 'Mark another two of the basic moves as advanced', | ||
playbook: @spooky, | ||
type: 'Improvements::AdvancedMove', | ||
advanced: true | ||
}, | ||
{ | ||
description: 'Retire this hunter to safety.', | ||
playbook: @spooky, | ||
type: 'Improvements::Retire', | ||
advanced: true | ||
} | ||
{ | ||
description: 'You discover how to use your powers at a lower price. | ||
Delete one dark side tag permanently.', | ||
playbook: @spooky, | ||
advanced: true | ||
}, | ||
{ | ||
description: 'Get back one used Luck point.', | ||
playbook: @spooky, | ||
type: 'Improvements::RatingBoost', | ||
stat_limit: 7, | ||
rating: :luck, | ||
advanced: true | ||
}, | ||
].each do |improvement| | ||
Improvement.find_or_create_by!(improvement) | ||
end | ||
end | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing comma!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This has been fixed along with other proofreading items.