Standard Practices: Difference between revisions

From Wiki for The Only Sheet
Jump to navigation Jump to search
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
[UNDER CONSTRUCTION]
These standard practices will help you create content that is conform with the current content. This will help make all information have the same look & feel!


These standard practices will help you create content that is conform with the current content. This will help make all information have the same look & feel!


== Unique Names ==
== Unique Names ==
One of the most important aspects when creating new content, is to use names that are unique. If you fail to do so, then you will not be able to access the new item you just created. This is because when Excel searches through a table, if stops searching when the first match is found. So any other items with the same name will not be accessed.
One of the most important aspects when creating new content, is to use names that are unique. If you fail to do so, then you will not be able to access the new item you just created. This is because when Excel searches through a table, if stops searching when the first match is found. So any other items with the same name will not be accessed.


=== Class Abilities ===
=== Class Abilities ===
Line 13: Line 13:
* Damage Reduction (Barbarian)
* Damage Reduction (Barbarian)
* Divine Inspiration (Divine Emissary)
* Divine Inspiration (Divine Emissary)


=== Race Abilities ===
=== Race Abilities ===
Line 26: Line 27:
* Half-elf race  
* Half-elf race  
* Half-elf race 2
* Half-elf race 2
=== Spell Names ===
When defining spell names, do not use any commas in the name itself. So for instance the spell ''Enlarge Person, Mass'' should actually be '''''Enlarge Person (Mass)'''''. All the core spell included in '''TOS+''' are using this syntax.
Furthermore, the Sheet uses the American English for words spellings like '''''armor''''', instead of the ''armour'' used in European countries.
Both the above standards will become more important starting with '''TOS+''' v1.30+, since the Spell Names are now included in the .tos file!




Line 35: Line 46:
This sample shows how to create a list of abilities that have limited uses per day. Each ability is on one line and uses the '''BULLET''' named cell to get the proper offset and bullet. When a Difficulty Class applies, is it displayed as shown for the "Suggestion" ability. Here is a sample formula for the Suggestion line:
This sample shows how to create a list of abilities that have limited uses per day. Each ability is on one line and uses the '''BULLET''' named cell to get the proper offset and bullet. When a Difficulty Class applies, is it displayed as shown for the "Suggestion" ability. Here is a sample formula for the Suggestion line:


<center><code>=BULLET&"Suggestion 3/day, DC"&(13+i_CHAModif)&" "&<br>IF(t_CheckMark="",""," <"&REPT(t_CheckMark,3)&">")</code></center>
'''Example for TOS+ (with image on the right)''':<br><code>=BULLET&"Suggestion 3/day, DC"&(13+i_CHAModif)&IF(t_CheckMark="",""," <"&REPT(t_CheckMark,3)&">")&" Description"</code>


'''Example for TOS FIVE/TOS 2<sup>nd</sup>''':<br><code>=BULLET&"Suggestion: 3/day"&IF(b_ShowCM,VLOOKUP(3,t_CheckMarks,2,FALSE),"")&" Description"</code>


Most creators prefer to 'group' similar lists onto the same cell, using the '''CR''' seperator, which is a "Carriage Return"
The newer managers have a '''b_ShowCM''' boolean to verify if the user wants to use checkmarks or not. Usually, these are useful for those using paper print-outs.
 
Most creators prefer to 'group' similar lists onto the same cell, using the '''CR''' separator, which is a "Carriage Return"
|}
|}
=== The CR, BULLET and the TAB family! ===
To help format text, you have these named cell at your disposition:
'''CR''': Carriage Return
'''TAB''': Three spaces
'''TABs''': Six spaces
'''TABss''': Nine spaces
'''BULLET''': The • character
'''eBULLET''': The · Character
'''CRT''': CR + TAB
'''CRTs''': CR + TABs
'''CRTss''': CR + TABss
'''CRB''': CR + BULLET
'''LFrame''': ├────
'''RFrame''': ────┤
'''LHFrame''': ▬▬▬▬▬▌
'''RHFrame''': ▐▬▬▬▬▬


=== Trailing Periods ===
=== Trailing Periods ===
It is not essential to add a period on the last phrase of an ability description. Periods will be useful if an ability description has many phrases, to seperate those.
It is not essential to add a period on the last phrase of an ability description. Periods will be useful if an ability description has many phrases, to seperate those.


=== DC and CL without spaces ===
When listing a DC (Difficulty Class) or a CL (Caster Level), do not add a space between that and the following numeral. For instance, write "'''DC12'''" instead of "DC 12"


=== Long Descriptions ===
=== Long Descriptions ===
Line 49: Line 97:
|-
|-
|style="border:none;padding:1px;"|
|style="border:none;padding:1px;"|
[[Image:indent.gif|frame|right|Example of ability indentation]]
[[Image:indent.gif|frame|right|Example of auto-wrapping for an ability]]
You should always verify that the ability you are describing 'fits' in the width of the INFO area on the BACK worksheet. If you cannot reduce the length of the description to fit a single line, you can use multiple lines. In such case, you should use the '''TAB''' named cell to automatically add indent for this continuation. The image on the right is the result of the formula below (for the Sahuagin race):
You should always verify that the ability you are describing 'fits' in the width of the INFO area on the BACK worksheet. Although a recent update to the sheet added auto-wrapping, it it possible for a phrase to be misaligned, thanks to an average phrase width that is larger than the norm (i.e. when using lots of large characters like 'w' or 'm'). You should verify your phrases to make sure these fit well using the default font and size settings. If not, consider using a synonym for a longer word.
 
<center><code>="Light Blindness (Ex): Abrupt exposure to bright light causes"&CR&TAB&<br>"1 round of blindness and dazzles after that"</code></center>
 
|}
|}


Line 59: Line 104:
When creating an Ability that has a "times per day" limitation, you should always add a simple formula that will display the check marks representing that number of times per day, which is very useful for those using the paper version of '''TOS+'''. Here is an example:
When creating an Ability that has a "times per day" limitation, you should always add a simple formula that will display the check marks representing that number of times per day, which is very useful for those using the paper version of '''TOS+'''. Here is an example:


'''TOS+''':<br><code>="Dimension Door (Sp): 1/day, CL7 "&IF(t_CheckMark="",""," <"&t_CheckMark)&">"</code>


<center><code>="Dimension Door (Sp): 1/day, CL 7 "&IF(t_CheckMark="",""," <"&t_CheckMark&">"</code></center>
'''Example for TOS FIVE/TOS 2<sup>nd</sup>''':<br><code>="Dimension Door (Sp): 1/day, CL7 "&IF(b_ShowCM,VLOOKUP(1,t_CheckMarks,2,FALSE),"")</code>




The named cell '''t_CheckMark''' represent the Character (by default, the capital 'O' character) that will be used to denote each 'check mark'. The times per day for an ability should always be displayed as part of the description (in this case as ''1/day''). For an ability that is used more than once per day, the [http://office.microsoft.com/en-us/excel/HP052092361033.aspx REPT()] excel function can be used to repeat the number of desired check marks, as shown here:
'''TOS+''': The named cell '''t_CheckMark''' represent the Character (by default, the capital 'O' character) that will be used to denote each 'check mark'. The times per day for an ability should always be displayed as part of the description (in this case as ''1/day''). For an ability that is used more than once per day, the [http://office.microsoft.com/en-us/excel/HP052092361033.aspx REPT()] excel function can be used to repeat the number of desired check marks, as shown here:




Line 70: Line 116:


Evidently, a formula returning an Integer can be used for times per day that can change according to some other factor.
Evidently, a formula returning an Integer can be used for times per day that can change according to some other factor.
'''TOS FIVE/TOS 2<sup>nd</sup>''': Use the '''b_ShowCM''' named cell to check if the user wants to show Check Marks or not. If the user want to use Check Marks, then you can VLOOKUP() the number to use within the ''t_CheckMarks'' table, which can be found on the '''Tables''' worksheet.




Line 78: Line 126:
It is possible to 'turn off' the display of the Check Marks; go to the Customize worksheet and click on the 'CheckMarks' link found in the "Other" section. One of the option there represent the character used for check marks: If that character is deleted (i.e. empty), then all check marks will disappear (at least, those coded as shown in the standard guide!!)  
It is possible to 'turn off' the display of the Check Marks; go to the Customize worksheet and click on the 'CheckMarks' link found in the "Other" section. One of the option there represent the character used for check marks: If that character is deleted (i.e. empty), then all check marks will disappear (at least, those coded as shown in the standard guide!!)  
|}
|}
=== Displaying Errors ===
Sometimes, the user needs to enter his choices for specific abilities, feats or else. In this case, we use the ► and ◄ to highlight the missing information, to make sure it is visible in the INFO section of the Back sheet. Since these characters cannot be saved in a simple text file, we have two named cells to handle them: '''ErrStart''' (►) and '''ErrEnd''' (◄). Try to be specific as to where the use needs to go to enter the missing information. Here is an example:
<center><code>=IF(lvl_Hierophant=0,"n/a","Special Ability: "&IF(tSel_Custom_HierophantSpecial3="",ErrStart&" Not selected on Customize Sheet! "&ErrEnd,tSel_Custom_HierophantSpecial3))</code></center>
== Bonus Feats ==
When a Class (or race) receives bonus feats, there are several things to do.
# First, you need to take into account all 'bonus' feats, and increase the total number of feats accordingly, using the ''Bonus Feats'' effect. For example of this, refer to the '''AbilityData''' worksheet, and scroll down to the existing '''Bonus Feat (''class_name'')'''.
# Second, you need to tell the user about this bonus feat. This is done through the features.
# Third, you have to check if the use has indeed selected that free feat in the feat area on the BACK worksheet. For example, this formula will check to see if the Track feat has been selected for a Ranger: <code>=IF(COUNTIF(tSel_Feats,"Track")=0,"Track feat missing from the Feats section {Ranger}","")</code>.  For a Class, this code would appear in the ''Class Status'' section. For a race, a similar check would be placed in the ''Race Status'' section.
# Finally, you have to consider that the prerequisites for a feat might be overruled by a class receiving a bonus feat. For example, a Monk may select ''Deflect Arrows'' as a bonus feat at 2nd level, even if he does not meet the prerequisites. Simply use the '''''feat_name'' Prereqs Met''' effect to tell '''TOS+''' that this class is authorized to take that feat, irrelevant of prerequisites:
{| border="1" width="80%" align="center" class="wikitable" style="text-align:center" cellpadding="1" cellspacing="0"
|+ '''''Table: Applying the Prerequisite Met Effect'''''
! style="background:#ffdead;" | Permanent !! style="background:#ffdead;" | Effect Name !! style="background:#ffdead;" | Effect Type !! style="background:#ffdead;" | Effect Modifier
|-
|Yes || Deflect Arrows Prereqs Met  || Unnamed || 1
|}
== ORDINAL(): Adds ''st'', ''nd'', ''rd'' or ''th'' to values ==
; ORDINAL : Appends a trailing '''st''', '''nd''', '''rd''' or '''th''' to numbers.
; Syntax : ORDINAL(''value'')'''
; Remarks : Use only with Values
: Negative values will work
; Example : ="Cast spell as a "&ORDINAL(SUM(i_CHAModif,i_CharacterLevel))&" level character"
; Note: If the value you are using is fixed, use the named cells '''ST''', '''ND''', '''RD''' or '''TH''' instead of this function.


== Computing Efficiency ==
== Computing Efficiency ==
Line 91: Line 171:
== Miscellaneous Tips ==
== Miscellaneous Tips ==


* When giving a distance in feet, use '''ft.''' instead of a single quote
* When giving a distance in feet, use either '''ft.''' or the single quote
* Avoid the use of the '''[''' and ''']''' (brackets) characters as they are used as the delimiters for .tos files
* There should always be 2 white spaces in front of the '''<''' symbol used to start check marks in TOS+




BACK to the [[Advanced - Creators|Creator's Guide]]
BACK to the [[Advanced User Guide]]

Latest revision as of 19:33, 23 June 2022

These standard practices will help you create content that is conform with the current content. This will help make all information have the same look & feel!


Unique Names

One of the most important aspects when creating new content, is to use names that are unique. If you fail to do so, then you will not be able to access the new item you just created. This is because when Excel searches through a table, if stops searching when the first match is found. So any other items with the same name will not be accessed.


Class Abilities

Class abilities have been defined using the Ability name and the class name to which it applies. This ensures that a custom class will be using a unique name - and that if an existing ability if used, we know from which class it is taken from. The format is: AbilityName (ClassName).

Examples:

  • Inspire Courage (Bard)
  • Damage Reduction (Barbarian)
  • Divine Inspiration (Divine Emissary)


Race Abilities

Racial abilities that can be activates (i.e. turned 'On') have been defined using the racename followed by the ability name. Examples:

  • Deep Dwarf vs Orcs/Goblinoids
  • Doppelganger Change Shape
  • Duergar vs Orcs/Goblinoids

Racial abilities that are permanent (meaning they apply their effect at all times) uses the racename followed by the word "race". If the race requires more than 6 effects, another permanent entry is created with a trailing numeral. Examples:

  • Dwarf race
  • Half-elf race
  • Half-elf race 2


Spell Names

When defining spell names, do not use any commas in the name itself. So for instance the spell Enlarge Person, Mass should actually be Enlarge Person (Mass). All the core spell included in TOS+ are using this syntax.


Furthermore, the Sheet uses the American English for words spellings like armor, instead of the armour used in European countries.


Both the above standards will become more important starting with TOS+ v1.30+, since the Spell Names are now included in the .tos file!


Listing Abilities

Sample ability list

This sample shows how to create a list of abilities that have limited uses per day. Each ability is on one line and uses the BULLET named cell to get the proper offset and bullet. When a Difficulty Class applies, is it displayed as shown for the "Suggestion" ability. Here is a sample formula for the Suggestion line:

Example for TOS+ (with image on the right):
=BULLET&"Suggestion 3/day, DC"&(13+i_CHAModif)&IF(t_CheckMark="",""," <"&REPT(t_CheckMark,3)&">")&" Description"

Example for TOS FIVE/TOS 2nd:
=BULLET&"Suggestion: 3/day"&IF(b_ShowCM,VLOOKUP(3,t_CheckMarks,2,FALSE),"")&" Description"

The newer managers have a b_ShowCM boolean to verify if the user wants to use checkmarks or not. Usually, these are useful for those using paper print-outs.

Most creators prefer to 'group' similar lists onto the same cell, using the CR separator, which is a "Carriage Return"

The CR, BULLET and the TAB family!

To help format text, you have these named cell at your disposition:

CR: Carriage Return

TAB: Three spaces

TABs: Six spaces

TABss: Nine spaces

BULLET: The • character

eBULLET: The · Character

CRT: CR + TAB

CRTs: CR + TABs

CRTss: CR + TABss

CRB: CR + BULLET

LFrame: ├────

RFrame: ────┤

LHFrame: ▬▬▬▬▬▌

RHFrame: ▐▬▬▬▬▬


Trailing Periods

It is not essential to add a period on the last phrase of an ability description. Periods will be useful if an ability description has many phrases, to seperate those.

DC and CL without spaces

When listing a DC (Difficulty Class) or a CL (Caster Level), do not add a space between that and the following numeral. For instance, write "DC12" instead of "DC 12"

Long Descriptions

Example of auto-wrapping for an ability

You should always verify that the ability you are describing 'fits' in the width of the INFO area on the BACK worksheet. Although a recent update to the sheet added auto-wrapping, it it possible for a phrase to be misaligned, thanks to an average phrase width that is larger than the norm (i.e. when using lots of large characters like 'w' or 'm'). You should verify your phrases to make sure these fit well using the default font and size settings. If not, consider using a synonym for a longer word.

Times per Day

When creating an Ability that has a "times per day" limitation, you should always add a simple formula that will display the check marks representing that number of times per day, which is very useful for those using the paper version of TOS+. Here is an example:

TOS+:
="Dimension Door (Sp): 1/day, CL7 "&IF(t_CheckMark="",""," <"&t_CheckMark)&">"

Example for TOS FIVE/TOS 2nd:
="Dimension Door (Sp): 1/day, CL7 "&IF(b_ShowCM,VLOOKUP(1,t_CheckMarks,2,FALSE),"")


TOS+: The named cell t_CheckMark represent the Character (by default, the capital 'O' character) that will be used to denote each 'check mark'. The times per day for an ability should always be displayed as part of the description (in this case as 1/day). For an ability that is used more than once per day, the REPT() excel function can be used to repeat the number of desired check marks, as shown here:


="Dimension Door (Sp): 3/day "&IF(t_CheckMark="",""," <"&REPT(t_CheckMark,3)&">"


Evidently, a formula returning an Integer can be used for times per day that can change according to some other factor.

TOS FIVE/TOS 2nd: Use the b_ShowCM named cell to check if the user wants to show Check Marks or not. If the user want to use Check Marks, then you can VLOOKUP() the number to use within the t_CheckMarks table, which can be found on the Tables worksheet.


It is possible to 'turn off' the display of the Check Marks; go to the Customize worksheet and click on the 'CheckMarks' link found in the "Other" section. One of the option there represent the character used for check marks: If that character is deleted (i.e. empty), then all check marks will disappear (at least, those coded as shown in the standard guide!!)

Displaying Errors

Sometimes, the user needs to enter his choices for specific abilities, feats or else. In this case, we use the ► and ◄ to highlight the missing information, to make sure it is visible in the INFO section of the Back sheet. Since these characters cannot be saved in a simple text file, we have two named cells to handle them: ErrStart (►) and ErrEnd (◄). Try to be specific as to where the use needs to go to enter the missing information. Here is an example:

=IF(lvl_Hierophant=0,"n/a","Special Ability: "&IF(tSel_Custom_HierophantSpecial3="",ErrStart&" Not selected on Customize Sheet! "&ErrEnd,tSel_Custom_HierophantSpecial3))

Bonus Feats

When a Class (or race) receives bonus feats, there are several things to do.

  1. First, you need to take into account all 'bonus' feats, and increase the total number of feats accordingly, using the Bonus Feats effect. For example of this, refer to the AbilityData worksheet, and scroll down to the existing Bonus Feat (class_name).
  2. Second, you need to tell the user about this bonus feat. This is done through the features.
  3. Third, you have to check if the use has indeed selected that free feat in the feat area on the BACK worksheet. For example, this formula will check to see if the Track feat has been selected for a Ranger: =IF(COUNTIF(tSel_Feats,"Track")=0,"Track feat missing from the Feats section {Ranger}",""). For a Class, this code would appear in the Class Status section. For a race, a similar check would be placed in the Race Status section.
  4. Finally, you have to consider that the prerequisites for a feat might be overruled by a class receiving a bonus feat. For example, a Monk may select Deflect Arrows as a bonus feat at 2nd level, even if he does not meet the prerequisites. Simply use the feat_name Prereqs Met effect to tell TOS+ that this class is authorized to take that feat, irrelevant of prerequisites:
Table: Applying the Prerequisite Met Effect
Permanent Effect Name Effect Type Effect Modifier
Yes Deflect Arrows Prereqs Met Unnamed 1


ORDINAL(): Adds st, nd, rd or th to values

ORDINAL
Appends a trailing st, nd, rd or th to numbers.
Syntax
ORDINAL(value)
Remarks
Use only with Values
Negative values will work
Example
="Cast spell as a "&ORDINAL(SUM(i_CHAModif,i_CharacterLevel))&" level character"
Note
If the value you are using is fixed, use the named cells ST, ND, RD or TH instead of this function.

Computing Efficiency

When creating an Ability that has a complex formula, try, if possible, to avoid having excel compute that formula when it does NOT apply to the current Character. For example, this Racial Trait for the Nixie race:


=IF(tSel_Race="Nixie","Charm Person (Sp): 3/day, CL 4, DC"&11+i_CHAModif&" Will "&IF(t_CheckMark="",""," <"&REPT(t_CheckMark,3)&">"),"Inactive")


As you can see, the first thing that this formula checks is IF the current race is a "Nixie". (tSel_Race contains the race that has been selected on the Front Worksheet). Only if the current race is a "Nixie", will the Charm Person ability be computed and displayed. If the current race is not a Nixie, then this will evaluate to "Inactive", just to note this formula is not currently needed.


Miscellaneous Tips

  • When giving a distance in feet, use either ft. or the single quote
  • Avoid the use of the [ and ] (brackets) characters as they are used as the delimiters for .tos files
  • There should always be 2 white spaces in front of the < symbol used to start check marks in TOS+


BACK to the Advanced User Guide