Advanced Race Creation Guide:Feats: Difference between revisions

From Wiki for The Only Sheet
Jump to navigation Jump to search
m (Added link back to adv usr guide)
Line 99: Line 99:
: When you channel energy to deal damage, you may choose to affect only a single target within 30 feet. In addition to dealing damage, if that single target fails its saving throw, you may pull or push the target up to 5 feet for every 2d6 points of channel energy damage you are capable of dealing
: When you channel energy to deal damage, you may choose to affect only a single target within 30 feet. In addition to dealing damage, if that single target fails its saving throw, you may pull or push the target up to 5 feet for every 2d6 points of channel energy damage you are capable of dealing


* Prereq
{| class="wikitable" style="width:80%"
|+ Channel Force
|- class="bot" style="background:#ffdead"
| Column || Value
|-
! Name
| Channel Force
|-
! Prereq
|
  =IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
  =IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
     IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
     IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
         IF(OR(tSel_Race<>tSel_Race_Name,PEP_ChannelEnergyLevel<3),
         IF(OR(tSel_Race<>tSel_Race_Name,PEP_ChannelEnergyLevel<3),
           "No","OK")))
           "No","OK")))
 
|-
* Details
! Prerequisite Details
|
  =IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
  =IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
     IF(PEP_ChannelEnergyLevel=0,"Channel Force requires the Channel Energy class feature"&CR,"")&
     IF(PEP_ChannelEnergyLevel=0,"Channel Force requires the Channel Energy class feature"&CR,"")&
Line 111: Line 121:
                                   &TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)&"d6)!"&CR,"")
                                   &TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)&"d6)!"&CR,"")
     ,"")
     ,"")
 
|-
* Description
! Description
|
  ="Channel energy damage also pushes/pulls a single target up to "&TRUNC(TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)/2)*5&"'"
  ="Channel energy damage also pushes/pulls a single target up to "&TRUNC(TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)/2)*5&"'"
|-
! Perm
| Yes
|}


And that's all we need to do! This feat doesn't have any change any existing calculated stats, so we don't need to add any effects.
And that's all we need to do! This feat doesn't have any change any existing calculated stats, so we don't need to add any effects.

Revision as of 19:26, 30 January 2013

Advanced Race Creation Guide:Feats

Intro to feats

Now that we have the Race done, let's do some race specific feats!

On the Feats sheet, we click the link "Click HERE to add Custom Feats!"

Entries on the Feat table are very much like the Race abilities we set up on the Race page, with a few extra columns:

Name
The feat name
Source
the book or other source of the feat. I put "ARG" for all these feats.
Type
General, Combat, Item Creation, Metamagic, Racial, and so forth. I put Racial for these.
Prereq & Prereq Details
These are somewhat complicated, so each will be discussed separately.
Description
This is the description that shows next to the feat name when you select it on the BACK sheet. There's not a lot of room in that column so these tend to be rather short.

Now we'll see columns in the same order as Race:

Conditional Effect and Abilities
This text will show in INFO under a heading for Feats
Permanent Effect?
If blank or "No", the feat has no effect until selected on the LapTop sheet. Forgetting to put Yes in this field is THE MOST COMMON MISTAKE in working with abilities of any kind on TOS+. :)
Advice
This text is shown next to the ability name when it is selected on the LapTop sheet.
Specific Focus
it looks as if this is used by other feats to allow a choice on Customize to pick the ability for a bonus... we won't be using it.
Effects
This is the same thing we've seen before. up to 6 effect Names, with Selectable types to support stacking rules when the Modifiers are added together.

Prereq Column

This column is used to indicate whether the character has met the pre-requisites for the feat. There are a number of supported values:

  • n/a: the feat is not selected
  • o/r: the requirements have been overruled (and the feat is allowed)
  • No: the prereqs were NOT met
  • OK: prereqs are good

This leads to the formulas for Prereq? having a certain structure. Here's an example, for Improved Channel force, which has several prerequisites:

=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,
             COUNTIF(tSel_Feats,"Channel Force")=0,
             PEP_ChannelEnergyLevel<7),
          "No","OK")))

There is a lot going on here, but I'll explain it section by section.

IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",

The expression OFFSET($A$1,ROW()-1,COLUMN()-4) is the feat name, 3 columns to the left on the same row. COUNTIF(tSel_Feats,"Improved Channel Force") will return the number of times "Improved Channel Force" is selected in the FEATS section on the BACK worksheet. So this says, if the feat is not listed in the FEATS section of the BACK worksheet, return "n/a"

IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",

If the call to ParseEffect("Improved Channel Force Prereqs Met") returns non-0 (because of an effect somewhere), then return "o/r". What this means is, some other Effect has flagged this feat as specifically selectable without the prereqs being required.

 IF(OR(tSel_Race<>tSel_Race_Name,
       COUNTIF(tSel_Feats,"Channel Force")=0,
       PEP_ChannelEnergyLevel<7),
    "No","OK")

This section uses the OR() function. OR() takes up to 255 arguments, and returns true if ANY of the arguments are true. In this case, we're checking if any of three conditions are true:

  • Selected Race is not Aasimar (ARG)
  • "Channel Force" is not a selected feat
  • Channel Energy level is too low.
    • By the way, the variable PEP_ChannelEnergyLevel is the stashed result of a call to ParseEffect("Channel Energy Level")

Prereq Reason Column

Setting the prereq column is nice and all, but it doesn't do anything interesting unless there is also text in the Prereq Reason column. In order for Feats to register an X if the prereqs aren't met, you have to fill in the Prerequisite Details column. IF the column shows text, then the prerequisite line on the FEATS section on the BACK worksheet will show an X instead of a checkmark, and the text from the Prereq Details will appear in the INFO section, showing the reason.

Here is the formula from Reason column for the same feat we just discussed:

=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(PEP_ChannelEnergyLevel=0,"Improved Channel Force: Must have the Channel Energy class feature!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Channel Force")=0,"Improved Channel Force: Must have Channel Force!"&CR,"")&
    IF(PEP_ChannelEnergyLevel<7,"Improved Channel Force: requires Channel Energy of at least 4d6 (Currently "&
                                 TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)&"d6)!"&CR),
       "")

In this formula, the test is, does the Prereq column on the same row have "No" ? If so, concatenate (with the & character) the strings returned by each prereq test:

The first message shows if the character doesn't have Channel Energy at all:

IF(PEP_ChannelEnergyLevel=0,"Improved Channel Force: Must have the Channel Energy class feature!"&CR,"")&

The next shows if the feat "Channel Force" isn't also selected:

IF(COUNTIF(tSel_Feats,"Channel Force")=0,"Improved Channel Force: Must have Channel Force!"&CR,"")&

And the third one shows if the character does not have enough Channel Energy dice to qualify:

IF(PEP_ChannelEnergyLevel<7,"Improved Channel Force: requires Channel Energy of at least 4d6 (Currently "&
                             TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)&"d6)!"&CR),"")

Note: This snippet for the number of dice I snagged from the class definition for Cleric (P), because I couldn't find an existing value in the sheet that represented channel DICE: TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)

Perm? Column

The Perm? or Permanent effect column is so easy to overlook, but very powerful. If it's set to Yes, then any effects for this ability will be active, immediately. But if it's set to "No" or left blank, then the effects are only active when the ability name is entered into the Active Effects section of the LapTop sheet.

LapTop Advice Column

The text here is shown in the advice window of the Active Effects section on the LapTop sheet when the Feat is selected. This can also be used with feats that have Perm set to Yes.

The Feats

Channel Force

Prerequisites
Aasimar, channel energy 2d6
When you channel energy to deal damage, you may choose to affect only a single target within 30 feet. In addition to dealing damage, if that single target fails its saving throw, you may pull or push the target up to 5 feet for every 2d6 points of channel energy damage you are capable of dealing
Channel Force
Column Value
Name Channel Force
Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,PEP_ChannelEnergyLevel<3),
          "No","OK")))
Prerequisite Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(PEP_ChannelEnergyLevel=0,"Channel Force requires the Channel Energy class feature"&CR,"")&
    IF(PEP_ChannelEnergyLevel<3,"Channel Force requires Channel Energy of at least 2d6 (Currently "
                                 &TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)&"d6)!"&CR,"")
   ,"")
Description
="Channel energy damage also pushes/pulls a single target up to "&TRUNC(TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)/2)*5&"'"
Perm Yes

And that's all we need to do! This feat doesn't have any change any existing calculated stats, so we don't need to add any effects.

Improved Channel Force

Prerequisites
Channel Force, Aasimar, channel energy 4d6
When using Channel Force, you can affect all creatures in a 60-foot line or a 30-foot cone-shaped burst. You must choose to either push or pull all creatures within the affected area that fail their saves.


  • Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
        IF(OR(tSel_Race<>tSel_Race_Name,
              COUNTIF(tSel_Feats,"Channel Force")=0,
              PEP_ChannelEnergyLevel<7),
           "No","OK")))	 
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(PEP_ChannelEnergyLevel=0,"Improved Channel Force: Must have the Channel Energy class feature!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Channel Force")=0,"Improved Channel Force: Must have Channel Force!"&CR,"")&
    IF(PEP_ChannelEnergyLevel<7,"Improved Channel Force: requires Channel Energy of at least 4d6 (Currently "&
                                 TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)&"d6)!"&CR)
   ,"")
  • Description
Channel Force all creatures in a 60' line or 30' cone

Greater Channel Force

Prerequisites
Channel Force, Improved Channel Force, channel energy 6d6
When using Improved Channel Force, you can affect all creatures in a 30-foot-radius burst


  • Prereq?
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,
             COUNTIF(tSel_Feats,"Channel Force")=0,
             COUNTIF(tSel_Feats,"Improved Channel Force")=0,
             PEP_ChannelEnergyLevel<11),
          "No","OK")))
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(PEP_ChannelEnergyLevel=0,"Greater Channel Force: Must have the Channel Energy class feature!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Channel Force")=0,"Greater Channel Force: Must have Channel Force!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Improved Channel Force")=0,"Greater Channel Force: Must have Improved Channel Force!"&CR,"")&
     IF(PEP_ChannelEnergyLevel<11,"Greater Channel Force: requires Channel Energy of at least 6d6 (Currently "&
                                   TRUNC((IF(b_MultiClassChannel,lvl_Custom2,PEP_ChannelEnergyLevel)+1)/2)&"d6)!"&CR,""),
    "")
  • Description
Channel Force all creatures in a 30' radius


Next we'll get into some feats that actually have effects.

Angelic Blood

Prerequisites
Con 13

"You gain a +2 bonus on saving throws against effects with the evil descriptor and on Constitution checks to stabilize when you are reduced to negative hit points (but not dead). Furthermore, each time you take bleed or blood drain damage, each undead creature or creature with the evil subtype that is currently adjacent to you also takes 1 point of damage."

  • Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
    IF(OR(tSel_Race<>tSel_Race_Name,i_CON<13),
       "No","OK")))
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,"Angelic Blood: "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(i_CON<13,"Angelic Blood: Constitution must be 13 or more!"&CR,""),
    "")
  • Description
'+2 to saves vs. evil, and cause dmg to adj. evil/undead if drained or bleeding
  • Conditional Effect
'+2 to saves vs. evil effects and on Constitution checks to stabilize when you are reduced to negative hit points (but not dead)  (Angelic Blood)
  • Laptop advice
This trait is already applied
  • Effect #1
All Conditional Saves	Unnamed	2


Notice that we didn't worry about the text being an exact match to effect (like, where's the "All Conditional Saves vs. Evil" effect)? The Effect will cause a "+2*" to appear next to all saving throws. When you click on those cells on the FRONT worksheet, they will show:

+2  Unnamed  Angelic Blood

and the text from the Conditional Effect field will be shown in the INFO block. Also, by convention, the Conditional text includes the indicator, (Angelic Blood) !

Angelic Flesh

Prerequisites
Angelic Blood
"You take a –2 penalty on Disguise and Stealth checks but gain one of the following benefits, depending on the metallic affinity of your flesh (choose one):"

This feat presented a challenge, because it has four different variants that offer four different sets of bonuses (and Effects). I thought about being clever with formulas and dropdown lists to make it selectable, and then I realized it was a lot simpler just to make one full feat for each variant. :)

Angelic Flesh (Brazen)

Prerequisite
Angelic Blood
"You gain fire resistance 5 and a +2 bonus on saves against fire effects"
  • Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect("Angelic Flesh (Brazen) Prereqs Met")>0,"o/r",
    IF(OR(tSel_Race<>tSel_Race_Name,
          COUNTIF(tSel_Feats,"Angelic Blood")=0,
          COUNTIF(tSel_Feats,"Angelic Flesh (*)")>1),
       "No","OK")))
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,"Angelic Flesh (Brazen): "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Blood")=0,"Angelic Flesh (Brazen): Must have Angelic Blood!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Flesh (*)")>1,"Angelic Flesh (Brazen): Only one type of Angelic Flesh allowed!"&CR,""),"")
  • Description
You gain fire resistance 5 and a +2 bonus on saves against fire effects
  • Conditional
+2 to saves vs. fire effects (Angelic Flesh)
  • Effects
Disguise-p               Unnamed   -2
Stealth-p                Unnamed   -2
Resistance to Fire (Ex)  Max Value  5
All Conditional Saves    Unnamed    2

Angelic Flesh (Golden)

Prerequisites
Angelic Blood
"You gain a +2 bonus on saves against blindness, dazzling, patterns, and effects with the light descriptor. When you cast spells or use spell-like abilities that are from the illusion (pattern) subschool or have the light descriptor, you do so at +1 caster level"
  • Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect("Angelic Flesh (Golden) Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,
          COUNTIF(tSel_Feats,"Angelic Blood")=0,
          COUNTIF(tSel_Feats,"Angelic Flesh (*)")>1),
          "No","OK")))
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,"Angelic Flesh (Golden): "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Blood")=0,"Angelic Flesh (Golden): Must have Angelic Blood!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Flesh (*)")>1,"Angelic Flesh (Golden): Only one type of Angelic Flesh allowed!"&CR,""),"")	
  • Description
+2 to saves vs. blindness, dazzling, patterns, and light
  • Conditional
+2 to saves vs. blindness, dazzling, patterns, and light (Angelic Flesh)
  • Laptop
This trait is already applied
  • Effects
Disguise-p                            Unnamed  -2
Stealth-p                             Unnamed  -2
All Conditional Saves                 Unnamed   2
Pattern Caster Level (Spell Effects)  Unnamed   1
Light Caster Level (Spell Effects)    Unnamed   1

Angelic Flesh (Silver)

Prerequisites
Angelic Blood
"You gain a +2 bonus on saves against paralysis, petrification, and poison, and your unarmed strikes or natural weapons count as silver for the purpose of overcoming damage reduction"
  • Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect("Angelic Flesh (Steel) Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,
             COUNTIF(tSel_Feats,"Angelic Blood")=0,
             COUNTIF(tSel_Feats,"Angelic Flesh (*)")>1),
          "No","OK")))	
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,"Angelic Flesh (Silver): "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Blood")=0,"Angelic Flesh (Silver): Must have Angelic Blood!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Flesh (*)")>1,"Angelic Flesh (Silver): Only one type of Angelic Flesh allowed!"&CR,""),
    "")
  • Description
'+2 to saves vs. paralysis, petrification, and poison. Unarmed/natural weapons are silver vs. DR
  • Conditional
'+2 to saves vs. paralysis, petrification, and poison (Angelic Flesh (Silver))
  • Laptop Advice
This trait is already applied
  • Effects
Disguise-p   Unnamed       -2
Stealth-p    Unnamed       -2
All Conditional Saves  Unnamed  2

Angelic Flesh (Steel)

Prerequisites
Angelic Blood
"You gain a +1 natural armor bonus to AC, and your unarmed strikes or natural weapons count as cold iron for the purpose of overcoming damage reduction"
  • Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect("Angelic Flesh (Steel) Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,
             COUNTIF(tSel_Feats,"Angelic Blood")=0,
             COUNTIF(tSel_Feats,"Angelic Flesh (*)")>1),
          "No","OK")))	
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,"Angelic Flesh (Steel): "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Blood")=0,"Angelic Flesh (Steel): Must have Angelic Blood!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Flesh (*)")>1,"Angelic Flesh (Steel): Only one type of Angelic Flesh allowed!"&CR,""),"")
  • Description
'+1 natural armor bonus to AC. Unarmed/natural weapons are cold iron vs. DR	
  • Laptop Advice
This trait is already applied
  • Effects
Disguise-p   Unnamed       -2
Stealth-p    Unnamed       -2
Armor Class  Natural Armor  1

Angel Wings

Prerequisites
Angelic Blood, 10th level
"You gain a pair of gleaming feathered wings that grant a fly speed of 30 feet (average maneuverability) if wearing light armor or unencumbered, or 20 feet (poor maneuverability) with a medium or heavy load or medium or heavy armor. Fly is a class skill for you."
  • Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
    IF(OR(tSel_Race<>tSel_Race_Name,
          COUNTIF(tSel_Feats,"Angelic Blood")=0,
          i_CharacterLevel<10),
       "No","OK")))
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,"Angel Wings: "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Blood")=0,"Angel Wings: Must have Angelic Blood!"&CR,"")&
    IF(i_CharacterLevel<10,"Angel Wings: Character level must be 10 or higher!"&CR,""),
    "")
  • Description
You have wings and can fly
  • Effects
Fly Speed         Unnamed       =IF(OR(b_MediumArmor,b_MediumLoad,b_HeavyArmor,b_HeavyLoad),20,30)	
All Class Skill   Class Skill   Fly-p

Metallic Wings

Prerequisites
Angelic Blood, Angelic Flesh, Angel Wings, 11th level
You gain two wing attacks. These are secondary natural attacks that deal 1d4 points of slashing damage (or 1d3 if you are Small).
  • Prereq
=IF(COUNTIF(tSel_Feats,"Metallic Wings")=0,"n/a",
    IF(ParseEffect("Metallic Wings Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,
             COUNTIF(tSel_Feats,"Angelic Blood")=0,
             COUNTIF(tSel_Feats,"Angelic Flesh (*)")=0,
             COUNTIF(tSel_Feats,"Angel Wings")=0,
             i_CharacterLevel<11),
         "No","OK")))
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,"Metallic Wings: "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Blood")=0,"Metallic Wings: Must have Angelic Blood!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angelic Flesh (*)")=0,"Metallic Wings: Must have Angelic Flesh!"&CR,"")&
    IF(COUNTIF(tSel_Feats,"Angel Wings")=0,"Metallic Wings: Must have Angel Wings!"&CR,"")&
    IF(i_CharacterLevel<11,"Metallic Wings: Character level must be 11 or higher!"&CR,""),
    "")&
    IF(NOT(OR(tSel_Weapon1="2x Metallic Wings",
              tSel_Weapon2="2x Metallic Wings",
              tSel_Weapon3="2x Metallic Wings",
              tSel_Weapon4="2x Metallic Wings",
              tSel_Weapon5="2x Metallic Wings",
              tSel_Weapon6="2x Metallic Wings")),
       "Metallic Wings: "&CRT&ErrStart&"Equip '2x Metallic Wings' as a Natural (secondary) weapon!"&ErrEnd&CR,"")

This has a LOT of prerequisites, basically all of the Angelic line, but no actual effects. Also I couldn't figure out how to make the sheet REQUIRE the character equip the natural weapon... and then I realized: I can just show a message!


This feat requires a custom Weapon called '2x Metallic Wings' (on the Gear page) but all I had to do was pick '2x Claws' in the Quick box and change the Damage type to Slashing (instead of Slashing & Piercing). It literally took about 10 seconds. :)

Heavenly Radiance

Prerequisites
Aasimar, daylight spell-like ability, sufficiently high level (see below).
You gain one additional use per day of daylight. Choose one spell from the table below; by expending a use of daylight, you may use this spell as a spell-like ability. To select a spell, you must meet the minimum character level for its listing in the table. The save DC for this spell is Charisma-based.
Special
You may take this feat multiple times. Each time you select it, you gain an additional use of daylight and may select another spell from the table.
Spell-Like Ability       Minimum Character Level
Flare burst              1st
Wake of light            3rd
Searing light            5th
Wandering star motes     7th
Sunbeam (one beam only)  9th


Heavenly Radiance (Flare Burst)

Heavenly Radiance (Wake of Light)

Heavenly Radiance (Searing Light)

Heavenly Radiance (Wandering Star Motes)

Heavenly Radiance (Sunbeam)

After what I experienced figuring out Angelic Flesh and its variants, making 5 variants of Heavenly Radiance (one for each spell) was a no-brainer. But I realized I had a a serious problem: the Racial Trait text said, "1/Day". How could I set it up so that I could show the right value? I mean, really, edit the whole RACE just for one FEAT? :) :) But then with TOS_Admin's help, I found it: ParseEffect(). Yes, the same ParseEffect() that handles all the stacking rules and core calculations in the sheet!

So I set my own Effect for ParseEffect() to pick up, when I asked for it later. My effect is, "Nbr of Daylight Uses". I adjusted the "Aasimar (ARG) race" effect so that, if the regular Spell-Like Ability is selected, its value is 1, otherwise 0.

Then I thought about it some more. Since I was already using ParseEffect, why not use it to track the list of extra spells granted, as well?

="Daylight (Sp): "&ParseEffect("Nbr of Daylight Uses")&"/day, as the spell, CL"&i_CharacterLevel&
  IF(t_CM="",""," <"&REPT(t_CM,ParseEffect("Nbr of Daylight Uses"))&"> ")&
  IF(ParseEffect("Daylight Bonus Spell")=0,"",CRT&"Can alternatively cast: "&ParseEffect("Daylight Bonus Spell"))


So the EFFECT for each of the various Heavenly Radiance feats becomes (with Searing Light as the example):

Nbr of Daylight Uses   Unnamed  1
Daylight Bonus Spell   String   Searing Light

The String type joins all the found values together with a comma, so: "Searing Light, Flare Burst, Sunbeam" The only other difference between the 5 feats is the player level their prereqs require.

  • Prereq

This is one case where dynamic programming helps a lot! By using OFFSET() like this, I can use the exact same formula for all 5 prereqs, and not have to retype and change all the strings!

I used the empty slot called "Specific Focus", which is not normally used, to hold the level at which the feat becomes available. Then I reference it in the prereq formula with OFFSET($A$1,ROW()-1,COLUMN()+5):

  • Prereq
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect("Heavenly Radiance Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,
          LEFT(tSel_Race_RacialTrait3,8)<>"Daylight",
          i_CharacterLevel<OFFSET($A$1,ROW()-1,COLUMN()+5)),
          "No","OK")))	
  • Details
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,OFFSET($A$1,ROW()-1,COLUMN()-5)&": "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(LEFT(tSel_Race_RacialTrait3,8)<>"Daylight",OFFSET($A$1,ROW()-1,COLUMN()-5)&": Must have 'Daylight' as a Spell-Like Ability!"&CR,"")&
    IF(i_CharacterLevel<OFFSET($A$1,ROW()-1,COLUMN()+4),OFFSET($A$1,ROW()-1,COLUMN()-5)&": Character level must be "&OFFSET($A$1,ROW()-1,COLUMN()+4)&" or higher!"&CR,""),"")
  • Description
="+1 use of Daylight (Sp)/day.  Can expend one use to cast "&OFFSET($A$1,ROW()-1,COLUMN()+9)
  • Effects:

This is the effects from 5 different rows. The first column is the "Specific Focus" column.

SF      Effect 1 Name:          Type:   Mod:    Effect 2 Name:          Type:   Mod:
1	Nbr of Daylight Uses	Unnamed	1	Daylight Bonus Spell	String	Flare Burst
3	Nbr of Daylight Uses	Unnamed	1	Daylight Bonus Spell	String	Wake of Light
5	Nbr of Daylight Uses	Unnamed	1	Daylight Bonus Spell	String	Searing Light
7	Nbr of Daylight Uses	Unnamed	1	Daylight Bonus Spell	String	Wandering Star Motes
9	Nbr of Daylight Uses	Unnamed	1	Daylight Bonus Spell	String	Sunbeam (one beam only)

Celestial Servant

Prerequisites
Aasimar, druid companion, familiar, or mount
Your animal companion, familiar, or mount gains the celestial template and becomes a magical beast, though you may still treat it as an animal when using Handle Animal, wild empathy, or any other spells or class abilities that specifically affect animals.
  • Prereq?
=IF(COUNTIF(tSel_Feats,OFFSET($A$1,ROW()-1,COLUMN()-4))=0,"n/a",
    IF(ParseEffect(OFFSET($A$1,ROW()-1,COLUMN()-4)&" Prereqs Met")>0,"o/r",
       IF(OR(tSel_Race<>tSel_Race_Name,
             AND(PE_FamiliarLevel=0,
                 PE_AnimalCompanionExLevel=0)
            ),
          "No","OK")))
  • Detail
=IF(OFFSET($A$1,ROW()-1,COLUMN()-2)="No",
    IF(tSel_Race<>tSel_Race_Name,"Celestial Servant: "&tSel_Race_Name&" Race required!"&CR,"")&
    IF(AND(PE_FamiliarLevel=0,
           PE_AnimalCompanionExLevel=0),
       "Celestial Servant: Must have an Animal Companion or Familiar!"&CR,""),"")
  • Description
Animal companion/familiar becomes a magical beast

This one was actually one of the trickiest ones to implement, because I needed to find a reliable way to detect whether or not the character had the necessary animal companion. However, the above values seem to work on all the classes I could think of testing it on. :)


BACK to the Advanced User Guide