'VBScript 'The line above must be the very first line of the file. ' 'NOTE: 'This GCS file will only work with characters saved by 'GCA 4! ' 'Last Updated: September 2, 2005 ' Const Stats = 1 Const Ads = 2 Const Disads = 3 Const Quirks = 4 Const Perks = 5 Const Skills = 6 Const Spells = 7 Const Equipment = 8 Const Packages = 9 '**************************************** 'The Main Module, where the form starts '**************************************** Sub Main() headerfont="Arial" headerfontsize=8 fontsize = 10 fontname = "Times New Roman" scalemode = 0 'inches If Orientation = 0 Then 'portrait Columns = 3 Else 'landscape Columns = 4 End If Call SetMargins Call SetHeader Call SetFooter CurrentY = margintop Call PrintStats Call PrintMovement Call PrintEncumbrance Call PrintActiveDefenses 'Call PrintDefenseBonuses Call PrintBodyProtection Call PrintPointSummary Call PrintAdditionalStats Call PrintPackages Call PrintAds Call PrintPerks Call PrintDisads Call PrintQuirks Call PrintSkills Call PrintSpells Call PrintEquipment If Len(Char.portrait) = 0 Then If Len(Char.Description) = 0 Then If Len(Char.Notes) = 0 Then Exit Sub End If End If End If NewPage Columns = 2 Call PrintPortrait Call PrintDescription Call PrintNotes End Sub '**************************************** 'set the margins for the character sheets '**************************************** Sub SetMargins() MarginLeft = 0.75 marginright = 0.75 margintop = 1 marginbottom = 1 pageborder = 3 End Sub '**************************************** 'Create the header for the character sheets '**************************************** Sub SetHeader() header = "GCA|" & Char.Name & "|Race: " & Char.Race End Sub '**************************************** 'Create the footer for the character sheets '**************************************** Sub SetFooter() footer = "||{GCA\line\b %d}" End Sub '**************************************** 'Check if we're too close to the bottom 'of the page to comfortably start a new 'section. '**************************************** Sub CheckNewColumn(distance) Dim curPos, chkPos curPos = CurrentY chkPos = pageheight - marginbottom - distance If curPos >= chkPos Then NewColumn Paragraph = "" 'needed to reset CurrentX to column left position CurrentY = MarginTop 'needed to restore position at top of column after paragraph above End If End Sub '**************************************** 'Print the stats '**************************************** Sub PrintStats() Dim CostCol, StatCol, ScoreCol Dim BoxTop, BoxLeft, BoxBottom, BoxRight Dim MidLine1, MidLine2, curTop Dim ListLoc CostCol = MarginLeft StatCol = CostCol + 0.25 ScoreCol = StatCol + 0.5 '***** ' ST box '***** BoxLeft = MarginLeft BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 0.5 MidLine1 = BoxRight - 1 DrawBox BoxLeft, BoxTop, BoxRight, BoxBottom, True DrawLine MidLine1, BoxTop, MidLine1, BoxBottom ' fill it fontsize = 8 CurrentY = BoxTop + 0.01 ListLoc = Char.ItemPositionByNameAndExt("Fatigue", Stats) if ListLoc = 0 then ListLoc = Char.ItemPositionByNameAndExt("Fatigue Points", Stats) end if PrintCentered "Fat. (of " & Char.Items(ListLoc).TagItem("score") & ")", MidLine1, BoxRight fontsize = 8 CurrentY = ReturnCenterY("ST", BoxTop, BoxBottom) ListLoc = Char.ItemPositionByNameAndExt("ST", Stats) PrintCentered Char.Items(ListLoc).TagItem("points"), CostCol, StatCol fontsize = 16 fontbold = True CurrentX = StatCol CurrentY = ReturnCenterY("ST", BoxTop, BoxBottom) text = "ST" CurrentX = ScoreCol CurrentY = ReturnCenterY("ST", BoxTop, BoxBottom) text = Char.Items(ListLoc).TagItem("score") fontsize = 10 fontbold = False '***** ' Print DX, IQ, and Basic Damage '***** ' DX box BoxLeft = MarginLeft BoxTop = BoxBottom BoxRight = BoxLeft + 1.15 BoxBottom = BoxTop + 0.5 curTop = BoxTop Call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) ' fill it fontsize = 8 CurrentY = ReturnCenterY("DX", BoxTop, BoxBottom) ListLoc = Char.ItemPositionByNameAndExt("DX", Stats) PrintCentered Char.Items(ListLoc).TagItem("points"), CostCol, StatCol fontsize = 16 fontbold = True CurrentX = StatCol CurrentY = ReturnCenterY("DX", BoxTop, BoxBottom) text = "DX" CurrentX = ScoreCol CurrentY = ReturnCenterY("DX", BoxTop, BoxBottom) text = Char.Items(ListLoc).TagItem("score") fontsize = 10 fontbold = False ' IQ box BoxLeft = MarginLeft BoxTop = BoxBottom BoxRight = BoxLeft + 1.15 BoxBottom = BoxTop + 0.5 Call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) ' fill it fontsize = 8 CurrentY = ReturnCenterY("ST", BoxTop, BoxBottom) ListLoc = Char.ItemPositionByNameAndExt("IQ", Stats) PrintCentered Char.Items(ListLoc).TagItem("points"), CostCol, StatCol fontsize = 16 fontbold = True CurrentX = StatCol CurrentY = ReturnCenterY("IQ", BoxTop, BoxBottom) text = "IQ" CurrentX = ScoreCol CurrentY = ReturnCenterY("IQ", BoxTop, BoxBottom) text = Char.Items(ListLoc).TagItem("score") fontsize = 10 fontbold = False ' Basic Damage box BoxLeft = BoxRight BoxTop = curTop BoxRight = BoxLeft + 1 BoxBottom = BoxTop + 1 Call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) fontsize = 8 CurrentY = BoxTop + 0.01 PrintCentered "Damage", BoxLeft, BoxRight ' fill it fontsize = 10 CurrentY = BoxTop + textheight("Thrust:") * 1.1 PrintCentered "Thrust:" & Char.BaseTH, BoxLeft, BoxRight CurrentY = BoxTop + textheight("Thrust:") * 2 * 1.1 PrintCentered "Swing:" & Char.BaseSW, BoxLeft, BoxRight '***** ' Print HT and Hits Taken '***** ' HT box BoxLeft = MarginLeft BoxTop = BoxBottom BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 0.5 MidLine1 = BoxRight - 1 Call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) DrawLine MidLine1, BoxTop, MidLine1, BoxBottom ' fill it fontsize = 8 CurrentY = BoxTop + 0.01 ListLoc = Char.ItemPositionByNameAndExt("Hit Points", Stats) PrintCentered "Hits (of " & Char.Items(ListLoc).TagItem("score") & ")", MidLine1, BoxRight fontsize = 8 CurrentY = ReturnCenterY("ST", BoxTop, BoxBottom) ListLoc = Char.ItemPositionByNameAndExt("HT", Stats) PrintCentered Char.Items(ListLoc).TagItem("points"), CostCol, StatCol fontsize = 16 fontbold = True CurrentX = StatCol CurrentY = ReturnCenterY("ST", BoxTop, BoxBottom) text = "HT" CurrentX = ScoreCol CurrentY = ReturnCenterY("ST", BoxTop, BoxBottom) text = Char.Items(ListLoc).TagItem("score") fontsize = 10 fontbold = False paragraph = "" CurrentY = BoxBottom + 0.125 End Sub '**************************************** 'Print movement info '**************************************** Sub PrintMovement() Dim BoxTop, BoxLeft, BoxBottom, BoxRight Dim MidLine1, MidLine2 '***** ' MVMT box '***** BoxLeft = MarginLeft BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 1 MidLine1 = BoxLeft + (BoxRight - BoxLeft) / 3 MidLine2 = BoxLeft + (BoxRight - BoxLeft) / 3 * 2 Call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) DrawLine MidLine1, BoxTop, MidLine1, BoxBottom DrawLine MidLine2, BoxTop, MidLine2, BoxBottom 'divide in sixths across horizontal DrawLine BoxLeft, BoxTop + 0.5, BoxRight, BoxTop + 0.5 ' fill it fontsize = 16 fontbold = True CurrentY = ReturnCenterY("Mvmt", BoxTop, BoxTop + 0.5) PrintCentered "Mvmt", BoxLeft, MidLine1 ' basic speed fontbold = False fontsize = 8 CurrentY = BoxTop + 0.01 PrintCentered "Basic Speed", MidLine1, MidLine2 fontsize = 16 CurrentY = ReturnCenterY("Mvmt", BoxTop, BoxTop + 0.5) ListLoc = Char.ItemPositionByNameAndExt("Speed", Stats) if ListLoc = 0 then ListLoc = Char.ItemPositionByNameAndExt("Basic Speed", Stats) end if PrintCentered Char.Items(ListLoc).TagItem("score"), MidLine1, MidLine2 fontsize = 8 CurrentY = BoxBottom - 0.5 - textheight("ST") * 1.05 PrintCentered "(HT+DX)/4", MidLine1, MidLine2 ' move fontbold = False fontsize = 8 CurrentY = BoxTop + 0.01 PrintCentered "Move", MidLine2, BoxRight fontsize = 16 CurrentY = ReturnCenterY("Mvmt", BoxTop, BoxTop + 0.5) ListLoc = Char.ItemPositionByNameAndExt("Move", Stats) if ListLoc = 0 then ListLoc = Char.ItemPositionByNameAndExt("Basic Move", Stats) end if PrintCentered Char.Items(ListLoc).TagItem("score"), MidLine2, BoxRight fontsize = 8 CurrentY = BoxBottom - 0.5 - textheight("ST") * 1.05 PrintCentered "Round Off", MidLine2, BoxRight ' swim fontbold = False fontsize = 8 CurrentY = BoxTop + 0.5 + 0.01 PrintCentered "Swim", MidLine1, MidLine2 fontsize = 16 CurrentY = ReturnCenterY("Mvmt", BoxTop + 0.5, BoxBottom) ListLoc = Char.ItemPositionByNameAndExt("Swim", Stats) if ListLoc = 0 then ListLoc = Char.ItemPositionByNameAndExt("Water Move", Stats) end if PrintCentered Char.Items(ListLoc).TagItem("score"), MidLine1, MidLine2 fontsize = 8 CurrentY = BoxBottom - textheight("ST") * 1.05 PrintCentered "(Base)", MidLine1, MidLine2 fontsize = 10 fontbold = False paragraph = "" CurrentY = BoxBottom + 0.125 End Sub '**************************************** 'Print Encumbrance info '**************************************** Sub PrintEncumbrance() Dim BoxTop, BoxLeft, BoxBottom, BoxRight Dim MidLine1, MidLine2 CheckNewColumn 1.3 Dim chkBoxTop, chkBoxLeft, chkBoxBottom, chkBoxRight Dim i, EncCol, lbCol, mvCol Dim txtHgt 'BoxLeft = MarginLeft BoxLeft = CurrentX BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 1.3 EncCol = BoxLeft + 0.125 + 0.25 lbCol = EncCol + 1.25 mvCol = EncCol + 1.5 Call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) fontbold = True fontsize = 12 CurrentX = BoxLeft + 0.125 CurrentY = BoxTop + 0.03 text = "Encumbrance" CurrentY = BoxTop + 0.03 Call PrintAtRight("Move", BoxRight - 0.125) fontbold = False fontsize = 10 ReDim EncText(5) ReDim EncScore(5) ReDim EncMove(5) ReDim ListLoc(5) ListLoc(1) = Char.ItemPositionByNameAndExt("No Encumbrance Move Reduction", Stats) ListLoc(2) = Char.ItemPositionByNameAndExt("Light Encumbrance Move Reduction", Stats) ListLoc(3) = Char.ItemPositionByNameAndExt("Medium Encumbrance Move Reduction", Stats) ListLoc(4) = Char.ItemPositionByNameAndExt("Heavy Encumbrance Move Reduction", Stats) ListLoc(5) = Char.ItemPositionByNameAndExt("X-Heavy Encumbrance Move Reduction", Stats) EncText(1) = "None" EncText(2) = "Light" EncText(3) = "Med" EncText(4) = "Hvy" EncText(5) = "X-Hvy" for i = 1 to 5 if ListLoc(i) > 0 then EncText(i) = EncText(i) & " (" & Char.Items(ListLoc(i)).TagItem("score") & ")" end if next ListLoc(1) = Char.ItemPositionByNameAndExt("No Encumbrance", Stats) ListLoc(2) = Char.ItemPositionByNameAndExt("Light Encumbrance", Stats) ListLoc(3) = Char.ItemPositionByNameAndExt("Medium Encumbrance", Stats) ListLoc(4) = Char.ItemPositionByNameAndExt("Heavy Encumbrance", Stats) ListLoc(5) = Char.ItemPositionByNameAndExt("X-Heavy Encumbrance", Stats) EncScore(1) = Char.Items(ListLoc(1)).TagItem("score") & " lbs" EncScore(2) = Char.Items(ListLoc(2)).TagItem("score") & " lbs" EncScore(3) = Char.Items(ListLoc(3)).TagItem("score") & " lbs" EncScore(4) = Char.Items(ListLoc(4)).TagItem("score") & " lbs" EncScore(5) = Char.Items(ListLoc(5)).TagItem("score") & " lbs" ListLoc(1) = Char.ItemPositionByNameAndExt("No Encumbrance Move", Stats) ListLoc(2) = Char.ItemPositionByNameAndExt("Light Encumbrance Move", Stats) ListLoc(3) = Char.ItemPositionByNameAndExt("Medium Encumbrance Move", Stats) ListLoc(4) = Char.ItemPositionByNameAndExt("Heavy Encumbrance Move", Stats) ListLoc(5) = Char.ItemPositionByNameAndExt("X-Heavy Encumbrance Move", Stats) EncMove(1) = Char.Items(ListLoc(1)).TagItem("score") EncMove(2) = Char.Items(ListLoc(2)).TagItem("score") EncMove(3) = Char.Items(ListLoc(3)).TagItem("score") EncMove(4) = Char.Items(ListLoc(4)).TagItem("score") EncMove(5) = Char.Items(ListLoc(5)).TagItem("score") txtHgt = textheight("None (0)") chkBoxLeft = BoxLeft + 0.125 chkBoxRight = chkBoxLeft + txtHgt For i = 1 To 5 CurrentX = BoxLeft + 0.125 CurrentY = BoxTop + 0.125 + (i * txtHgt * 1.2) 'make a checkbox chkBoxTop = CurrentY chkBoxBottom = chkBoxTop + txtHgt Call DrawBox(chkBoxLeft, chkBoxTop, chkBoxRight, chkBoxBottom, False) if char.encumbrancelevel +1 = i then PrintCentered "X", chkBoxLeft, chkBoxRight end if PrintAtLeft EncText(i), EncCol PrintAtRight EncScore(i), lbCol PrintAtRight EncMove(i), mvCol Next fontsize = 10 fontbold = False paragraph = "" CurrentY = BoxBottom + 0.125 End Sub '**************************************** 'Print Active Defenses '**************************************** Sub PrintActiveDefenses() Dim BoxTop, BoxLeft, BoxBottom, BoxRight Dim MidLine1, MidLine2 CheckNewColumn 0.75 'BoxLeft = MarginLeft BoxLeft = CurrentX BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 0.75 MidLine1 = BoxLeft + (BoxRight - BoxLeft) / 3 MidLine2 = BoxLeft + (BoxRight - BoxLeft) / 3 * 2 Call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) 'divide into sections DrawLine MidLine1, BoxTop + 0.25, MidLine1, BoxBottom DrawLine MidLine2, BoxTop + 0.25, MidLine2, BoxBottom 'split line DrawLine BoxLeft, BoxTop + 0.25, BoxRight, BoxTop + 0.25 ' fill it fontname = "Times New Roman" fontbold = True fontsize = 12 CurrentY = BoxTop + 0.03 PrintAtLeft "Active Defenses", BoxLeft + 0.125 fontbold = False fontsize = 8 CurrentY = BoxTop + 0.25 + 0.01 PrintCentered "Dodge", BoxLeft, MidLine1 fontsize = 16 CurrentY = ReturnCenterY("10", BoxTop + 0.25, BoxBottom) ListLoc = Char.ItemPositionByNameAndExt("Dodge", Stats) PrintCentered Char.Items(ListLoc).TagItem("score"), BoxLeft, MidLine1 fontname = "Times New Roman" fontsize = 6 CurrentY = BoxBottom - textheight("ST") * 1.05 PrintCentered "= Move", BoxLeft, MidLine1 fontbold = False fontsize = 8 CurrentY = BoxTop + 0.25 + 0.01 PrintCentered "Parry", MidLine1, MidLine2 fontsize = 16 CurrentY = ReturnCenterY("10", BoxTop + 0.25, BoxBottom) PrintCentered Char.ParryScore, MidLine1, MidLine2 fontsize = 6 CurrentY = BoxBottom - textheight("ST") * 1.05 PrintCentered Char.ParryUsing, MidLine1, MidLine2 fontbold = False fontsize = 8 CurrentY = BoxTop + 0.25 + 0.01 PrintCentered "Block", MidLine2, BoxRight fontsize = 16 CurrentY = ReturnCenterY("10", BoxTop + 0.25, BoxBottom) PrintCentered Char.BlockScore, MidLine2, BoxRight fontsize = 6 CurrentY = BoxBottom - textheight("ST") * 1.05 PrintCentered Char.BlockUsing, MidLine2, BoxRight fontname = "Times New Roman" fontsize = 10 fontbold = False paragraph = "" CurrentY = BoxBottom + 0.125 End Sub '**************************************** 'Print the Defense bonuses '**************************************** Sub PrintDefenseBonuses() Dim i, tmp dim ListLoc dim Spacer Spacer = False ListLoc = Char.ItemPositionByNameAndExt("Dodge", Stats) If Char.Items(ListLoc).TagItem("bonuslist") <> "" then tmp = "{\fs14" & Char.Items(ListLoc).FullName & " includes " tmp = tmp & Char.Items(ListLoc).TagItem("bonuslist") tmp = tmp & "}" paragraph = tmp Spacer = True End If ListLoc = Char.ItemPositionByNameAndExt("Parry", Stats) If Char.Items(ListLoc).TagItem("bonuslist") <> "" then tmp = "{\fs14" & Char.Items(ListLoc).FullName & " includes " tmp = tmp & Char.Items(ListLoc).TagItem("bonuslist") tmp = tmp & "}" paragraph = tmp Spacer = True End If ListLoc = Char.ItemPositionByNameAndExt("Block", Stats) If Char.Items(ListLoc).TagItem("bonuslist") <> "" then tmp = "{\fs14" & Char.Items(ListLoc).FullName & " includes " tmp = tmp & Char.Items(ListLoc).TagItem("bonuslist") tmp = tmp & "}" paragraph = tmp Spacer = True End If if Spacer then paragraph = "" end if End Sub '**************************************** 'Print Body Protection '**************************************** Sub PrintBodyProtection() Dim BoxTop, BoxLeft, BoxBottom, BoxRight Dim MidLine1, MidLine2, curTop Dim MidLine3, MidLine4, MidLine5, MidLine6, MidLine7 CheckNewColumn 1.25 'BoxLeft = MarginLeft BoxLeft = CurrentX BoxTop = CurrentY BoxRight = BoxLeft + 2.15 BoxBottom = BoxTop + 1.25 MidLine1 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 1) MidLine2 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 2) MidLine3 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 3) MidLine4 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 4) MidLine5 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 5) MidLine6 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 6) MidLine7 = BoxLeft + ((BoxRight - BoxLeft) / 8 * 7) Call DrawBox(BoxLeft, BoxTop, BoxRight, BoxBottom, True) ' put in SplitLines DrawLine BoxLeft, BoxTop + 0.4, BoxRight, BoxTop + 0.4 DrawLine BoxLeft, BoxTop + 0.65, BoxRight, BoxTop + 0.65 'DrawLine BoxLeft, BoxTop + 0.9, BoxRight, BoxTop + 0.9 ' divide into armor sections DrawLine MidLine1, BoxTop + 0.4, MidLine1, BoxTop + 0.65 '0.9 DrawLine MidLine2, BoxTop + 0.4, MidLine2, BoxTop + 0.65 '0.9 DrawLine MidLine3, BoxTop + 0.4, MidLine3, BoxTop + 0.65 '0.9 DrawLine MidLine4, BoxTop + 0.4, MidLine4, BoxTop + 0.65 '0.9 'BoxBottom DrawLine MidLine5, BoxTop + 0.4, MidLine5, BoxTop + 0.65 '0.9 DrawLine MidLine6, BoxTop + 0.4, MidLine6, BoxTop + 0.65 '0.9 DrawLine MidLine7, BoxTop + 0.4, MidLine7, BoxTop + 0.65 '0.9 ' fill it fontbold = True fontsize = 12 CurrentY = BoxTop + 0.03 PrintAtLeft "Body Protection", BoxLeft + 0.125 fontbold = False fontsize = 6 CurrentY = BoxTop + 0.28 PrintCentered "Head", MidLine1, MidLine2 PrintCentered "Body", MidLine2, MidLine3 PrintCentered "Arms", MidLine3, MidLine4 PrintCentered "Legs", MidLine4, MidLine5 PrintCentered "Hands", MidLine5, MidLine6 PrintCentered "Feet", MidLine6, MidLine7 PrintCentered "ALL", MidLine7, BoxRight fontsize = 9 CurrentY = ReturnCenterY("10", BoxTop + 0.4, BoxTop + 0.65) PrintCentered "DR", BoxLeft, MidLine1 PrintCentered Char.DR(0), MidLine1, MidLine2 PrintCentered Char.DR(1), MidLine2, MidLine3 PrintCentered Char.DR(2), MidLine3, MidLine4 PrintCentered Char.DR(3), MidLine4, MidLine5 PrintCentered Char.DR(4), MidLine5, MidLine6 PrintCentered Char.DR(5), MidLine6, MidLine7 ListLoc = Char.ItemPositionByNameAndExt("DR", Stats) PrintCentered Char.Items(ListLoc).TagItem("score"), MidLine7, BoxRight CurrentY = BoxTop + 0.65 '0.9 fontunderline = True PrintAtLeft "Other DR", BoxLeft + 0.05 fontunderline = False curTop = BoxTop + 0.65 + textheight("DR") '0.9 + textheight("DR") TextBox Char.OtherDR, MidLine4 + 0.05, curTop, BoxRight - MidLine4 - 0.1, BoxBottom - curTop fontsize = 10 fontbold = False paragraph = "" CurrentY = BoxBottom + 0.125 End Sub '**************************************** 'Print the Additional Stats '**************************************** Sub PrintAdditionalStats() Dim fmt, hdr, hclr, bclr Dim i, tmp CheckNewColumn 0.5 'NewColumn hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Additional Stats}" AddTable fmt, hdr, "{\fs16 Values that don't fit in the main stat block.}", hclr, hclr, False fontsize = 9 fmt = "<1.65|>0.5" hdr = "{\ul Stat}|{\ul Score}" AddTable fmt, hdr, "", hclr, hclr, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Stats Then If LCase(Char.Items(i).TagItem("display")) <> "no" Then tmp = "{" & Char.Items(i).FullName If Char.Items(i).TagItem("bonuslist") <> "" then tmp = tmp & "{\line\fs14 " & Char.Items(i).TagItem("bonuslist") & "}" End If tmp = tmp & "}|" & Char.Items(i).TagItem("score") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If End If Next paragraph = "" End Sub '**************************************** 'Print the Packages '**************************************** Sub PrintPackages() Dim fmt, hdr, hclr, bclr Dim i, j, tmp, work If Char.Count(Packages) <= 0 Then Exit Sub CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Templates}" AddTable fmt, hdr, "", hclr, bclr, False fontsize = 9 fmt = "<1.65|>0.5" hdr = "{\ul Template}|{\ul Cost}" AddTable fmt, hdr, "", hclr, 0, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Packages Then tmp = "{" & Char.Items(i).FullName work = Char.Items(i).LevelName if work <> "" then tmp = tmp & " (" & work & ")" end if tmp = tmp & "}|" & Char.Items(i).TagItem("points") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If Next paragraph = "" End Sub '**************************************** 'Print the Ads '**************************************** Sub PrintAds() Dim fmt, hdr, hclr, bclr Dim i, j, tmp, work If Char.Count(Ads) <= 0 Then Exit Sub CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Advantages}" AddTable fmt, hdr, "", hclr, bclr, False fontsize = 9 fmt = "<1.65|>0.5" hdr = "{\ul Advantage}|{\ul Cost}" AddTable fmt, hdr, "", hclr, 0, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Ads Then tmp = "{" & Char.Items(i).FullName work = Char.Items(i).LevelName if work <> "" then tmp = tmp & " (" & work & ")" end if tmp = tmp & Char.Items(i).ExpandedModCaptions(True) 'the True on the line above tells GCA to include 'the values of the mods, otherwise it won't. If Char.Items(i).TagItem("bonuslist") <> "" then tmp = tmp & "{\line\fs14 " & Char.Items(i).TagItem("bonuslist") & "}" End If tmp = tmp & "}|" & Char.Items(i).TagItem("points") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If Next paragraph = "" End Sub '**************************************** 'Print the Perks '**************************************** Sub PrintPerks() Dim fmt, hdr, hclr, bclr Dim i, j, tmp, work If Char.Count(Perks) <= 0 Then Exit Sub CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Perks}" AddTable fmt, hdr, "", hclr, bclr, False fontsize = 9 fmt = "<1.65|>0.5" hdr = "{\ul Perk}|{\ul Cost}" AddTable fmt, hdr, "", hclr, 0, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Perks Then tmp = "{" & Char.Items(i).FullName work = Char.Items(i).LevelName if work <> "" then tmp = tmp & " (" & work & ")" end if tmp = tmp & Char.Items(i).ExpandedModCaptions(True) 'the True on the line above tells GCA to include 'the values of the mods, otherwise it won't. If Char.Items(i).TagItem("bonuslist") <> "" then tmp = tmp & "{\line\fs14 " & Char.Items(i).TagItem("bonuslist") & "}" End If tmp = tmp & "}|" & Char.Items(i).TagItem("points") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If Next paragraph = "" End Sub '**************************************** 'Print the Disads '**************************************** Sub PrintDisads() Dim fmt, hdr, hclr, bclr Dim i, j, tmp, work If Char.Count(Disads) <= 0 Then Exit Sub CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Disadvantages}" AddTable fmt, hdr, "", hclr, bclr, False fontsize = 9 fmt = "<1.65|>0.5" hdr = "{\ul Disadvantage}|{\ul Cost}" AddTable fmt, hdr, "", hclr, 0, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Disads Then tmp = "{" & Char.Items(i).FullName work = Char.Items(i).LevelName if work <> "" then tmp = tmp & " (" & work & ")" end if tmp = tmp & Char.Items(i).ExpandedModCaptions(True) 'the True on the line above tells GCA to include 'the values of the mods, otherwise it won't. If Char.Items(i).TagItem("bonuslist") <> "" then tmp = tmp & "{\line\fs14 " & Char.Items(i).TagItem("bonuslist") & "}" End If tmp = tmp & "}|" & Char.Items(i).TagItem("points") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If Next paragraph = "" End Sub '**************************************** 'Print the Quirks '**************************************** Sub PrintQuirks() Dim fmt, hdr, hclr, bclr Dim i, tmp If Char.Count(Quirks) <= 0 Then Exit Sub CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Quirks}" AddTable fmt, hdr, "", hclr, bclr, False fontsize = 9 fmt = "<1.65|>0.5" hdr = "{\ul Quirk}|{\ul Cost}" AddTable fmt, hdr, "", hclr, 0, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Quirks Then tmp = "{" & Char.Items(i).FullName If Char.Items(i).TagItem("bonuslist") <> "" then tmp = tmp & "{\line\fs14 " & Char.Items(i).TagItem("bonuslist") & "}" End If tmp = tmp & "}|" & Char.Items(i).TagItem("points") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If Next paragraph = "" End Sub '**************************************** 'Print the Skills '**************************************** Sub PrintSkills() Dim fmt, hdr, hclr, bclr Dim i, tmp If Char.Count(Skills) <= 0 Then Exit Sub 'NewColumn CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Skills}" AddTable fmt, hdr, "", hclr, bclr, False fontsize = 9 fmt = ">0.35|<1.4|>0.4" hdr = "{\ul Pts}|{\ul Skill}|{\ul Lvl}" AddTable fmt, hdr, "", hclr, 0, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Skills Then tmp = Char.Items(i).TagItem("points") tmp = tmp & "|{" & Char.Items(i).FullNameTL If Char.Items(i).TagItem("chardamage") <> "" then tmp = tmp & " [" & Char.Items(i).TagItem("chardamage") & "]" End If If Char.Items(i).TagItem("bonuslist") <> "" then tmp = tmp & "{\line\fs14 " & Char.Items(i).TagItem("bonuslist") & "}" End If tmp = tmp & "}|" & Char.Items(i).TagItem("level") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If Next paragraph = "" End Sub '**************************************** 'Print the Spells '**************************************** Sub PrintSpells() Dim fmt, hdr, hclr, bclr Dim i, tmp If Char.Count(Spells) <= 0 Then Exit Sub CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Spells}" AddTable fmt, hdr, "", hclr, bclr, False fontsize = 9 fmt = ">0.35|<1.4|>0.4" hdr = "{\ul Pts}|{\ul Spell}|{\ul Lvl}" AddTable fmt, hdr, "", hclr, 0, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Spells Then tmp = Char.Items(i).TagItem("points") tmp = tmp & "|" & Char.Items(i).FullNameTL tmp = tmp & "|" & Char.Items(i).TagItem("level") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If Next paragraph = "" End Sub '**************************************** 'Print the Equipment '**************************************** Sub PrintEquipment() Dim fmt, hdr, hclr, bclr Dim i, j, tmp If Char.Count(Equipment) <= 0 Then Exit Sub 'NewColumn 'Start in a fresh column CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Equipment}" AddTable fmt, hdr, "", hclr, bclr, False fontsize = 9 fmt = ">0.35|<1.4|>0.4" hdr = "{\ul Qty}|{\ul Item}|{\ul Wgt}" AddTable fmt, hdr, "", hclr, 0, False TableBorder = 0 For i = 1 To Char.Items.Count If Char.Items(i).ItemType = Equipment Then tmp = Char.Items(i).TagItem("count") tmp = tmp & "|{" & Char.Items(i).FullNameTL if char.items(i).tagitem("chardamage") <> "" then If Char.Items(i).DamageModesCount > 0 then 'we have some damage for this thing if Char.Items(i).DamageModesCount = 1 then 'no modes, just a single damage. tmp = tmp & "{\line\fs14 Dam: " & Char.Items(i).DamageModeDamage(1) & " " & Char.Items(i).DamageModeType(1) & "}" else 'multiple damage modes 'tmp = tmp & "{\line\fs14 " & Char.Items(i).TagItem("bonuslist") & "}" for j = 1 to Char.Items(i).DamageModesCount tmp = tmp & "{\line\fs14 " tmp = tmp & Char.Items(i).DamageModeName(j) & ": " tmp = tmp & Char.Items(i).DamageModeDamage(j) & " " tmp = tmp & Char.Items(i).DamageModeType(j) tmp = tmp & "}" next end if End If end if tmp = tmp & "}|" & Char.Items(i).TagItem("weight") AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 End If Next paragraph = "" End Sub '**************************************** 'Print the Description '**************************************** Sub PrintDescription() If Len(Char.Description) = 0 Then Exit Sub CheckNewColumn 0.5 fontsize = 10 fontbold = True fontunderline = True paragraph = "Description" fontbold = False fontunderline = False paragraph = Char.Description paragraph = "" End Sub '**************************************** 'Print the Notes '**************************************** Sub PrintNotes() If Len(Char.Notes) = 0 Then Exit Sub CheckNewColumn 0.5 fontsize = 10 fontbold = True fontunderline = True paragraph = "Notes" fontbold = False fontunderline = False paragraph = Char.Notes paragraph = "" End Sub '**************************************** 'Print the Portrait '**************************************** Sub PrintPortrait() If Len(Char.portrait) = 0 Then Exit Sub picture Char.portrait, CurrentX, CurrentY, 3, 6 paragraph = "" End Sub '**************************************** 'Print the Point Summary '**************************************** Sub PrintPointSummary() Dim fmt, hdr, hclr, bclr Dim i, tmp CheckNewColumn 0.5 hclr = RGB(0, 0, 0) 'To have alternating Gray and White lines, comment 'the line above, and uncomment the line below 'hclr = RGB(200, 200, 200) bclr = RGB(0, 0, 0) TableBorder = 7 fontsize = 11 fmt = "+<2.15" hdr = "{\b Point Summary}" 'AddTable fmt, hdr, "", hclr, bclr, False AddTable fmt, hdr, hdr, hclr, bclr, True fontsize = 9 fmt = "<1.65|>0.5" hdr = "{\ul Item}|{\ul Points}" 'AddTable fmt, hdr, "", hclr, bclr, False AddTable fmt, hdr, hdr, hclr, bclr, True TableBorder = 0 tmp = "Attributes|" & Char.Cost(Stats) AddTable fmt, hdr, tmp, hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "Advantages|" & Char.Cost(Ads), hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "Perks|" & Char.Cost(Perks), hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "Disadvantages|" & Char.Cost(Disads), hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "Quirks|" & Char.Cost(Quirks), hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "Skills|" & Char.Cost(Skills), hclr, bclr, True If Char.Count(Spells) > 0 Then if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "Spells|" & Char.Cost(Spells), hclr, bclr, True End If If Char.Count(Packages) > 0 Then if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "Templates|" & Char.Cost(Packages), hclr, bclr, True End If if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "{\b Total}|{\b " & Char.TotalCost & "}", hclr, bclr, True if bclr = 0 then bclr = hclr else bclr = 0 AddTable fmt, hdr, "{\i Unspent}|{\i " & Char.UnspentPoints & "}", hclr, bclr, True paragraph = "" End Sub