2012-09-21

Spreadsheet Fun

In the course of creating the characters for The Blood Path, I decided to try out a little experiment with the OpenOffice spreadsheet application I have bundled with my Open Office suite.

In the Legend fantasy roleplaying game, a bunch of different skills are available - each with its own base opening chance. This is the base percentage chance of succeeding that your character has immediately the skill is opened - made available as a learned and usable skill on the character sheet - and before any cultural and professional modifiers are added, let alone any increases to the percentage due to Improvement Rolls acquired during play.

For instance, close Combat Styles - various types of melee with weapons and unarmed - all have the base skill level of STR+DEX. An average character, whose STRength and DEXterity are both the human average of 11, will have base chances of 22% in all melee combat weapon styles and Unarmed. Similarly, the advanced Play Instrument skill's base characteristics are DEX+CHA, so again a character with an average DEX of 11 and CHA of 11 is going to have a base chance of 22% in whichever instrument he picks up and learns how to play, whether it be a piccolo, fiddle or ocarina.

And some skills open with a "x2" base chance, where you simply double the appropriate skill, e.g. DEXx2 for Evade, POWx2 for Meditation.

Each character has seven characteristics, in order: Strength (STR), Constitution (CON), Size (SIZ), Intelligence (INT), Power (POW), Dexterity (DEX) and Charisma (CHA). It seemed to me, then, that every single skill that has existed, does exist or ever will exist in Legend will have a base chance based on one of the combinations of these seven characteristics - a total of 49 types in all.

Characteristic     STR         CON         SIZ         INT         POW         DEX         CHA    
STR STRx2 STR+CON STR+SIZ STR+INT STR+POW STR+DEX STR+CHA
CON STR+CON CONx2 CON+SIZ CON+INT CON+POW CON+DEX CON+CHA
SIZ STR+SIZ CON+SIZ SIZx2 SIZ+INT SIZ+POW SIZ+DEX SIZ+CHA
INT STR+INT CON+INT SIZ+INT INTx2 INT+POW INT+DEX INT+CHA
POW STR+POW CON+POW SIZ+POW INT+POW POWx2 POW+DEX POW+CHA
DEX STR+DEX CON+DEX SIZ+DEX INT+DEX POW+DEX DEXx2 DEX+CHA
CHA STR+CHA CON+CHA SIZ+CHA INT+CHA POW+CHA DEX+CHA CHAx2

Something like that. I realised that I only needed one vertical strip down along the side for the characteristics, and the above table beside it with those sums within them. So I tried it, and damn me if it worked.

My next great discovery was how to implement numerical range values within a cell, such that if a number appeared within a given range in a specific cell, that cell would let me know which row in a given table that value would fall in.

The discovery hinges on formulae like this:-

=IF($B$11<=5;"HERE";" ")
=IF(and($B$11>=6;$B$11<=10);"HERE";" ")
 =IF($B$11>=11;"HERE";" ")

Each formula goes into a different cell. Each formula tests the value in cell $B$11 - which, because I am using the anchoring $ sign, does not change its relative position in the sheet if I copy the formula between cells. In the first, if the value of $B$11 is less than or equal to 5, it prints out the word "HERE" in the cell, or otherwise prints out a space. In the second, if the value of $B$11 fulfills the AND function, which is testing to see if $B$11's value falls between 6 and 10, it prints "HERE" in the cell; and finally, if the value of $B$11 is equal to or greater than 11, it prints out "HERE" in the cell.

At all points, if the value does not satisfy the test, the cell prints out an empty space.

So now I have a spreadsheet which quickly tells me not only the character's base chances for any skills; it also handily points to the appropriate row in the columns to measure his combat actions, damage modifier and even hit location values.

Legend Chargen has never been quicker. Treble facepalms all round for not having done this before.

No comments:

Post a Comment

"And if we have unearned luck, now to scape the serpent's tongue, we will make amends ere long. Else the Puck a liar call ..."

So speak.