***************************************************************** * * * Sample FlexForm Character Sheet * * * * by Armin D. Sykes (armin@teleport.com) * * Modified by Ken Burnside (burnside@itis.com) * * using mods by Roger Willcocks (r.willcocks@auckland.ac.nz) * ***************************************************************** var Num var SectionSpacer = .2 var Margin = .05 var lineCount = 7.2 *set up fonts FontName Arial FontSize 12 FontStyle prn_Normal *lines per inch LPI 6 *set up columns ColumnWidth 3.25 ******************** ***** Set up block to print portrait into *************** if HasPortrait then Block PictureSpace, 1, Right_Margin - Column_Width - ColSpace, Top_Margin, Right_Margin - ColSpace, Top_Margin + Portrait_Height +.3 var LS set LS = (Right_Margin - Column_Width- ColSpace) if Portrait_Width <= (Column_Width - .2) then set LS = (Column_Width - Portrait_Width)/2 + #LS# endif ** 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, PictureSpace.Top, PictureSpace.Right-.1, PictureSpace.Bottom-.1, WHITE, FILL PortraitAt #LS#, Top_Margin +.1 endif MoveDown lpi ************************************************************ ***** ***** STATS ***** ******************** ***** Define needed variables *************** var CostCol var StatCol var ScoreCol var BoxTop var BoxLeft var BoxBottom var BoxRight var MidLine1 var MidLine2 ******************** ***** initialize position variables *************** set CostCol = (curLeftMargin + .25 - .05) set StatCol = (#CostCol# + .4) set ScoreCol = (#StatCol# + .9) ****************************** ***** Print ST and Fatigue ****************************** ******************** ***** ST box *************** set BoxLeft = (curLeftMargin + .25) set BoxTop = %curline% set BoxRight = (#BoxLeft# + 3) set BoxBottom = (%curline% + .5) set MidLine1 = (#BoxRight# - 1.5) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, 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% + .01 PrintAtCenter "Fatigue (of " & Fatigue.Score & ")", (#BoxRight# - #MidLine1#) / 2 + #MidLine1#, %curline% + .01 ***** print ST cost FontSize 10 PrintAtRight ST.Points, #CostCol#, %curline% + lpi + .01 ***** print ST score and text FontSize 18 FontStyle PRN_BOLD PrintAtLeft "ST", #StatCol#, %curline% + lpi PrintAtCenter ST.Score, #ScoreCol#, %curline% + lpi FontStyle PRN_NORMAL ** * move down to the next section ** MoveDown .55 ****************************** ***** Print DX, IQ, and Basic Damage ****************************** ******************** ***** DX box *************** set BoxLeft = (curLeftMargin + .25) set BoxTop = %curLine% set BoxRight = (#BoxLeft# + 1.5) set BoxBottom = (%curLine% + .5) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL ********** ***** fill it ***** ***** print DX cost FontSize 10 PrintAtRight DX.Points, #CostCol#, #BoxTop# + lpi + .01 ***** print DX score and text FontSize 18 FontStyle PRN_BOLD PrintAtLeft "DX", #StatCol#, #BoxTop# + lpi PrintAtCenter DX.Score, #ScoreCol#, #BoxTop# + lpi FontStyle PRN_NORMAL ******************** ***** IQ box *************** set BoxLeft = (curLeftMargin + .25) set BoxTop = (%curLine% + .55) set BoxRight = (#BoxLeft# + 1.5) set BoxBottom = (%curLine% + .55 + .5) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL ********** ***** fill it ***** ***** print IQ cost FontSize 10 PrintAtRight IQ.Points, #CostCol#, #BoxTop# + lpi + .01 ***** print IQ score and text FontSize 18 FontStyle PRN_BOLD PrintAtLeft "IQ", #StatCol#, #BoxTop# + lpi PrintAtCenter IQ.Score, #ScoreCol#, #BoxTop# + lpi FontStyle PRN_NORMAL ******************** ***** basic damage box *************** set BoxLeft = (curLeftMargin + 1.75 + .05) set BoxTop = %curLine% set BoxRight = (#BoxLeft# + 1.5 - .05) set BoxBottom = (%curLine% + .55 + .5) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL FontSize 8 PrintAtCenter "Damage", (#BoxRight# - #BoxLeft#) / 2 + #BoxLeft#, %curLine% + .01 ********** ***** fill it ***** FontSize 10 PrintAtCenter "Thrust: " & BaseTH, (#BoxRight# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + lpi PrintAtCenter "Swing: " & BaseSW, (#BoxRight# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + lpi * 2 ** * move down to the next section ** MoveDown (.55 * 2) ****************************** ***** Print HT and Hits Taken ****************************** ******************** ***** HT box *************** set BoxLeft = (curLeftMargin + .25) set BoxTop = %curline% set BoxRight = (#BoxLeft# + 3) set BoxBottom = (%curline% + .5) set MidLine1 = (#BoxRight# - 1.5) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, 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 PrintAtCenter "Hits Taken (of " & Hit Points.Score & ")", (#BoxRight# - #MidLine1#) / 2 + #MidLine1#, %curline% + .01 ***** print Hit Points FontSize 10 PrintAtRight HT.Points, #CostCol#, %curline% + lpi + .01 ***** print HT score and text FontSize 18 FontStyle PRN_BOLD PrintAtLeft "HT", #StatCol#, %curline% + lpi PrintAtCenter HT.Score, #ScoreCol#, %curline% + lpi FontStyle PRN_NORMAL ***** ***** END STATS ***** ************************************************************ ** * move down to the next section ** MoveTo (#BoxBottom# + #SectionSpacer#) ************************************************************ ***** ***** MOVEMENT ***** ******************** ***** MVMT box *************** set BoxLeft = (curLeftMargin + .25) set BoxTop = %curline% set BoxRight = (#BoxLeft# + 3) set BoxBottom = (%curline% + 1) set MidLine1 = (#BoxLeft# + (#BoxRight# - #BoxLeft#) / 3) set MidLine2 = (#BoxLeft# + (#BoxRight# - #BoxLeft#) / 3 * 2) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, 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# + .5, #BoxRight#, #BoxTop# + .5 ********** ***** 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 .5 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 + .25) set BoxTop = %curline% set BoxRight = (#BoxLeft# + 3) set BoxBottom = (%curline% + 1.3) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL *fill it FontSize 12 FontStyle PRN_BOLD PrintAtLeft "Encumbrance", #BoxLeft# + .125, %curline% + .03 PrintAtRight "Move", #BoxRight# - .125, %curline% + .03 MoveDown (lpi * 2) For i = 1 To 5 *create a chkbox set chkBoxLeft = (curLeftMargin + .25 + .125) set chkBoxTop = %curline% set chkBoxRight = (#chkBoxLeft# + lpi * .8) set chkBoxBottom = (%curline% + lpi * .8) Box #chkBoxLeft# + .02, #chkBoxTop# + .02, #chkBoxRight# + .02, #chkBoxBottom# + .02, LTGREY, 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# + .25, %curline% PrintAtRight NEncMult & " x ST", #chkBoxLeft# + 1.5, %curline% PrintAtRight No Encumbrance.Score & " lbs", #chkBoxLeft# + 2.125, %curline% PrintAtRight No Encumbrance Move.Score, #chkBoxLeft# + 2.5, %curline% endif if #i# = 2 then PrintAtLeft "Light (" & Light Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .25, %curline% PrintAtRight LEncMult & " x ST", #chkBoxLeft# + 1.5, %curline% PrintAtRight Light Encumbrance.Score & " lbs", #chkBoxLeft# + 2.125, %curline% PrintAtRight Light Encumbrance Move.Score, #chkBoxLeft# + 2.5, %curline% endif if #i# = 3 then PrintAtLeft "Med (" & Medium Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .25, %curline% PrintAtRight MEncMult & " x ST", #chkBoxLeft# + 1.5, %curline% PrintAtRight Medium Encumbrance.Score & " lbs", #chkBoxLeft# + 2.125, %curline% PrintAtRight Medium Encumbrance Move.Score, #chkBoxLeft# + 2.5, %curline% endif if #i# = 4 then PrintAtLeft "Hvy (" & Heavy Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .25, %curline% PrintAtRight HEncMult & " x ST", #chkBoxLeft# + 1.5, %curline% PrintAtRight Heavy Encumbrance.Score & " lbs", #chkBoxLeft# + 2.125, %curline% PrintAtRight Heavy Encumbrance Move.Score, #chkBoxLeft# + 2.5, %curline% endif if #i# = 5 then PrintAtLeft "X-Hvy (" & X-Heavy Encumbrance Move Reduction.Score & ")", #chkBoxLeft# + .25, %curline% PrintAtRight XEncMult & " x ST", #chkBoxLeft# + 1.5, %curline% PrintAtRight X-Heavy Encumbrance.Score & " lbs", #chkBoxLeft# + 2.125, %curline% PrintAtRight X-Heavy Encumbrance Move.Score, #chkBoxLeft# + 2.5, %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 + .25) set BoxTop = %curline% set BoxRight = (#BoxLeft# + 3) set BoxBottom = (%curline% + .5 + .25) set MidLine1 = (#BoxLeft# + (#BoxRight# - #BoxLeft#) / 3) set MidLine2 = (#BoxLeft# + (#BoxRight# - #BoxLeft#) / 3 * 2) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL *divide into thirds Line #MidLine1#, #BoxTop# + .25, #MidLine1#, #BoxBottom# Line #MidLine2#, #BoxTop# + .25, #MidLine2#, #BoxBottom# *put in SplitLine Line #BoxLeft#, #BoxTop# + .25, #BoxRight#, #BoxTop# + .25 *fill it FontSize 12 FontStyle PRN_BOLD PrintAtLeft "Active Defenses", #BoxLeft# + .125, %curline% + .03 FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Dodge", (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + .25 + .01 FontSize 12 PrintAtCenter Dodge.Score, (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + .25 + lpi FontSize 8 FontStyle PRN_ITALIC PrintAtCenter "= Move", (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% + .25 + lpi * 2 + .01 FontStyle PRN_NORMAL FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Parry", (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% + .25 + .01 FontSize 12 PrintAtCenter ParryScore, (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% + .25 + lpi FontSize 8 FontStyle PRN_ITALIC PrintAtCenter ParryUsing & "*" & ParryAt, (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% + .25 + lpi * 2 + .01 FontStyle PRN_NORMAL FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Block", (#BoxRight# - #MidLine2#) / 2 + #MidLine2#, %curline% + .25 + .01 FontSize 12 PrintAtCenter BlockScore, (#BoxRight# - #MidLine2#) / 2 + #MidLine2#, %curline% + .25 + lpi FontSize 8 FontStyle PRN_ITALIC PrintAtCenter BlockUsing & "*" & BlockAt, (#BoxRight# - #MidLine2#) / 2 + #MidLine2#, %curline% + .25 + 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 + .25) set BoxTop = %curline% set BoxRight = (#BoxLeft# + 3) set BoxBottom = (#BoxTop# + 1.8) set MidLine1 = (#BoxLeft# + (((#BoxRight# - #BoxLeft#) / 8) * 1)) set MidLine2 = (#BoxLeft# + (((#BoxRight# - #BoxLeft#) / 8) * 2)) set MidLine3 = (#BoxLeft# + (((#BoxRight# - #BoxLeft#) / 8) * 3)) set MidLine4 = (#BoxLeft# + (((#BoxRight# - #BoxLeft#) / 8) * 4)) set MidLine5 = (#BoxLeft# + (((#BoxRight# - #BoxLeft#) / 8) * 5)) set MidLine6 = (#BoxLeft# + (((#BoxRight# - #BoxLeft#) / 8) * 6)) set MidLine7 = (#BoxLeft# + (((#BoxRight# - #BoxLeft#) / 8) * 7)) Box #BoxLeft# + .05, #BoxTop# + .05, #BoxRight# + .05, #BoxBottom# + .05, LTGREY, FILL BoxBorder #BoxLeft#, #BoxTop#, #BoxRight#, #BoxBottom#, WHITE, FILL *put in SplitLines Line #BoxLeft#, #BoxTop# + .4, #BoxRight#, #BoxTop# + .4 Line #BoxLeft#, #BoxTop# + .65, #BoxRight#, #BoxTop# + .65 Line #BoxLeft#, #BoxTop# + .9, #BoxRight#, #BoxTop# + .9 *divide into armor sections Line #MidLine1#, #BoxTop# + .4, #MidLine1#, #BoxTop# + .9 Line #MidLine2#, #BoxTop# + .4, #MidLine2#, #BoxTop# + .9 Line #MidLine3#, #BoxTop# + .4, #MidLine3#, #BoxTop# + .9 Line #MidLine4#, #BoxTop# + .4, #MidLine4#, #BoxBottom# Line #MidLine5#, #BoxTop# + .4, #MidLine5#, #BoxTop# + .9 Line #MidLine6#, #BoxTop# + .4, #MidLine6#, #BoxTop# + .9 Line #MidLine7#, #BoxTop# + .4, #MidLine7#, #BoxTop# + .9 *fill it FontSize 12 FontStyle PRN_BOLD PrintAtLeft "Body Protection", #BoxLeft# + .125, %curline% + .02 FontSize 8 FontStyle PRN_NORMAL PrintAtCenter "Head", (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% + .25 PrintAtCenter "Body", (#MidLine3# - #MidLine2#) / 2 + #MidLine2#, %curline% + .25 PrintAtCenter "Arms", (#MidLine4# - #MidLine3#) / 2 + #MidLine3#, %curline% + .25 PrintAtCenter "Legs", (#MidLine5# - #MidLine4#) / 2 + #MidLine4#, %curline% + .25 PrintAtCenter "Hands", (#MidLine6# - #MidLine5#) / 2 + #MidLine5#, %curline% + .25 PrintAtCenter "Feet", (#MidLine7# - #MidLine6#) / 2 + #MidLine6#, %curline% + .25 PrintAtCenter "ALL", (#BoxRight# - #MidLine7#) / 2 + #MidLine7#, %curline% + .25 MoveDown .45 FontSize 8 PrintAtCenter "PD", (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% FontSize 10 PrintAtCenter PDHead, (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% PrintAtCenter PDBody, (#MidLine3# - #MidLine2#) / 2 + #MidLine2#, %curline% PrintAtCenter PDArms, (#MidLine4# - #MidLine3#) / 2 + #MidLine3#, %curline% PrintAtCenter PDLegs, (#MidLine5# - #MidLine4#) / 2 + #MidLine4#, %curline% PrintAtCenter PDHands, (#MidLine6# - #MidLine5#) / 2 + #MidLine5#, %curline% PrintAtCenter PDFeet, (#MidLine7# - #MidLine6#) / 2 + #MidLine6#, %curline% PrintAtCenter PD.Score, (#BoxRight# - #MidLine7#) / 2 + #MidLine7#, %curline% MoveDown .25 FontSize 8 PrintAtCenter "DR", (#MidLine1# - #BoxLeft#) / 2 + #BoxLeft#, %curline% FontSize 10 PrintAtCenter DRHead, (#MidLine2# - #MidLine1#) / 2 + #MidLine1#, %curline% PrintAtCenter DRBody, (#MidLine3# - #MidLine2#) / 2 + #MidLine2#, %curline% PrintAtCenter DRArms, (#MidLine4# - #MidLine3#) / 2 + #MidLine3#, %curline% PrintAtCenter DRLegs, (#MidLine5# - #MidLine4#) / 2 + #MidLine4#, %curline% PrintAtCenter DRHands, (#MidLine6# - #MidLine5#) / 2 + #MidLine5#, %curline% PrintAtCenter DRFeet, (#MidLine7# - #MidLine6#) / 2 + #MidLine6#, %curline% PrintAtCenter DR.Score, (#BoxRight# - #MidLine7#) / 2 + #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 *************** table Field head(spacer), width(.35), align(prn_left) Field head(OtherPD), width(#MidLine4# - #BoxLeft# - .2), align(prn_left) Field head(spacer), width(.2), align(prn_left) Field head(OtherDR), width(#MidLine4# - #BoxLeft# - .2), align(prn_left) endtable MoveDown lpi tableprint , OtherPD, , OtherDR ***** ***** END BODY PROTECTION ***** ************************************************************ ** * move down to the next section ** *MoveTo (#BoxBottom# + #SectionSpacer#) if (%curcol% <> 1) then MoveTo (#BoxBottom# + #SectionSpacer#) endif if (%curcol% = 1) then NextCol MoveDown lpi endif ********** ***** restore font info ***** LPI 6 FontSize 10 ************************************************************ ***** ***** STATISTICS ***** ******************** ***** Define the table to use in printing *************** table Field head(Stat), width(1.5), align(prn_left) Field head(Score), width(.5), align(prn_right) endtable ******************** ***** Print the header at the top of the section *************** FontStyle (PRN_BOLD + PRN_UNDERLINE) tableprint "Statistics" FontStyle PRN_NORMAL ******************** ***** Print all the stats using our table format *************** with Stats for num = 1 to NumStats if @calc(Stat(#num#).Display) then tableprint Stat(#Num#).View, Stat(#Num#).Score endif next ***** ***** END STATISTICS ***** ************************************************************ movedown #SectionSpacer# ************************************************************ ***** ***** POWERS ***** ******************** ***** Define the format for them *************** BeginList Powers Field head(Pts), include(Cost), position(.4), width(.4), align(prn_right) Field head(Power), include(DefaultView), position(.5) 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(.4), width(.4), align(prn_right) Field head(Advantage), include(DefaultView), position(.5) 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(.4), width(.4), align(prn_right) Field head(Disadvantage), include(DefaultView), position(.5) 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(.4), width(.4), align(prn_right) Field head(Quirk), include(DefaultView), position(.5) 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 ************************************************************ ***** ***** POINT SUMMARY ***** FontStyle prn_Bold + prn_Underline Print "Point Summary" FontStyle prn_Normal ******************** ***** Define the table to use in printing *************** table Field width(1.25), align(prn_left) Field width(.5), align(prn_right) endtable ******************** ***** 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 ***** ************************************************************ ************************************************************ ***** ***** 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 var num1 = (curLeftMargin+colLeft-2)/2 table Field width(1.3), align(prn_right) Field width(.1), align(prn_Right) Field width(1.5), 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 PrintWrapAtLeft " " 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 " " 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 ***** ************************************************************ ************************************************************ ***** ***** 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 ***** ************************************************************ movedown #SectionSpacer# ************************************************************ ***** ***** 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 ***** ************************************************************