*********************************************************************** * * * Sample FlexForm Character Sheet * * * * by Armin D. Sykes (armin@teleport.com) * * Modified by Roger Willcocks (r.willcocks@auckland.ac.nz) * * * * This sheet has been modified to be most useful to spell users * * The character portrait, description and notes are together on a * * separate page/s and all the stats and advantages, etc are also on a * * separate page from the skills and spells. The basic stats, Will, * * etc are listed, but other like Natural ST are as yet unlisted as * * they are not always present. Anyway try it and see if you like it. * *********************************************************************** var Num var SectionSpacer = .075 var lineCount = 7.2 *set up fonts FontName Times New Roman FontSize 10 FontStyle prn_Normal *lines per inch LPI lineCount *set up columns ColumnWidth (((Right_Margin - Left_Margin)-.2)/3) ************************************************************ ***** ***** STATS ***** ******************** ***** Define needed variables *************** var CostCol var StatCol var ScoreCol var BoxTop var BoxLeft var BoxBottom var BoxRight var MidLine1 var MidLine2 var Margin var LeftInset var boxCentre ******************** ***** initialize postion variables *************** var AttHeight = .45 set Margin = .05 set LeftInset = .22 set CostCol = (curLeftMargin + LeftInset - Margin) set StatCol = (#CostCol# + .1) set ScoreCol = (#StatCol# + .7) set boxCentre = (#AttHeight# / 2)- .17 ****************************** ***** Print ST and Fatigue ****************************** ******************** ***** ST box *************** set BoxLeft = (curLeftMargin + LeftInset) set BoxTop = %curline% set BoxRight = (curLeftMargin + column_width - (2*Margin)) set BoxBottom = (%curline% + (AttHeight - Margin)) set MidLine1 = ((#BoxLeft# + #boxRight#)/2)-Margin Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL ***** divide into ST and Fatigue boxes Line #MidLine1#, #BoxTop#, #MidLine1#, #BoxBottom# ********** ***** fill it ***** ***** print Cost and Fatigue headings FontSize 8 PrintAtRight "Cost", #CostCol#, %curline% FontStyle prn_BOLD PrintAtCenter "Fatigue (of " & Fatigue.Score & ")", (#BoxRight# - #MidLine1#) / 2 + #MidLine1#, %curline% + .01 FontStyle prn_Normal ***** print ST cost FontSize 10 PrintAtRight ST.Points, #CostCol#, .05555555 + #BoxTop# + #boxCentre# ***** print ST score and text FontSize 18 FontStyle PRN_BOLD PrintAtLeft "ST:", #StatCol#, #BoxTop# + #boxCentre# PrintAtCenter ST.Score, #ScoreCol#, #BoxTop# + #boxCentre# FontStyle PRN_NORMAL ** * move down to the next section ** MoveDown AttHeight +.02 ****************************** ***** Print DX, IQ, and Basic Damage ****************************** ******************** ***** DX box *************** set BoxTop = %curLine% set BoxRight = (MidLine1) set BoxBottom = (%curLine% + (AttHeight - Margin)) Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL ********** ***** fill it ***** ***** print DX cost FontSize 10 PrintAtRight DX.Points, #CostCol#, .05555555 + #BoxTop# + #boxCentre# ***** print DX score and text FontSize 18 FontStyle PRN_BOLD PrintAtLeft "DX:", #StatCol#, #BoxTop# + #boxCentre# PrintAtCenter DX.Score, #ScoreCol#, #BoxTop# + #boxCentre# FontStyle PRN_NORMAL ******************** ***** IQ box *************** set BoxTop = (%curLine% + AttHeight+.02) * set BoxRight = (#BoxLeft# + 1) set BoxBottom = (BoxTop + (AttHeight - Margin)) Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL ********** ***** fill it ***** ***** print IQ cost FontSize 10 PrintAtRight IQ.Points, #CostCol#, .05555555 + #BoxTop# + #boxCentre# ***** print IQ score and text FontSize 18 FontStyle PRN_BOLD PrintAtLeft "IQ:", #StatCol#, #BoxTop# + #boxCentre# PrintAtCenter IQ.Score, #ScoreCol#, #BoxTop# + #boxCentre# FontStyle PRN_NORMAL ******************** ***** basic damage box *************** set BoxLeft = (#MidLine1# + Margin+.02) set BoxTop = %curLine% set BoxRight = (curLeftMargin + column_width - (2*Margin)) set BoxBottom = (#BoxTop# + #AttHeight# + #AttHeight#+.02) - #Margin# Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL FontSize 8 FontStyle PRN_BOLD PrintAtCenter "Damage", (#BoxRight# - #BoxLeft#) / 2 + #BoxLeft#, %curLine% + .01 FontStyle PRN_NORMAL ********** ***** fill it ***** FontSize 10 set num = ((#BoxRight# - #BoxLeft#) / 2) + #BoxLeft# + Margin PrintAtLeft "" & BaseTH, #num#, %curline% + lpi PrintAtRight "Thrust: ", #num#, %curline% + lpi PrintAtLeft "" & BaseSW, #num#, %curline% + lpi * 2 PrintAtRight "Swing: ", #num#, %curline% + lpi * 2 ** * move down to the next section ** MoveDown (AttHeight * 2)+.04 ****************************** ***** Print HT and Hits Taken ****************************** ******************** ***** HT box *************** set BoxLeft = (curLeftMargin + LeftInset) set BoxTop = %curline% set BoxRight = (curLeftMargin + column_width - (2*Margin)) set BoxBottom = (%curline% + (AttHeight - Margin)) * set MidLine1 = (#BoxLeft# + 1) Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL ***** divide into HT and Hits boxes Line #MidLine1#, #BoxTop#, #MidLine1#, #BoxBottom# ********** ***** fill it ***** ***** print Hits Taken FontSize 8 FontStyle PRN_BOLD PrintAtCenter "Hits Taken (of " & Hit Points.Score & ")", (#BoxRight# - #MidLine1#) / 2 + #MidLine1#, %curline% + .01 FontStyle PRN_NORMAL ***** print Hit Points FontSize 10 PrintAtRight HT.Points, #CostCol#, .05555555 + #BoxTop# + #boxCentre# ***** print HT score and text FontSize 18 FontStyle PRN_BOLD PrintAtLeft "HT:", #StatCol#, #BoxTop# + #boxCentre# PrintAtCenter HT.Score, #ScoreCol#, #BoxTop# + #boxCentre# FontStyle PRN_NORMAL ***** ***** END STATS ***** ************************************************************ ** * move down to the next section ** MoveTo (#BoxBottom# + #SectionSpacer#) ************************************************************ ***** ***** MOVEMENT ***** ******************** ***** MVMT box *************** set BoxLeft = (curLeftMargin + LeftInset) set BoxTop = %curline% set BoxRight = (curLeftMargin + column_width - (2*Margin)) set BoxBottom = (%curline% + (2* #AttHeight#)) set MidLine1 = (#BoxLeft# + (#BoxRight# - #BoxLeft#) / 3) set MidLine2 = (#BoxLeft# + (#BoxRight# - #BoxLeft#) / 3 * 2) Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL ***** divide into thirds Line #MidLine1#, #BoxTop#, #MidLine1#, #BoxBottom# Line #MidLine2#, #BoxTop#, #MidLine2#, #BoxBottom# ***** divide in sixths across horizontal Line #BoxLeft#, #BoxTop# + #AttHeight#, #BoxRight#, #BoxTop# + #AttHeight# ********** ***** fill it ***** ***** print Mvmt text FontSize 14 FontStyle PRN_BOLD PrintAtCenter "Mvmt", (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + lpi ***** print Basic Speed and text FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Basic Speed", (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% + .01 FontSize 12 PrintAtCenter Speed.Score, (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% + lpi FontSize 8 FontStyle PRN_ITALIC PrintAtCenter "(HT+DX)/4", (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% + lpi * 2 + .01 FontStyle PRN_NORMAL ***** print Move and text FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Move", (#BoxRight# - #MidLine2#) / 2 + #MidLine2#, %curline% + .01 FontSize 12 PrintAtCenter Move.Score, (#BoxRight# - #MidLine2#) / 2 + #MidLine2#, %curline% + lpi FontSize 8 FontStyle PRN_ITALIC PrintAtCenter "Round Off", (#BoxRight# - #MidLine2#) / 2 + #MidLine2#, %curline% + lpi * 2 + .01 FontStyle PRN_NORMAL ***** print Swim and text MoveDown #AttHeight# FontSize 8 FontStyle PRN_FONTNORMAL PrintAtCenter "Swim", (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + .01 FontSize 12 PrintAtCenter Swim.Score, (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + lpi FontSize 8 FontStyle PRN_FONTITALIC PrintAtCenter "(Base)", (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + lpi * 2 + .01 FontStyle PRN_NORMAL ***** ***** END MOVEMENT ***** ************************************************************ ** * move down to the next section ** MoveTo (#BoxBottom# + #SectionSpacer#) ************************************************************ ***** ***** ENCUMBRANCE ***** var chkBoxTop var chkBoxLeft var chkBoxBottom var chkBoxRight var i *create a rectangle around the active defense stuff set BoxLeft = (curLeftMargin + LeftInset) set BoxTop = %curline% set BoxRight = (curLeftMargin + column_width - (2*Margin)) set BoxBottom = (%curline% + (6.5 * lpi)) + .05 Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL *fill it FontSize 12 FontStyle PRN_BOLD PrintAtLeft "Encumbrance", #BoxLeft# + .075, %curline% + .03 PrintAtRight "Move", #BoxRight# - .075, %curline% + .03 MoveDown (lpi * 1.5) For i = 1 To 5 *create a chkbox set chkBoxLeft = (#BoxLeft# + .075) set chkBoxTop = %curline% + .02 set chkBoxRight = (#chkBoxLeft# + lpi * .75) set chkBoxBottom = (%curline% + (lpi * .75) + .02) Box #chkBoxLeft# + .015, #chkBoxTop# + .015, #chkBoxRight# + .015, #chkBoxBottom# + .015, DKGREY, FILL BoxBorder #chkBoxLeft#, #chkBoxTop#, #chkBoxRight#, #chkBoxBottom#, WHITE, FILL *fill in information FontSize 10 FontStyle PRN_NORMAL if #i# = 1 then PrintAtLeft "None (" & No Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .17, %curline% PrintAtRight NEncMult & " x ST", #chkBoxLeft# + 1.22, %curline% PrintAtRight No Encumbrance.Score & " lbs", #chkBoxLeft# + 1.68, %curline% PrintAtRight No Encumbrance Move.Score, #chkBoxLeft# + 1.9, %curline% endif if #i# = 2 then PrintAtLeft "Light (" & Light Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .17, %curline% PrintAtRight LEncMult & " x ST", #chkBoxLeft# + 1.22, %curline% PrintAtRight Light Encumbrance.Score & " lbs", #chkBoxLeft# + 1.68, %curline% PrintAtRight Light Encumbrance Move.Score, #chkBoxLeft# + 1.9, %curline% endif if #i# = 3 then PrintAtLeft "Med (" & Medium Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .17, %curline% PrintAtRight MEncMult & " x ST", #chkBoxLeft# + 1.22, %curline% PrintAtRight Medium Encumbrance.Score & " lbs", #chkBoxLeft# + 1.68, %curline% PrintAtRight Medium Encumbrance Move.Score, #chkBoxLeft# + 1.9, %curline% endif if #i# = 4 then PrintAtLeft "Hvy (" & Heavy Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .17, %curline% PrintAtRight HEncMult & " x ST", #chkBoxLeft# + 1.22, %curline% PrintAtRight Heavy Encumbrance.Score & " lbs", #chkBoxLeft# + 1.68, %curline% PrintAtRight Heavy Encumbrance Move.Score, #chkBoxLeft# + 1.9, %curline% endif if #i# = 5 then PrintAtLeft "X-Hvy (" & X-Heavy Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .17, %curline% PrintAtRight XEncMult & " x ST", #chkBoxLeft# + 1.22, %curline% PrintAtRight X-Heavy Encumbrance.Score & " lbs", #chkBoxLeft# + 1.68, %curline% PrintAtRight X-Heavy Encumbrance Move.Score, #chkBoxLeft# + 1.9, %curline% endif MoveDown lpi Next ***** ***** END ENCUMBRANCE ***** ************************************************************ ** * move down to the next section ** MoveTo (#BoxBottom# + #SectionSpacer#) ************************************************************ ***** ***** ACTIVE DEFENSES ***** *create a rectangle around the active defense stuff set BoxLeft = (curLeftMargin + LeftInset) set BoxTop = %curline% set BoxRight = (curLeftMargin + column_width - (2*Margin)) set BoxBottom = (%curline% + (#AttHeight# - #Margin#) + .25) set MidLine1 = (#BoxRight# - #BoxLeft#) / 3 set boxCentre = #MidLine1# /2 set MidLine2 = (2 * #MidLine1#) + #BoxLeft# set MidLine1 = #MidLine1# + #BoxLeft# Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL *divide into thirds set num = #boxBottom# - #AttHeight# Line #MidLine1#, #num#, #MidLine1#, #BoxBottom# Line #MidLine2#, #num#, #MidLine2#, #BoxBottom# *put in SplitLine Line #BoxLeft#, #num#, #BoxRight#, #num# *fill it FontSize 12 FontStyle PRN_BOLD PrintAtCenter "Active Defenses", (#MidLine1# + #MidLine2#) / 2, %curline% + .03 ** set num = #boxBottom# - #AttHeight# FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Dodge", #boxCentre# + #BoxLeft#, #num# + .01 FontSize 12 PrintAtCenter Dodge.Score, #boxCentre# + #BoxLeft#, #num# + lpi FontSize 8 FontStyle PRN_ITALIC PrintAtCenter "= Move", #boxCentre# + #BoxLeft#, #num# + lpi * 2 + .01 FontStyle PRN_NORMAL FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Parry", #boxCentre# + #MidLine1#, #num# + .01 FontSize 12 PrintAtCenter ParryScore, #boxCentre# + #MidLine1#, #num# + lpi FontSize 8 FontStyle PRN_ITALIC PrintAtCenter ParryUsing & "*" & ParryAt, #boxCentre# + #MidLine1#, #num# + lpi * 2 + .01 FontStyle PRN_NORMAL FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Block", #boxCentre# + #MidLine2#, #num# + .01 FontSize 12 PrintAtCenter BlockScore, #boxCentre# + #MidLine2#, #num# + lpi FontSize 8 FontStyle PRN_ITALIC PrintAtCenter BlockUsing & "*" & BlockAt, #boxCentre# + #MidLine2#, #num# + lpi * 2 + .01 FontStyle PRN_NORMAL ***** ***** END ACTIVE DEFENSES ***** ************************************************************ ** * move down to the next section ** MoveTo (#BoxBottom# + #SectionSpacer#) if ((%curline% + 1.8) > Bottom_Margin) then nextCol movedown lpi endif ************************************************************ ***** ***** BODY PROTECTION ***** var MidLine3 var MidLine4 var MidLine5 var MidLine6 var MidLine7 *create a rectangle around the active defense stuff set BoxLeft = (curLeftMargin + LeftInset) set BoxTop = %curline% set BoxRight = (curLeftMargin + column_width - (2*Margin)) var boxWide = ((#BoxRight# - #BoxLeft#) / 8) set BoxBottom = (#BoxTop# + .4 + (2* (#AttHeight# + #boxWide#))) set MidLine1 = (#BoxLeft# + (#boxWide# * 1)) set MidLine2 = (#BoxLeft# + (#boxWide# * 2)) set MidLine3 = (#BoxLeft# + (#boxWide# * 3)) set MidLine4 = (#BoxLeft# + (#boxWide# * 4)) set MidLine5 = (#BoxLeft# + (#boxWide# * 5)) set MidLine6 = (#BoxLeft# + (#boxWide# * 6)) set MidLine7 = (#BoxLeft# + (#boxWide# * 7)) Box #BoxLeft# + Margin, #BoxTop# + Margin, #BoxRight# + Margin, #BoxBottom# + Margin, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL set num = #boxTop# + .4 var num1 = #BoxTop# + .4 + (2* #boxWide#) *put in SplitLines Line #BoxLeft#, #num#, #BoxRight#, #num# Line #BoxLeft#, #BoxTop# + .4 + #boxWide#, #BoxRight#, #BoxTop# + .4 + #boxWide# Line #BoxLeft#, #num1#, #BoxRight#, #num1# *divide into armor sections Line #MidLine1#, #num#, #MidLine1#, #num1# Line #MidLine2#, #num#, #MidLine2#, #num1# Line #MidLine3#, #num#, #MidLine3#, #num1# Line #MidLine4#, #num#, #MidLine4#, #BoxBottom# Line #MidLine5#, #num#, #MidLine5#, #num1# Line #MidLine6#, #num#, #MidLine6#, #num1# Line #MidLine7#, #num#, #MidLine7#, #num1# *fill it FontSize 12 FontStyle PRN_BOLD PrintAtCenter "Body Protection", #MidLine4#, %curline% + .02 set num = #%curline%# + .25 set boxWide = #boxWide# / 2 FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Head", #boxWide# + #MidLine1#, #num# PrintAtCenter "Body", #boxWide# + #MidLine2#, #num# PrintAtCenter "Arms", #boxWide# + #MidLine3#, #num# PrintAtCenter "Legs", #boxWide# + #MidLine4#, #num# PrintAtCenter "Hands", #boxWide# + #MidLine5#, #num# PrintAtCenter "Feet", #boxWide# + #MidLine6#, #num# PrintAtCenter "ALL", #boxWide# + #MidLine7#, #num# MoveDown (.4 + #boxWide# - .069444) FontSize 8 PrintAtCenter "PD", #boxWide# + #BoxLeft#, %curline% FontSize 10 PrintAtCenter PDHead, #boxWide# + #MidLine1#, %curline% PrintAtCenter PDBody, #boxWide# + #MidLine2#, %curline% PrintAtCenter PDArms, #boxWide# + #MidLine3#, %curline% PrintAtCenter PDLegs, #boxWide# + #MidLine4#, %curline% PrintAtCenter PDHands, #boxWide# + #MidLine5#, %curline% PrintAtCenter PDFeet, #boxWide# + #MidLine6#, %curline% PrintAtCenter PD.Score, #boxWide# + #MidLine7#, %curline% MoveDown (2* #boxWide#) FontSize 8 PrintAtCenter "DR", #boxWide# + #BoxLeft#, %curline% FontSize 10 PrintAtCenter DRHead, #boxWide# + #MidLine1#, %curline% PrintAtCenter DRBody, #boxWide# + #MidLine2#, %curline% PrintAtCenter DRArms, #boxWide# + #MidLine3#, %curline% PrintAtCenter DRLegs, #boxWide# + #MidLine4#, %curline% PrintAtCenter DRHands, #boxWide# + #MidLine5#, %curline% PrintAtCenter DRFeet, #boxWide# + #MidLine6#, %curline% PrintAtCenter DR.Score, #boxWide# + #MidLine7#, %curline% MoveDown .25 FontSize 10 FontStyle (PRN_NORMAL + PRN_UNDERLINE) PrintAtLeft "Other PD", #BoxLeft# + .1, %curline% PrintAtLeft "Other DR", #MidLine4# + .1, %curline% FontStyle PRN_NORMAL ******************** ***** Define the table to use in printing *************** set boxWide = (#MidLine4# - #BoxLeft# - .2) table Field head(spacer), width(LeftInSet + .1), align(prn_left) Field head(OtherPD), width(#boxWide#), align(prn_left) Field head(spacer), width(.2), align(prn_left) Field head(OtherDR), width(#boxWide#), align(prn_left) endtable MoveDown lpi tableprint "", OtherPD, "", OtherDR ***** ***** END BODY PROTECTION ***** ************************************************************ ************************************************************ ***** ***** POINT SUMMARY ***** MoveTo (#BoxBottom# + #SectionSpacer#) ******************** ***** Define the table to use in printing *************** table Field width(LeftInSet), align(prn_left) Field width(1.25), align(prn_left) Field width(.5), align(prn_right) endtable *************************************** FontStyle prn_Bold + prn_Underline tableprint "","Point Summary","" FontStyle prn_Normal ******************** ***** Print our point values using the tabled printing *************** tableprint "","Attributes", StatsCost if NumPowers then tableprint "","Powers", PowersCost endif tableprint "","Advantages", AdsCost tableprint "","Disadvantages", DisadsCost tableprint "","Quirks", QuirksCost tableprint "","Skills", SkillsCost if NumSpells then tableprint "","Spells", SpellsCost endif FontStyle prn_Bold tableprint "","Total", TotalCost FontStyle prn_Normal ***** ***** END POINT SUMMARY ***** ************************************************************ ** * move down to the next section ** *MoveTo (#BoxBottom# + #SectionSpacer#) if (%curcol% <> 1) then MoveTo (#BoxBottom# + #SectionSpacer#) endif if (%curcol% = 1) then NextCol endif ********** ***** restore font info ***** LPI lineCount FontSize 10 ** if ((%curLine% + lpi*9) >= Bottom_Margin) then ** nextcol ** endif **movedown #SectionSpacer# ** print statisitcs section table Field width(Column_Width - (.45+Margin)), align(prn_left) Field width(.45), align(prn_right) endtable FontStyle prn_Bold + prn_Underline tableprint "Statistics","", "Lvl" FontStyle prn_NORMAL tableprint Will.Name, Will.Score tableprint Vision.Name, Vision.Score tableprint Hearing.Name, Hearing.Score tableprint Taste/Smell.Name, Taste/Smell.Score *tableprint Natural ST.Name, Natural ST.Score tableprint "All statistics not always shown", "" *tableprint Will.Name, Will.Score *tableprint Will.Name, Will.Score *tableprint Will.Name, Will.Score *tableprint Will.Name, Will.Score ***should be able to do with like below *with att *for num = 1 to 20 * if att(#Num#).Display < 0 then * tableprint "",att(#Num#).View, att(#Num#).Score * endif *next *endwith MoveDown #SectionSpacer# ************************************************************ ***** ***** POWERS ***** ******************** ***** Define the format for them *************** BeginList Powers Field head(Pts), include(Cost), position(.2), width(.25), align(prn_right) Field head(Power), include(DefaultView), position(.27) EndList ******************** ***** Make them get printed *************** If NumPowers then FontStyle prn_Bold + prn_Underline Print "POWERS" FontStyle prn_Normal endif DoList Powers ***** ***** END POWERS ***** ************************************************************ if NumPowers then ** * move down to the next section ** movedown #SectionSpacer# endif ************************************************************ ***** ***** ADVANTAGES ***** ******************** ***** Define the format for them *************** BeginList Ads Field head(Pts), include(Cost), position(.2), width(.25), align(prn_right) Field head(Advantage), include(DefaultView), position(.27) EndList ******************** ***** Make them get printed *************** FontStyle prn_Bold + prn_Underline Print "ADVANTAGES" FontStyle prn_Normal DoList Ads ***** ***** END ADVANTAGES ***** ************************************************************ if NumAds then ** * move down to the next section ** movedown #SectionSpacer# endif ************************************************************ ***** ***** DISADVANTAGES ***** ******************** ***** Define the format for them *************** BeginList Disads Field head(Pts), include(Cost), position(.2), width(.25), align(prn_right) Field head(Disadvantage), include(DefaultView), position(.27) EndList ******************** ***** Make them get printed *************** FontStyle prn_Bold + prn_Underline Print "DISADVANTAGES" FontStyle prn_Normal DoList Disads ***** ***** END DISADVANTAGES ***** ************************************************************ if NumDisads then ** * move down to the next section ** movedown #SectionSpacer# endif ************************************************************ ***** ***** QUIRKS ***** ******************** ***** Define the format for them *************** BeginList Quirks Field head(Pts), include(Cost), position(.2), width(.25), align(prn_right) Field head(Quirk), include(DefaultView), position(.27) EndList ******************** ***** Make them get printed *************** FontStyle prn_Bold + prn_Underline Print "QUIRKS" FontStyle prn_Normal DoList Quirks ***** ***** END QUIRKS ***** ************************************************************ if NumQuirks then ** * move down to the next section ** movedown #SectionSpacer# endif ************************************************************ ***** ***** SKILLS ***** nextPage ColumnWidth (((Right_Margin - Left_Margin)-.2)/2) ******************** ***** Define the table to use in printing *************** set num = Column_Width - (.45 + Margin) BEGINLIST Skills Field head(Skill), include(Name), position(0), width(#num#), align(prn_left) Field head(Pts), include(Points), position(#num# + .2), width(.2), align(prn_right) Field head(Lvl), include(Level), position(#num# + .45), width(.25), align(prn_right) ENDLIST ******************** ***** Print the header at the top of the section *************** FontStyle prn_Bold + prn_Underline Print "SKILLS" FontStyle prn_Normal * ******************** * ***** Print all the skills using our table format * *************** DoList Skills ***** ***** END SKILLS ***** ************************************************************ movedown #SectionSpacer# ************************************************************ ***** ***** SPELLS ***** ** * don't print if no spells ** if NumSpells then ** * we want to start in a fresh column ** if ((%curLine% + lpi*9) >= Bottom_Margin) then nextcol endif FontStyle prn_Bold + prn_Underline Print "SPELLS" FontStyle prn_Normal ******************** ***** Define the table to use in printing *************** var colLeft =(#Column_Width# + #curLeftMargin#)-(3*#Margin#) set colLeft =(#colLeft# - #curLeftMargin#) table Field width(Margin), align(prn_left) Field width((#colLeft#/2)- .8), align(prn_left) Field width(.8), align(prn_left) Field width((#colLeft#/2)- Margin), align(prn_right) endtable ******************** ***** Print all the spells using our table format and ***** wrapping of longer sections without a table *************** var spellTop = #%curline%# with Spells for num = 1 to NumSpells ********** ***** print the spell name info as a header ***** if ((%curLine% + lpi*4) >= Bottom_Margin) then set colLeft = curLeftMargin + column_width line colLeft, spellTop , colLeft, %curLine% + Margin set spellTop = Top_Margin nextcol endif set colLeft =(Column_Width + curLeftMargin)-(3*Margin) FontStyle prn_Bold PrintAtLeft Spell(#Num#).DefaultView, curLeftMargin, %curline% PrintAtRight "Sk: " & Spell(#Num#).Level, ColLeft-Margin, %curline% FontStyle prn_Normal PrintAtRight "Pts:" & Spell(#Num#).Points & " " & Spell(#Num#).Type, ColLeft-.5, %curline% Movedown lpi ***** print these items using the table format tableprint "", "Dur: " & Spell(#Num#).Duration, "Time: " & Spell(#Num#).Time, "Cost: " & Spell(#Num#).Cost ***** print these items as paragraphs, indented from the left PrintWrapAtLeft "Notes: " & Spell(#Num#).Notes & " (pg " & Spells(#Num#).Page & ")", curLeftMargin + Margin, %curLine%, ColLeft - (curLeftMargin + (Margin*2)) movedown Margin next FontSize 8 LPI 10 set num1 = (curLeftMargin+colLeft-2)/2 table Field width(1), align(prn_right) Field width(.1), align(prn_Right) Field width(1.3), align(prn_right) Field width(.1), align(prn_Right) endtable FontStyle prn_Bold PrintAtCenter "Long-Distance Modifiers", #curLeftMargin# + 1.3, %curline% Movedown lpi FontStyle prn_Normal PrintWrapAtLeft "Use these skill modifers for 'Seek' spells, and for other specified spells which work over a long distance.", curLeftMargin+Margin, %curLine%, (ColLeft - curLeftMargin) - .8 tableprint "Less than 100 yards:", "0", "Up to half a mile:", "-1" tableprint "Up to a mile:", "-2", "Up to 3 miles:", "-3" tableprint "Up to 10 miles:", "-4", "Up to 50 miles:", "-5" tableprint "Up to 100 miles:", "-6", "Up to 300 miles:", "-7" tableprint "Up to 1,000 miles:", "-8", "Per additional 1,000 miles:", "-1" PrintWrapAtLeft "Also, subtract 1 from effective skill for each 'known' item you choose to ignore in your search. For instance, you would need to ignore the water in your canteen when you cast Seek water in the desert.", curLeftMargin+Margin, %curLine%, (colLeft - curLeftMargin) - .8 FontSize 10 LPI LineCount set spellTop = %curline% + Margin line colLeft, spellTop, colLeft, Top_Margin line curLeftMargin - (Margin), spellTop, colLeft, spellTop endif ***** ***** END SPELLS ***** ************************************************************ NextPage ******************** ***** Set up block to print portrait into *************** if HasPortrait then var LS set LS = curLeftMargin +.01 if Portrait_Width <= (Column_Width - .1) then set LS = (Column_Width - Portrait_Width)/2 + #LS# endif Block PictureSpace, 1, LS, Top_Margin + Margin, LS + Portrait_Width, Top_Margin + Portrait_Height + Margin ** uncomment the next two lines if you want a shaded box around the portrait * Box PictureSpace.Left+.1, PictureSpace.Top+.1, PictureSpace.Right, PictureSpace.Bottom, LTGREY, FILL * BoxBorder PictureSpace.Left -.015, PictureSpace.Top - .015, PictureSpace.Right + .015, PictureSpace.Bottom + .015, WHITE, FILL PortraitAt #LS#, Top_Margin + Margin set LS = #LS# + PictureSpace.Right MoveTo PictureSpace.Bottom endif ColumnWidth (((Right_Margin - Left_Margin)-.2)/2) MoveDown lpi ************************************************************ ***** ***** DESCRIPTION ***** if ((%curLine% + lpi*5) >= Bottom_Margin) then nextcol * if (#LS# > (curLeftMargin) Then * MoveTo PictureSpace.Bottom * endif endif FontStyle prn_Bold + prn_Underline Print "Description" FontStyle prn_Normal PrintWrapAtLeft Description, curLeftMargin + Margin, %curLine%, Column_Width - (Margin*2) ***** ***** END DESCRIPTION ***** ************************************************************ ************************************************************ ***** ***** NOTES ***** if ((%curLine% + lpi*3) >= Bottom_Margin) then nextcol * if (#LS# > (curLeftMargin) Then * MoveTo PictureSpace.Bottom * endif endif movedown #SectionSpacer# FontStyle prn_Bold + prn_Underline Print "Notes" FontStyle prn_Normal PrintWrapAtLeft Notes, curLeftMargin + Margin, %curLine%, Column_Width - (Margin*2) ***** ***** END NOTES ***** ************************************************************