7WCharacter Sheet file v. 1B€HeroŒ€3Champions character template with superhero limits.€ CharacterK€Hero.hlpn€ê€Š€ÈI€l€dround((c + a)*m)H€€3€_ßÿÿÿÿ €09/14/1999 10:26:21€.€hero.cds€J€ Champions.cst5€hero.flt;€ Champions.prtr€ €€rnd5(x) round(x/5)€chrRoll(chr, a_chr, bonus)^format("%d%s-", 9+rnd5(chr)+round(bonus), a_chr?concat("/",9+rnd5(chr+a_chr)+round(bonus)):"")€rnd2(x) round(x/2)€m_mass1€m_height1€cmToEnglish(cm)^{ local inches; if (cm < 10) inches = cm / 2.54; else inches = round(cm / 2.54); endif if (inches < 12) if (inches = integer(inches)) return format('%d"', inches); else return format('%2n"', inches); endif endif return format("%d'%d%s", integer(inches/12), inches mod 12, '"'); } €kgToEnglish(kg)ƒ{ local lbs; if (kg < 10/2.2) return format('%2n lbs',kg * 2.2); endif return format('%n lbs',round(kg * 2.2)); }€ sl(dummy)h{ if (optPresent("Label")) return format("%s: ", itemInfo("@Label@")); endif return ''; }€twoN(n)e{ if (n>16) return 125000.*2^(n-17); elseif (n>6) return 125.*2^(n-7); endif return 2^n; }€ dexcost(x)(x-(9+round(dex/5))-1)*2+1€endCost(incAdds, base)#{ local nd, mult, adds, bc, frac, redEnd, incEnd, charges, costsEnd, multiplier; charges = optPresent('Charges'); costsEnd = optPresent('Costs END'); if (charges) if (!costsEnd) return 0; endif endif if (incAdds) adds = itemInfo('@a@'); else adds = 0; endif bc = itemInfo('@bc@'); frac = itemInfo('@fm@'); redEnd = itemInfo('`Reduced END`'); multiplier = itemInfo('@mo@'); if (redEnd >= 1/2) return 0; endif if (redEnd != 0) nd = dround((adds+bc) * multiplier * (1+frac-redEnd)/base); nd = dround(nd/2); else nd = dround((adds+bc) * multiplier * (1+frac)/base); endif incEnd = itemInfo('`Increased END`'); if (incEnd) mult = (-incEnd+0.5)*2; if (mult = 9) mult = 10; endif nd = nd * mult; endif return max(1,nd); }€ phase[12] "7","6, 12","4, 8, 12","3, 6, 9, 12","3, 5, 8, 10, 12","2, 4, 6, 8, 10, 12","2, 4, 6, 7, 9, 11, 12","2, 3, 5, 6, 8, 9, 11, 12","2, 3, 4, 6, 7, 8, 10, 11, 12","2, 3, 4, 5, 6, 8, 9, 10, 11, 12","2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12","1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12"€ common1[6]'"Uncommon",1,"Common",2,"Very Common",3€chargeCostArray[24]Q1,-2,2,-1.5,3,-1.25,4,-1,6,-0.75,8,-.5,12,-.25,16,0,32,0.25,64,0.5,125,0.75,250,1€ chargeCost(n)lookup(chargeCostArray,n)€chargeIndexArray[24]:1,1,2,2,3,3,4,4,6,5,8,6,12,7,16,8,32,9,64,10,125,11,250,12€$totalChargeCost(n, clips, cont, rec)»{ local i, cost, total, nc, prev; i = lookup(chargeIndexArray,n); total = i + cont + rec; if (total = 1) cost = -2; else cost = -2 + total/4; endif nc = 1; i = 0; while (nc < clips) if (cost >= 0) i = i + 2; else i = i + 1; endif if (cost = -2) cost = cost + 0.5; else cost = cost + 0.25; endif nc = twoN(i); endwhile return cost; }€ ap(c,a,mo,fa)y{ if (optPresent("Limited Power Advantage")) return dround((c+a)*mo*fa); endif return dround((c+a)*mo*(1+fa)); } €rf(mult)³{ local multiplier, incMax; if (optPresent("No Range")) return 0; endif if (mult = 0) if (!optPresent("Ranged")) return 0; endif multiplier = 5; else multiplier = mult; endif incMax = optValue("Increased Maximum Range"); if (incMax != 0) multiplier = multiplier * 5 * 4 * incMax; endif return ap(itemInfo("@bc@"), itemInfo("@a@"), itemInfo("@mo@"), itemInfo("@fm@")-incMax)*multiplier; }€ liftFunc(s)Ç{ if (s<=40) return format('%dkg',round(25 * 2^(s/5+1))/2); endif if (s<=90) return format('%d ton', round(25 * 2^(s/5-9))/2); endif return format('%d kton', round(25 * 2 ^(s/5-19))/2); }€apParent(dummy)¶{ local bc, a, mo, fm; bc = parentItemInfo("@bc@"); a = parentItemInfo("@a@"); mo = parentItemInfo("@mo@"); fm = float(parentItemInfo("@fm@")); return ap(bc, a, mo, fm); }€totalCost(bc,a,mo,fm,fd)ý{ local parClass, total, ec, mult, div, parentAP, thisAP; if (optPresent("Limited Power Advantage")) return dround(dround((bc+a)*mo*fm) / (1+fd)); endif if (itemInfo("@indent@") > 0) parClass = parentItemInfo("@cat@"); if (parClass = "EC") ec = apParent(0); thisAP = ap(bc,a,mo,fm); if (thisAP < 2 * ec) total = dround(ec/(1+fd)); else total = dround((thisAP-ec)/(1+fd)); endif elseif (parClass = "Multipower") mult = optValue("Multipower"); if (mult = "Variable Slot") div = 5; else div = 10; endif parentAP = apParent(0); thisAP = ap(bc,a,mo,fm); if (thisAP > parentAP) total = dround(dround(parentAP/div)/(1+fd)); total = total + dround((thisAP-parentAP)/(1+fd)); else total = dround(ap(bc,a,mo/div,fm)/(1+fd)); endif total = max(1, total); else total = dround(ap(bc,a,mo,fm)/(1+fd)); endif else total = dround(ap(bc,a,mo,fm)/(1+fd)); endif return total; }€ combMP(nc)r{ local mult, parentAP, capTotal, i, total, childAP, bc, a, mo, fm, fd, div, limAd; mult = optValue("Multipower"); if (mult = "Variable Slot") div = 5; else div = 10; endif parentAP = apParent(0); capTotal = 0; i = 1; while (i <= nc) bc = childItemInfo(i, "@bc@"); a = childItemInfo(i, "@a@"); mo = childItemInfo(i, "@mo@"); fm = childItemInfo(i, "@fm@"); fd = childItemInfo(i, "@fd@"); limAd = childItemInfo(i, "(optPresent('Limited Power Advantage'))"); if (!limAd) fm = fm + 1; endif childAP = dround((bc+a)*mo*fm); if (capTotal + childAP > parentAP) if (capTotal < parentAP) total = total + max(1, dround(dround((parentAP - capTotal)/div)/(1+fd))); capTotal = capTotal + childAP; total = total + dround((capTotal - parentAP)/(1+fd)); else capTotal = capTotal + childAP; total = total + dround(childAP/(1+fd)); endif else capTotal = capTotal + childAP; total = total + dround(dround((bc+a)*mo/div*fm)/(1+fd)); endif i = i + 1; endwhile total = max(1, total); return total; }€childTotal(nc){ local total, i; total = 0; i = 1; while (i <= nc) total = total + childItemInfo(i, "@c@"); i = i + 1; endwhile return total; }€totalCombCost(nc) Ä{ local parClass, total, ec, mult, div, parentAP, childAP, i, capTotal, cfd; if (itemInfo("@indent@") = 0) return childTotal(nc); endif parClass = parentItemInfo("@cat@"); total = 0; if (parClass = "EC") ec = apParent(0); parentAP = ec; i = 1; while (i <= nc) childAP = childItemInfo(i, "(ap(@bc@,@a@,@mo@,@fm@))"); capTotal = capTotal + childAP; if (ec > childAP) ec = ec - childAP; elseif (ec > 0) childAP = childAP - ec; total = total + dround(childAP/(1+ childItemInfo(i, "@fd@"))); ec = 0; else total = total + dround(childAP/(1+ childItemInfo(i, "@fd@"))); endif i = i + 1; endwhile if (parentAP * 2 > capTotal) total = total + dround((parentAP * 2 - capTotal)/ (1+ itemInfo("@fd@"))); endif elseif (parClass = "Multipower") total = combMP(nc); else total = childTotal(nc); endif return total; } € ce(exp, cost)•{ local parClass, total, ec, okay, bc, a, mo, fm, active, pactive; if (itemInfo("@indent@") = 0) return exp; endif a = itemInfo("@a@"); mo = itemInfo("@mo@"); fm = float(itemInfo("@fm@")); active = ap(cost, a, mo, fm); parClass = parentItemInfo("@cat@"); if (parClass = "EC") pactive = apParent(0); okay = exp and active >= 2*pactive; else okay = exp; endif return okay; }€ ct(dummy)F{ local parClass,cost,failed; if (itemInfo("@checkFailed@")) failed = "!"; else failed = ""; endif cost = itemInfo("@c@"); if (itemInfo("@indent@") = 0) return format('%s%d',failed, cost); endif parClass = parentItemInfo("@cat@"); if (parClass = "EC") return format("%s%s-%d", failed, chrval(itemInfo("@listindex@")+96), cost); endif if (parClass = "Multipower") if (optValue("Multipower") = "Variable Slot") return format("%sm-%d", failed, cost); endif return format("%su-%d", failed, cost); endif return format("%s(%d)",failed,cost); }€cc(char,cost,base,mx)†{ local b,c; b = max(mx,base); c = dround((char-base)*cost); if (mx and char>b) c = c + (char - b) * cost; endif return c; }€optOption(name)‚{ if (optValue(name) != 0) return format(", %s", listOptions('optTextValue', name, ', ')); endif return ""; }€"skCost(skill, bonus, base, bc, cm)Eskill=8?(optValue('Everyman')?0:1):bc-bonus+(skill-(9+rnd5(base)))*cm€genCost(skill, bonus, bc, cm)9skill=8?(optValue('Everyman')?0:1):bc-bonus+(skill-11)*cm€ initsk(base) 9+rnd5(base)€talCost(level, base, bc, cm)bc+(level-(9+rnd5(base)))*cm€gskillcost(lev, bonus)h{ local type, stat, base, inc; if (lev = 8) return optValue('Everyman')?0:1; endif type = optValue("Type"); base = optValue("Base"); inc = optValue("Increase"); if (type = "INT") stat = total_int; elseif (type = "DEX") stat = total_dex; elseif (type = "PRE") stat = total_pre; elseif (type = "EGO") stat = total_ego; elseif (type = "STR") stat = total_str; elseif (type = "CON") stat = total_con; elseif (type = "BODY") stat = total_body; elseif (type = "COM") stat = total_com; elseif (type = "Focus") stat = 0; else stat = 10; if (base = 0) base = 2; endif if (inc = 0) inc = 1; endif endif if (base = 0) base = 3; endif if (inc = 0) inc = 1; endif return base-bonus+(lev-(9+rnd5(stat)))*inc; }€gskillcheck(lev, cost, bonus){ local type, base; base = optValue("Base"); type = optValue("Type"); if (lev=8) return 1; endif if (type = "INT") if (base = 0) base = 3; endif elseif (type = "DEX") if (base = 0) base = 3; endif elseif (type = "PRE") if (base = 0) base = 3; endif elseif (type = "EGO") if (base = 0) base = 3; endif elseif (type = "STR" or type = "CON" or type = "BODY" or type = "COM") if (base = 0) base = 3; endif else if (base = 0) base = 2; endif endif return cost>=base-bonus; }€ kadmg(pts)G{ local dice, rmdr; dice = integer(pts/15); rmdr = pts mod 15; if (rmdr >= 10) if (dice = 0) return '½d6'; endif return format('%d½d6', dice); endif if (rmdr >= 5) if (dice = 0) return '+1'; endif return format('%dd6+1', dice); endif return format('%dd6', dice); }€)weapdmg(dc, minstr, extradc, dcper, type)D{ local totaldc, strdiff, killing; killing = strindex(type,"K") > 0; if (total_str > minstr) strdiff = total_str - minstr; strdiff = integer(strdiff/5)*5; if (dcper = 1) totaldc = 5 * dc + min(5*dc, strdiff); else totaldc = 5 * dc + 5*min(dc, integer(strdiff / extradc)*dcper + (killing?integer(martialDC/2):martialDC)); endif else totaldc = 5 * dc; endif if (killing) return concat(kadmg(min(10*dc, totaldc+integer(martialDC/2)*5)), type); endif return concat(kadmg(3*min(10*dc, totaldc+martialDC*5)), type); }€"moveCost(var,a_var,levcost, m_var)Â{ local cost; if (m_var = 0 or var + a_var <= m_var) return a_var*levcost; endif cost = (m_var - var) * levcost; cost = cost + 2*(var+a_var-m_var)*levcost; return cost; }€areafunc(aeText, cost)È{ local incArea,bc,a,fm, doubling, aeCost; aeCost = cost; bc = itemInfo("@bc@"); a = itemInfo("@a@"); fm = itemInfo("@fm@"); incArea = itemInfo("`Increased Area`"); doubling = twoN(incArea*4); aeCost = ap(bc, a, 1, fm-aeCost-incArea); if (aeText = "Radius") return format('%d" radius', round(round(aeCost/10)*doubling)); elseif (aeText = "Cone") return format('%d" long', round(aeCost/5)*doubling); elseif (aeText = "Line") return format('%d" long', 2*round(aeCost/5)*doubling); elseif (aeText = "Any Area") return format('%d hexes', round(aeCost/10)*doubling); elseif (aeText = "One-Hex") return format('%d hex(es)', 1*doubling); endif return 'Unknown area type'; }€ de(dummy)T{ if (optPresent("END")) return itemInfo("`END`"); endif return ''; }€gmad(type, extradc)À{ if (type = "Dice") return format('%dd6', extradc+ rnd5(total_STR)+martialDC); endif if (type = "Killing") return format('%s HKA', kadmg(min(total_str,extradc*5)+extradc*5 + 5*integer(martialDC/2))); endif if (type = "Strength") return format('STR %d', total_STR+extradc*5+martialDC*5); endif if (type = "NND") return format('%dd6 NND',extradc + integer(martialDC/2)); endif return "None"; }€ charnames[28]t"STR",1,"DEX",2,"CON",3,"BODY",4,"INT",5,"EGO",6,"PRE",7,"COM",8,"PD",9,"ED",10,"SPD",11,"REC",12,'END',13,'STUN',14€run6€swim2€jumpround((str+a_str)/5)€a_char(char,total)"char!=total?format("/%d",total):""€maxChar(norm,a40,a60){ if (age60) return a60; endif if (age40) return a40; endif if (NormalMaxima or normMaxChars) return norm; endif return 0; }€ total_str str+a_str€ total_dex dex+a_dex€ total_con con+a_con€ total_body body+a_body€ total_int int+a_int€ total_ego ego+a_ego€ total_pre pre+a_pre€ total_com com+a_com€total_pdpd+a_pd€total_eded+a_ed€ total_spd a_spd+spd€ total_rec rec+a_rec€ total_end end+a_end€ total_stun stun+a_stun€m_strmaxChar(20, 15, 10)+mx_str€m_dexmaxChar(20, 20, 20)+mx_dex€m_conmaxChar(20, 15, 10)+mx_con€m_bodymaxChar(20, 15, 10)+mx_body€m_intmaxChar(20, 25, 30)+mx_int€m_egomaxChar(20, 25, 30)+mx_ego€m_premaxChar(20, 25, 30)+mx_pre€m_commaxChar(20,20,20)+mx_com€m_pdmaxChar(8,6,4)+mx_pd€m_edmaxChar(8,6,4)+mx_ed€m_spdmaxChar(4,4,4)+mx_spd€m_recmaxChar(10,8,6)+mx_rec€m_endmaxChar(50,40,30)+mx_end€m_stunmaxChar(50,40,30)+mx_stun€m_runmaxChar(10,8,6)+mx_run€m_swimmaxChar(5,4,3)+mx_swim€ logoGraphic"hero\Champions.jpg"—€€moveEnd(inches){ local nd, mult, redEnd, incEnd, charges, costsEnd, multiplier; charges = optPresent('Charges'); costsEnd = optPresent('Costs END'); if (charges) if (!costsEnd) return 0; endif endif redEnd = itemInfo('`Reduced END`'); if (redEnd >= 1/2) return 0; endif if (redEnd != 0) nd = dround(inches/10); else nd = rnd5(inches); endif incEnd = itemInfo('`Increased END`'); if (incEnd) mult = (-incEnd+0.5)*2; if (mult = 9) mult = 10; endif nd = nd * mult; endif return max(1,nd); } € €Skills/€Skills€skillsBD€%0rx'skills'%7l!TotalC€S%€ MS Sans Serif~€`€"(€íï}€%0r!Cost%7l!Skill%-5r!Roll*€%0rc%7ln€Frenchƒ€€LanguageL€Language€,optValue('Native')?max(0,x-4-&x):max(1,x-&x)l€max(round((c+a)*m),0))€.optValue('Native')?x>3+&x and x<6:x>&x and x<6*€%0rx|ct(0)|%7ln (^o'Fluency')0€%0ln%-25lt%-10r!Varies+€lang7€€€Native?+0;‹€'l'‰€€€8€Fluencyfqindex(x,'Basic Conv.','Fluent Conv.','Completely Fluent w/accent','Native Accent','Imitate Dialects')‰€€>€Literacy+?:1;Standard,0;Literate (if not standard),1€€2€@|€@€$Professional Skill: Police Detective€Skill;Professional€ BackgroundL€Professional Skill€gskillcost(x,&x)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€gskillcheck(x,c,&x)*€%0rx|ct(0)|%7ln%-5rv-0€%0ln%-25ll%-7r!2-3/1£€PS+€ professional7€€€Type/?:2;Background;INT;DEX;PRE;STR;CON;BODY;EGO;COM‰€€€€12€@@|€@@€ Streetwise€ Skill;PRE€PREL€ Streetwise€skCost(x,&x,total_pre,3,2)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€x=8 or c>=3-&x*€%0rx|ct(0)|%7ln%-5rv-0€%0ln%-25ll%-4r!3/2+€ streetwise€12€@@|€@@€ Bureaucratics€ Skill;PRE€PREL€ Bureaucratics€skCost(x,&x,total_pre,3,2)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€x=8 or c>=3-&x*€%0rx|ct(0)|%7ln%-5rv-0€%0ln%-25ll%-4r!3/2+€ bureaucratics€13€ @|€ @€ Deduction€ Skill;INT€INTL€ Deduction€skCost(x,&x,total_int,3,2)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€x=8 or c>=3-&x*€%0rx|ct(0)|%7ln%-5rv-0€%0ln%-25ll%-4r!3/2+€ Deduction7€€€Everyman?+1;‹€'l'‰€€€€13€ @|€ @€ Criminology€ Skill;INT€INTL€ Criminology€skCost(x,&x,total_int,3,2)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€x=8 or c>=3-&x*€%0rx|ct(0)|%7ln%-5rv-0€%0ln%-25ll%-4r!3/2+€ Criminology€14€à@|€à@€ Paramedic€ Skill;INT€INTL€ Paramedic€skCost(x,&x,total_int,3,2)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€x=8 or c>=3-&x*€%0rx|ct(0)|%7ln%-5rv-0€%0ln%-25ll%-4r!3/2+€ paramedic7€€€Everyman?+1;‹€'l'‰€€€€14€à@|€à@€ €Powers/€Powers€powersCD€%0rx'Powers'%7l!TotalC€P%€ MS Sans Serif~€`€"(€W~.ñ}€%0r!Cost%7l!Power%-5r!END*€%0rc%7ln,€Elemental Control-€€ Energy Blastƒ€€StandardL€ Energy Blast€ dround(x*5)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=2,c)*€)%0rx|ct(0)|%7lx|sl(0)|^vd6 ^n%-5rx'de(0)'0€%0ln%-22lt%-10r!5/1d6£€EB+€power7€€8€END endCost(1,10)‰€€8€Rangerf(5)€€Versus ?:1;ED;PD£€vs€€€6€ðA|€pA€Flashƒ€€StandardL€Flash€ dround(x*10)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=2,c)*€u%0rx|ct(0)|%7lx|sl(0)|^vd6 ^n (^x|listOptions('optTextValue', 'Sense',', ')|^x|optOption('Sense Group')|)%-5rx'de(0)'0€%0ln%-22lt%-10r!10/1d6+€power07€€8€END endCost(1,10)‰€€8€Rangerf(5)€€SenseÖ?:1;Normal Sight;IR Vision;UV Vision;Hearing;Ultrasonic Hearing;Sonar;Radio Listen/Transmit;High Range Radio Hearing;Smell;Taste;Spatial Awareness;N-Ray Vision;Clairsentience;Radar;Mind Scan;Mental Awareness;Detect‰€€€>€ Sense GroupR?:1;None,0;Sight,10;Hearing,10;Radio,10;Smell/Taste,10;Unusual Senses,10;Mental,10‰€€€€3€ðA|€pA€Imagesv€ƒ€€StandardL€Images€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=10,c)*€Ž%0rx|ct(0)|%7lx|sl(0)|^n (^x|listOptions('optTextValue', 'Sense',', ')|^x|optOption('Sense Group')|, ^x|twoN(`Radius`*4)|" radius)%-5rx'de(0)'0€%0ln%-22lt%-10r!10+€power17€€8€END endCost(1,10)‰€€8€Rangerf(5)€€SenseÖ?:1;Normal Sight;IR Vision;UV Vision;Hearing;Ultrasonic Hearing;Sonar;Radio Listen/Transmit;High Range Radio Hearing;Smell;Taste;Spatial Awareness;N-Ray Vision;Clairsentience;Radar;Mind Scan;Mental Awareness;Detect‰€€€>€ Sense GroupR?:2;None,0;Sight,10;Hearing,10;Radio,10;Smell/Taste,10;Unusual Senses,10;Mental,10‰€€€>€Observer PER Penalty??3;9;abs(x)*3;;‹€ 'l: t, +o'€€<€Radius??3;½;(x-1)*0.25;x>0;‹€!format('l: ×%d, +o', twoN((o)*4))‰€€€€10€ A|€àA€ Invisibilityv€ƒ€€SpecialL€ Invisibility€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=20,c)*€%0rx|ct(0)|%7lx|sl(0)|^n (^x|listOptions('optTextValue', 'Sense',', ')|^x|optOption('Sense Group')|^x|`Fringe`?', No Fringe':''|)%-5rx'de(0)'0€%0ln%-22lt%-10r!^c+€power27€€8€END endCost(1,10)‰€€€€SenseÖ?:1;Normal Sight;IR Vision;UV Vision;Hearing;Ultrasonic Hearing;Sonar;Radio Listen/Transmit;High Range Radio Hearing;Smell;Taste;Spatial Awareness;N-Ray Vision;Clairsentience;Radar;Mind Scan;Mental Awareness;Detect‰€€€>€ Sense GroupR?:2;None,0;Sight,10;Hearing,10;Radio,10;Smell/Taste,10;Unusual Senses,10;Mental,10‰€€€>€Fringe?:1;Present,+0;Absent,+10‰€€€<€Usable By Others%?:2;Power Lost,+¼;Simultaneous Use,+½£€UBO8€o+`Usable by Others Number`€€€20€ A|€ðA€ Force Fieldƒ€€StandardL€ Force Field€x*(takesNoStun?3:1)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=10,c)*€:%0rx|ct(0)|%7lx|sl(0)|^n (^o'PD' PD/^o'ED' ED)%-5rx'de(0)'0€%0ln%-22lt%-10r!1/RD£€FF+€power37€€8€END endCost(1,10)‰€€€y€PDrpd+(`Affect Totals`?x:0)10‰€€€y€EDred+(`Affect Totals`?x:0)30‰€€€€ Affect Totals?+1;‹€'l'‰€€€€40€ B|€ÈA€‡€ˆ€w€€…€†€€EC€ECL€Elemental Controll€'dround((ap(@bc@,0,@mo@,@fm@))/(1+@fd@)))€x>=0*€.%0rx|ct(0)|%5lx|sl(0)|^n (^x|@bc@|-pt reserve)£€EC€pA|€pA€Running€a_run+xƒ€€MovementL€Running€moveCost(run,x,2,m_run)+0*a_runl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=-6,c)*€g%0rx|ct(0)|%7lx|sl(0)|^n (^x|format('%+d',@v@)|", ^o'Running', NC: ^o'Non-Combat Movement')%-5rx'de(0)'0€%0ln%-22lt%-10r!2/1"+€running7€€8€END moveEnd(6+x)‰€€€8€Runningformat('%d"',6+a_run)‰€€€>€Non-Combat Multiplier??1;0;(x-1)*5;x>0;‹€#format('l: ×%d, +o', twoN((o)/5+1))€€8€Non-Combat MovementN`No Non-Combat`?'--':format('%n"',(6+a_run)*twoN(`Non-Combat Multiplier`/5+1))‰€€€8€Non-Combat (MPH)[`No Non-Combat`?'--':format('%n',round(x*twoN(`Non-Combat Multiplier`/5+1)*total_spd*.372))£€MPH€<€ Has Turn Mode?+0;-¼€€3€À@|€À@€ € Disadvantages/€ Disadvantages€ disadvantagesCD€%0rx'disadvantages'%7l!TotalC€D%€ MS Sans Serif~€`€"(€º5B)€D!ConfigParam('CheckDisadLimit') or disadvantages <= MaxDisadvantagesM€)Maximum points in disadvantages exceeded.}€%0r!Pts%7l!Disadvantage*€%0rc%7ln€Code Against Killingv€€ Psych. Lim.L€Code Against Killingl€round((c+a)*m)*€.%0rx|ct(0)|%7ln (^o'Situation', ^o'Intensity')0€%0ln%-10r!Varies7€€>€ Situation*?:2;Uncommon,+5;Common,+10;Very Common,+15‰€€€>€ Intensity#?:3;Moderate,+0;Strong,+5;Total,+10‰€€€€0|€ A€DNPC: Alys Chandlerv€€DNPCL€DNPCl€round((c+a)*m)*€1%0rx|ct(0)|%7l!^n (^o'Dependent', ^o'Appearance')0€%0ln%-10r!Varies£€DNPC7€€>€ DependentC?:3;Incompetent,10;Normal,5;Slightly Less Powerful,0;As Powerful,-5‰€€€>€ Appearance?:3;8-,+5;11-,+10;14-,+15‰€€>€Skills?:1;Normal,+0;Useful,-5€€0|€pA€ Fear of Darkv€€ Psych. Lim.L€Fear of Crowdsl€round((c+a)*m)*€.%0rx|ct(0)|%7ln (^o'Situation', ^o'Intensity')0€%0ln%-10r!Varies7€€>€ Situation*?:2;Uncommon,+5;Common,+10;Very Common,+15‰€€€>€ Intensity#?:2;Moderate,+0;Strong,+5;Total,+10‰€€€€0|€pA€ Honorable (and a bit inflexible)v€€ Psych. Lim.L€ Honorablel€round((c+a)*m)*€.%0rx|ct(0)|%7ln (^o'Situation', ^o'Intensity')0€%0ln%-10r!Varies7€€>€ Situation*?:2;Uncommon,+5;Common,+10;Very Common,+15‰€€€>€ Intensity#?:3;Moderate,+0;Strong,+5;Total,+10‰€€€€0|€ A€Hunted: NightStarv€€HuntedL€Huntedl€round((c+a)*m)*€"%0rx|ct(0)|%7l!^n (^o'Appearance')0€%0ln%-10r!Varies7€>€ Capabilities3?:2;Less Powerful,5;As Powerful,10;More Powerful,15€>€Non-combat Influence?:1;None,+0;Extensive,+5£€NCI€€>€Geographical Area?:1;Unlimited,-0;Limited,-5£€Geo€€>€ Appearance?:2;8-,+0;11-,+5;14-,+10‰€€=€Actions?:1;Hunting,×1;Only Watching,×½>€ Punishment?:1;Mild,-5;Harsh,0€€0|€ A€Normal Characteristic Maxima€normMaxChars+1v€€Normal CharacteristicsL€Normal Characteristic Maxima*€%0rc%7ln£€NCM1€[Configuration:NormalMaxima=0::Configuration:Normal Characteristic Maxima must be unchecked.€0€ A|€ A€Rivalry: NightStarv€€RivalryL€Rivalryl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€%0ln%-10r!Varies7€>€ Situation:?:1;Professional,5;Romantic,5;Professional and Romantic,10>€Position?:1;Equal,+0;Superior,+5>€Rival?:1;NPC,+0;PC,+5€€0|€ @€Secret Identityv€€IdentityL€Secret Identityl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€ %0ln%-10rc£€ Secret ID1€!Public Identity€0€pA|€pA€$Wants a normal family life - his wayv€€ Psych. Lim.L€ Psych. Lim.l€round((c+a)*m)*€.%0rx|ct(0)|%7ln (^o'Situation', ^o'Intensity')0€%0ln%-10r!Varies£€ Psych Lim7€€>€ Situation*?:2;Uncommon,+5;Common,+10;Very Common,+15‰€€€>€ Intensity#?:2;Moderate,+0;Strong,+5;Total,+10‰€€€€0|€pA€$Watched (Secret ID): Family Servicesv€€HuntedL€Watchedl€round((c+a)*m)*€"%0rx|ct(0)|%7l!^n (^o'Appearance')0€%0ln%-10r!Varies7€>€ Capabilities3?:1;Less Powerful,5;As Powerful,10;More Powerful,15€>€Non-combat Influence?:2;None,+0;Extensive,+5£€NCI€>€Geographical Area?:1;Unlimited,-0;Limited,-5€>€ Appearance?:1;8-,+0;11-,+5;14-,+10‰€€=€ Only Watching×½>€ Punishment?:2;Mild,-5;Harsh,0€€0|€ @€Watched: Law Enforcementv€€HuntedL€Watchedl€round((c+a)*m)*€"%0rx|ct(0)|%7l!^n (^o'Appearance')0€%0ln%-10r!Varies7€>€ Capabilities3?:2;Less Powerful,5;As Powerful,10;More Powerful,15€>€Non-combat Influence?:2;None,+0;Extensive,+5£€NCI€>€Geographical Area?:1;Unlimited,-0;Limited,-5€>€ Appearance?:2;8-,+0;11-,+5;14-,+10‰€€=€ Only Watching×½>€ Punishment?:2;Mild,-5;Harsh,0€€0|€ A€ € Equipment/€ Equipment€ equipmentD€.%0rx'equipment'%9l!Totals (^x'equipweight' kg)9€CostC€E%€ MS Sans Serif~€`€"(€0ñ}€%0r!Cost%7l!Equipment*€%0rc%7ln€&€Characteristics4(€†€%€ MS Sans Serif~€ž€%€ MS Sans Serif~€`€"Ÿ€€€€)€<(c_pd<0)+(c_ed<0)+(c_spd<0)+(c_rec<0)+(c_end<0)+(c_stun<0)<2M€DOnly one figured characteristic may be reduced below the base value.€Name: "!€€DayStar+Name€ Experience:#;!€€]t_powers+t_char>t_disadv+basePoints ? min(t_exp,t_powers+t_char - (t_disadv+basePoints)) : 0C# "€ experience€/\# !€$€0d")€x>=04€t_exp$€13L STR$€17d DEX$€13| CON$€12• BODY$€13­ INT$€13Æ EGO$€13Þ PRE$€18ö COM$€6œ| €rnd5(str+a_str_pd)PD$€9œ” €rnd5(con+a_con_ed)ED$€3œ¬ €1+(dex+a_dex_spd)/10SPD$€10œÅ €'rnd5(str+a_str_rec)+rnd5(con+a_con_rec)rec$€35œÝ €(con+a_con_end)*2end$€35œö €HtakesNoStun?0:body+a_body_stun+rnd2(str+a_str_stun)+rnd2(con+a_con_stun)*€takesNoStun?'No':xstun €Costs™™J€Value:! !€€CharD: !€€Pointsg:& !€€STRDP! !€€cc(str,1,10,m_str)gP "€c_str€DEXDh! !€€cc(dex,3,10,m_dex)gh "€c_dex€COND! !€€cc(con,2,10,m_con)g "€c_con€BODYD™! !€€cc(body,2,10,m_body)g™ "€c_body€INTD±! !€€cc(int,1,10,m_int)g± "€c_int€EGODÊ! !€€cc(ego,2,10,m_ego)gÊ "€c_ego€PREDâ! !€€cc(pre,1,10,m_pre)gâ "€c_pre€COMDû! !€€cc(com,0.5,10,m_com)gû "€c_com€Valueœj! !€€CharÛj !€€Pointsþj& !€€PDÛ€! !€€ cc(pd,1,rnd5(str+a_str_pd),m_pd)þ€ "€c_pd€EDÛ˜! !€€ cc(ed,1,rnd5(con+a_con_ed),m_ed)þ˜ "€c_ed€SPDÛ°! !€€%cc(spd,10,1+(dex+a_dex_spd)/10,m_spd)þ° "€c_spd€RECÛÉ! !€€ENDÛá! !€€STUNÛú !€€7cc(rec,2,rnd5(str+a_str_rec)+rnd5(con+a_con_rec),m_rec)þÉ "€c_rec€#cc(end,0.5,2*(con+a_con_end),m_end)þá "€c_end€ZtakesNoStun?0:cc(stun,1,body+a_body_stun+rnd2(str+a_str_stun)+rnd2(con+a_con_stun),m_stun)þú "€c_stun€Char.œ-% "€€Powersœ?% "€€TotalœQ% "€€TotalQ! !€€Disad.-! !€€a_char(str,total_str)(P !€t_str€a_char(dex,total_dex)(h !€t_dex€a_char(con,total_con)( !€t_con€a_char(body,total_body)(™ !€t_body€a_char(int,total_int)(± !€t_int€a_char(ego,total_ego)(Ê !€t_ego€a_char(pre,total_pre)(â !€t_pre€a_char(com,total_com)(û !€t_com€a_char(pd,total_pd)½€ !€t_pd€a_char(ed,total_ed)½˜ !€t_ed€'a_char(integer(spd),integer(total_spd))½° !€t_spd€a_char(rec,total_rec)½É !€t_rec€a_char(end,total_end)½á !€t_end€a_char(stun,total_stun)½ú !€t_stun€Base?! !€€Sc_str+c_dex+c_con+c_body+c_int+c_ego+c_pre+c_com+c_pd+c_ed+c_spd+c_rec+c_end+c_stunÈ- !€t_char€€t_powers+t_char+0*ptsAvailÈQ !€total €total>ptsAvail€€#disadvantages+experience+basePointsóQ "€ptsavail€ disadvantagesó- "€t_disadv€ basePointsó? "€t_base€7total < ptsAvail ? '<' : (total > ptsAvail ? '>' : '=')çQ #€balance€)skills+powers+(equipCostsPts?equipment:0)È? !€t_powers€&€ Information\(€ð•%€ MS Sans Serif~€C€I€Player: ( !€€ Alex ChandlerRplayer€ Appearance:I !€€uAge: 21 Gender: Player Option Hair: Brown, Lt. Eyes: Blue, med. Height: 6'0" Build: average Race: IndeterminateR= appearance€ Background:aI !€€DayStar was born with light powers. Daystar's identical twin, NightStar, was born with (go ahead, guess) dark powers. NightStar has, unfortunately, fallen prey to the temptation of greed, evil, and general nastiness, causing all sorts of confusion. Alex, his/her twin sibling Sandy, and his/her younger sister Alys, grew up in orphanages. When the twins grew old enough to be on their own, they took different paths. Alex became a police officer, and in the off hours, a hero. Alex was recently able to locate his sister and has taken custody of her. Alys is sixteen and, unknown to Alex, has started devloping superpowers of her own. Alex lives in a small apartment in the city. It's an okay neighborhood, but not rich. Alex does have to live on a cop's salary. Raestory€Weight:Ó'!€$€00Ï)*€x?x:''weight€kg\Ó!€€Height:qÓ$!€$€0—Ï$*€x?x:''height€cm¿Ó!€€Age:ÚÓ!€$€0óÏ)€W{ if (age40) return x>=40; endif if (age60) return x>=60; endif return 1; }M€AYou've chosen an Age disadvantage and your age is less than that.*€x?x:''age€Sex:ú!€6€20ö>EsexFemale;0;Male;1; ;2€Created: %@datecreated%Ì@!€€Race:}ú!!€€¦ö­Race€weight?kgToEnglish(weight):''0æ5 !€ weightLbs€height?cmToEnglish(height):''—æ5 !€ heightEng€&€ ConfigurationV˜(€nn%€ MS Sans Serif~€C€O €Character Type£’6€5 “{charTypevIncompetent Normal;1;Normal;2;Skilled Normal;3;Competent Normal;4;Hero;5;Standard Superhero;6;High-Powered Superhero;7€ Base Points: 2D!€$€'qindex(charType,-20,0,25,50,75,100,150)/€'qindex(charType,-20,0,25,50,75,100,150) basePoints€Max. Disadvantages: Jg!€$€'qindex(charType,25,25,25,50,75,150,225)G€'qindex(charType,25,25,25,50,75,150,225)MaxDisadvantages€$Max. from one cat. of Disadvantages: \[!€$€%qindex(charType,25,25,25,25,25,50,75)_€%qindex(charType,25,25,25,25,25,50,75) MaxCatDisad€Total: zg!€€BasePoints+MaxDisadvantagesz !€ CharTotal€Normal Characteristic Maxima®£ NormalMaxima€Equipment Costs Points® Ÿ equipCostsPts€ Logo Graphic:®?_!€›€ Browse...5:browselogo = $$Config.Logo; getfilename logo, Logo Graphic, "Pictures|*.jpg;*.bmp;*.png"; if (logo) Configuration.logo = logo; $@logoGraphic = logo; endif€€hero\Champions.jpg®N Logoœ€%$@logoGraphic = $$Configuration.Logo;€€ logoGraphicÀg|- LogoDisplay€&€Combat Í(€šš%€ MS Sans Serif~€C€B €Combat{X €Phases[{4 €Defense‡[4€OCV:  !€€DCV: # !€€ECV: 4 !€€round(total_dex/3), !€ocv€round(total_dex/3),# !€dcv€round(total_ego/3),4 !€ecv€phase[total_spd]km!!€phases€Mental Defense: EQ !€€(mentalDef?round(total_ego/5)+mentalDef:0_E !€ t_mentalDef €Physical Feats‡X€Run: !€€Swim:# !€€Jump:4 !€€PD:’j !€€ED:’} !€€rPD:Ðj !€€rED:Ð} !€€ pd+a_pd+rpd¦j !€d_pd€ ed+a_ed+red¦} !€d_ed€rpd+a_rpd+min(total_pd,DRpd)èj !€ total_rpd€red+a_red+min(total_ed,DRed)è} !€ total_red€;format('%d%d"',run,a_run?concat("/",integer(run+a_run)):"")°- !€t_run€?format('%d%d"',swim,a_swim?concat("/",integer(swim+a_swim)):"")°#- !€t_swim€?format('%d%d"',jump,a_jump?concat("/",integer(jump+a_jump)):"")°4- !€t_jump€Lift:E !€€Tformat("%d%s", liftFunc(str), str=total_str ? "" : concat("/", liftFunc(total_str)))°ET !€t_lift€,format('/ %s',a_gdcv?max(0,dcv+a_gdcv):'--')@# !€growdcv€-format('/ %s', a_sdcv?max(0,dcv+a_sdcv):'--')Z# !€ shrinkdcv €Characteristic Rolls”3€STR: ¥ !€€DEX: µ !€€chrRoll(str, a_str, 0)0¥" !€STRRoll€chrRoll(dex, a_dex, 0)0µ" !€DEXRoll€INT:j¥ !€€chrRoll(int, a_int, 0)¥" !€INTRoll€PER:¾¥ !€€chrRoll(int, a_int, b_per)á¥" !€PERRoll€EGO:jµ !€€chrRoll(ego, a_ego, 0)µ" !€EGORoll€CON:¾µ !€€chrRoll(con, a_con, 0)áµ" !€CONRoll€&€Pictureú((€°°%€ MS Sans Serif~€C€TT€Pictureõ%€€