From fd9e5bad3d8bb6ce45127206f90261f321e016a2 Mon Sep 17 00:00:00 2001 From: The Stranjer <791672+TheStranjer@users.noreply.github.com> Date: Tue, 28 May 2019 16:46:25 -0400 Subject: [PATCH] Supernal Will, and a ban on duplicate spells --- spells.rb | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/spells.rb b/spells.rb index 4fab579..5efa186 100644 --- a/spells.rb +++ b/spells.rb @@ -492,7 +492,7 @@ class Spell ) spells << Spell.new( - :name => "Disperse Wounds", + :name => "Cursed Wounds", :death => 3, :practice => "Perfecting", :primary_factor => "Potency", @@ -1021,6 +1021,37 @@ class Spell :rules_text => "The Mage becomes particularly difficult to track. He naturally takes unexpected routes to his destination and people who would want to find him take routes other than the one he is. All mundane attempts to track him fail, and all supernatural attempts to do so provokes a Clash of Wills." ) + spells << Spell.new( + :name => "Supernal Will", + :mind => 4, + :practice => "Patterning", + :primary_factor => "Duration", + :suggested_rote_skills => ["Empathy", "Expression", "Survival"], + :authors => ["noire"], + :rules_text => "The mage taps into the deepest reserves of personal resolve and unleashes a tidal wave of conviction toward a single minded goal. When the target spends Willpower to go above and beyond what should be possible to achieve her goals, substitute her Resolve rating for the usual Willpower bonus. The spell cannot increase the subject’s Willpower bonus above her resolve.", + :reaches => [ + [1, "If the roll gaining this benefit is contested, roll with 8-again"], + [1, "The spell may temporarily increase Resolve by one dot per level of Potency of the spell. The spell cannot increase the subject’s Resolve above their normal maximum. Sleepers compelled to above their natural Resolve gain the broken condition after the spell ends."], + [1, "For a point of Mana, the benefit of the spell may affect spellcasting."] + + ] + ) + + authors = {} + spells.each do |spell| + spell.authors.each do |author| + authors[author] = 0 if authors[author].nil? + + authors[author] += 1 + end + end + + puts "The spell authors, of this fine grimoire are: #{authors.sort_by { |author, count| -count }.collect{ |author, count| "#{author}, with #{count} spells" }.to_list }" + + duplicate_spells = spells.group_by(&:name).select {| k, v| v.length > 1 } + raise "Duplicate spells (on name) detected: #{duplicate_spells.collect{ |k,v| k}.to_list}" if duplicate_spells.length > 0 + + spells end