7WCharacter Sheet file v. 1B€HeroŒ€3Champions character template with superhero limits.€ CharacterK€Hero.hlpn€ê€Š€ÈI€l€dround((c + a)*m)H€€3€_ßÿÿÿÿ €09/13/1999 14:29:38€.€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€skillsÞBD€%0rx'skills'%7l!TotalC€S%€ MS Sans Serif~€`€"(€vñí}}€%0r!Cost%7l!Skill%-5r!Roll*€%0rc%7ln,€Aikido-€€Throwv€€Martial ManeuverL€ Martial Throw€x+0*martialDC*total_str)€x=3*€V%0rx|ct(0)|%7ln (OCV ^x|format('%+d',`OCV`)|, DCV ^x|format('%+d',`DCV`)|, ^o'Damage')0€"%0ln (^o'OCV'/^o'DCV')%-25lt%-4r!3+€martman7€€€OCV ??+0;+0;;;‹€format('l: %+d', o)‰€€€€DCV ??+1;+1;;;‹€format('l: %+d', o)‰€€€8€Damage7format('%dd6+v/5',round((total_STR*2-2)/5)/2+martialDC)‰€€€€3€@@|€@@€Holdv€€Martial ManeuverL€ Martial Grab€x+0*martialDC*total_str)€x=3*€V%0rx|ct(0)|%7ln (OCV ^x|format('%+d',`OCV`)|, DCV ^x|format('%+d',`DCV`)|, ^o'Damage')0€"%0ln (^o'OCV'/^o'DCV')%-25lt%-4r!3£€M Grab+€martman7€€€OCV ??-1;-1;;;‹€format('l: %+d', o)‰€€€€DCV ??-1;-1;;;‹€format('l: %+d', o)‰€€€8€Damage)format('STR %d',total_STR+10+martialDC*5)‰€€€€3€@@|€@@€Strikev€€Martial ManeuverL€Defensive Strike€x+0*martialDC*total_str)€x=5*€V%0rx|ct(0)|%7ln (OCV ^x|format('%+d',`OCV`)|, DCV ^x|format('%+d',`DCV`)|, ^o'Damage')0€"%0ln (^o'OCV'/^o'DCV')%-25lt%-4r!5£€ Def Strike+€martman7€€€OCV ??+1;+1;;;‹€format('l: %+d', o)‰€€€€DCV ??+3;+3;;;‹€format('l: %+d', o)‰€€€8€Damage3format('%dd6',round((total_STR*2-2)/5)/2+martialDC)‰€€€€5€ @|€ @€Dodgev€€Martial ManeuverL€ Martial Dodge€x+0*martialDC*total_str)€x=4*€5%0rx|ct(0)|%7ln (OCV --, DCV ^x|format('%+d',`DCV`)|)0€%0ln%-25lt%-4r!4+€martman7€€€DCV ??+5;+5;;;‹€format('l: %+d', o)‰€€€€OCV??--‰€€€€4€€@|€€@€Escapev€€Martial ManeuverL€Martial Escape€x+0*martialDC*total_str)€x=4*€V%0rx|ct(0)|%7ln (OCV ^x|format('%+d',`OCV`)|, DCV ^x|format('%+d',`DCV`)|, ^o'Damage')0€"%0ln (^o'OCV'/^o'DCV')%-25lt%-4r!4£€M Esc+€martman7€€€OCV??0;0;;;‹€format('l: %+d', o)‰€€€€DCV??0;0;;;‹€format('l: %+d', o)‰€€€8€Damage)format('STR %d',total_STR+15+martialDC*5)‰€€€€4€€@|€€@€w€€x€€Martial Arts StyleL€Aikido*€%0rx|ct(0)|%5ln0€%0ln%-25lt%-4rc€˜A|€˜A€Concealed Weapons Permitv€€PerkL€Concealed Weapons Permit*€%0rx|ct(0)|%7ln0€ %0ln%-10rc€0€@|€@€Private Investigator Licensev€€PerkL€Private Investigator License*€%0rx|ct(0)|%7ln0€ %0ln%-10rc€0€@|€@€ WF: Pistolsv€€#Weapon Familiarity;Small Arms Group€ Weapon Fam.L€Pistols€&x?0:1*€%0rx|ct(0)|%7ln0€%0ln%-25ll%-4rc+€weapfam€1€€?|€€?€%Contact: Police Department File Clerk€ Perk;ContactL€Contact€max(1,1+(x>10)*(x-10)-&x))€ x=8 or x>10*€%0rx|ct(0)|%7l!^n%-6rv-0€%0ln%-10r!Varies+€contact7€>€ Usefulness0?:2;Normal,+0;Very,+1;Extremely,+2;Incredibly,+3€€11€@|€@@€ Danger Sense€TalentL€ Danger Sense€talCost(x,11,10,2)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€c>=10*€.%0rx|ct(0)|%7l!^n (^o'Works', ^o'Range')%-5rv-0€%0ln%-25ll%-10r!10/2+€ dangersense7€>€Works9?:2;In Combat,+0;Out of Combat,+5;Against All Attacks,+10>€Range??:1;Self,+0;Immediate Vicinity,+5;General Area,+10;Anywhere,+15€€11€ A|€pA€ 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€ @|€ @€ Interrogation€ Skill;PRE€PREL€ Interrogation€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+€ Interrogation€13€ @|€ @€ Lockpicking€ Skill;DEX€DEXL€ Lockpicking€skCost(x,&x,total_dex,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+€ lockpicking€13€@@|€@@€ Shadowing€ Skill;General€GeneralL€ Shadowing€genCost(x,&x,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+€ shadowing7€€€Everyman?+1;‹€'l'‰€€€€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'‰€€€€14€ @|€ @€ 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€15€à@|€à@€Forensic Medicine€ Skill;INT€INTL€Forensic Medicine€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+€forensicmedicine€16€A|€A€ 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'‰€€€€16€A|€A€Tactics€ Skill;INT€INTL€Tactics€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+€tracking€16€A|€A€Professional Skill: PI€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‰€€€€17€à@|€à@€ €Powers/€Powers€powersPBD€%0rx'Powers'%7l!TotalC€P%€ MS Sans Serif~€`€"(€wv.ñ}€%0r!Cost%7l!Power%-5r!END*€%0rc%7ln€Mental Awarenessv€ƒ€€Enhanced SenseL€Mental Awareness€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=3,c)*€$%0rx|ct(0)|%7lx|sl(0)|^n%-5rx'de(0)'0€%0ln%-22lt%-10r!3+€power0€3€@@|€@@€Empathyv€ƒ€€Enhanced SenseL€Sense€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=3,c)*€<%0rx|ct(0)|%7lx|sl(0)|^n (+^o'PER Bonus' to PER)%-5rx'de(0)'0€%0ln%-22lt%-10r!3+2/PER+€power17€€>€ PER Bonus??0;0;x*2;x>=0;‹€ 'l: t, +o'‰€€>€ Time Required?:2;Half Phase,+0;Instant,+2>€Range?:2;Touch,+0;Ranged,+5€€5€ @|€@A€Clairsentiencev€ƒ€€StandardL€Clairsentience€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=20,c)*€p%0rx|ct(0)|%7lx|sl(0)|^n (^x|listOptions('optTextValue', 'Sense',', ')|^x|optOption('Sense Group')|)%-5rx'de(0)'0€%0ln%-22lt%-10r!Varies+€power7€€8€END endCost(1,10)‰€€€€SenseÖ?:4;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‰€€>€See6?:3;Present,+0;Future,+20;Past,+20;Future and Past,+40>€ Dimensions?:1;Current,+0;Other,+208€RangeHformat('%n"',(@bc@+@a@-`Range Multiplier`)*5*twoN(`Range Multiplier`/5))€>€Range Multiplier??1;0;(x-1)*5;x>0;‹€!format('l: ×%d, +o', twoN((o)/5))‰€€>€Sense (Empathy)ù?:16;Normal Sight,5;IR Vision,5;UV Vision,5;Hearing,5;Ultrasonic Hearing,5;Sonar,5;Radio Listen/Transmit,5;High Range Radio Hearing,5;Smell,5;Taste,5;Spatial Awareness,5;N-Ray Vision,5;Clairsentience,5;Radar,5;Mind Scan,5;Mental Awareness,5;Detect,5<€Must be touching objectJ?:1;Slightly,-¼;Seriously,-½;Significantly,-¾;Half,-1;Almost Completely,-2<€ ConcentrateA?:4;½ DCV,-¼;0 DCV,-½;Throughout & ½ DCV,-½;Throughout & 0 DCV,-1€€20€ A|€ÀA€Summonƒ€€StandardL€Summon€30+dround(x/5)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=0,c)*€N%0rx|ct(0)|%7lx|sl(0)|^n (^x'twoN(`Number`/5)' ^v-point creatures)%-5rx'de(0)'0€%0ln%-22lt%-10r!30+1/5+€power27€€8€END endCost(1,10)‰€€8€Rangerf(0)€>€Number??1;0;(x-1)*5;x>0;‹€format('l: %d, +o', twoN(o/5))‰€€<€Summon*?:1;Single Type,+0;Limited Group,+¼;Any,+2€<€ Activation4?:2;15-,-¼;14-,-½;12-,-¾;11-,-1;10-,-1¼;9-,-1½;8-,-2£€Act€<€ ConcentrateA?:3;½ DCV,-¼;0 DCV,-½;Throughout & ½ DCV,-½;Throughout & 0 DCV,-1<€%Must be spirit present to be summonedJ?:4;Slightly,-¼;Seriously,-½;Significantly,-¾;Half,-1;Almost Completely,-2€€50€ B|€PA€ € Disadvantages/€ Disadvantages€ disadvantagesCD€%0rx'disadvantages'%7l!TotalC€D%€ MS Sans Serif~€`€"(€AR#)€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: Secretaryv€€DNPCL€DNPCl€round((c+a)*m)*€1%0rx|ct(0)|%7l!^n (^o'Dependent', ^o'Appearance')0€%0ln%-10r!Varies£€DNPC7€€>€ DependentC?:2;Incompetent,10;Normal,5;Slightly Less Powerful,0;As Powerful,-5‰€€€>€ Appearance?:2;8-,+5;11-,+10;14-,+15‰€€>€Skills?:2;Normal,+0;Useful,-5€€0|€ A€Fear of Crowdsv€€ 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€ Honorablev€€ 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#?:2;Moderate,+0;Strong,+5;Total,+10‰€€€€0|€pA€ Nightmaresv€€ Phys. Lim.L€ Phys. Lim.l€round((c+a)*m)*€-%0rx|ct(0)|%7l!^n (^o'Limiting', ^o'Impairs')0€%0ln%-10r!Varies£€Phys Lim7€€>€Limiting3?:2;Infrequently,+5;Frequently,+10;All the Time,+15‰€€€>€Impairs$?:1;Slightly,+0;Greatly,+5;Fully,+10‰€€€€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€!Reputation: Honest, but Eccentricv€€ ReputationL€ Reputationl€round((c+a)*m)*€8%0rx|ct(0)|%7l!^n (^o'Recognized'^x|optOption('Level')|)0€%0ln%-10r!Varies£€Rep7€€>€ Recognized?:2;8-,5;11-,10;14-,15‰€€€>€Level?:1;Standard,+0;Extreme,+5‰€€€€0|€ A€Secret: Telempathic Abilitiesv€€IdentityL€Secret Identityl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€ %0ln%-10rc£€ Secret ID1€!Public Identity€0€pA|€pA€Vulnerability: Mentalv€€ VulnerabilityL€ Vulnerabilityl€round((c+a)*m)*€5%0rx|ct(0)|%7l!^n (^o'Multiplier' ^o'Characteristic')0€%0ln%-10r!Varies£€Vuln7€>€Attack*?:2;Uncommon,+5;Common,+10;Very Common,+15€=€ Multiplier?:2;1½×,×1;2×,×2‰€€€=€Characteristic.?:3;STUN,×1;BODY,×1;Effect,×1;STUN and BODY,×2‰€€€€0|€ A€Watched: Policev€€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€Watched: Spritsv€€HuntedL€Watchedl€round((c+a)*m)*€"%0rx|ct(0)|%7l!^n (^o'Appearance')0€%0ln%-10r!Varies7€>€ Capabilities3?:3;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|€ 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: "!€€ Chris Craven+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$€15L STR$€18d DEX$€13| CON$€13• BODY$€18­ INT$€18Æ EGO$€14Þ PRE$€15ö COM$€rnd5(str+a_str_pd)œ| €rnd5(str+a_str_pd)PD$€rnd5(con+a_con_ed)œ” €rnd5(con+a_con_ed)ED$€4œ¬ €1+(dex+a_dex_spd)/10SPD$€'rnd5(str+a_str_rec)+rnd5(con+a_con_rec)œÅ €'rnd5(str+a_str_rec)+rnd5(con+a_con_rec)rec$€30œÝ €(con+a_con_end)*2end$€30œö €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: ( !€€$Christopher/Christine Fischer CravenRplayer€ Appearance:I !€€zAge: mid 30's Gender: player's choice Hair: brown, med. Eyes: brown, lt. Height: 5'7" Build: average Race: CaucasianR= appearance€ Background:aI !€€Chris Craven is an eccentric, but reputable, private investigator, specializing in missing persons. Clairvoyant from birth, Chris learned early not to admit to paranormality, but appreciates the edge it provides in investigations. Like most telempaths, Chris is uncomfortable in crowds and dislikes being around death. Chris was born with the paranormal abilities, and is well-adjusted. The powers are something of a secret. Some people are uncomfortable around telempaths. It's only fair. Chris is uncomfortable around some people. It's not always fun to hear other people's hysteria. Chris maintains an office in the outskirts of Hellenback and a house an hour into the 'burbs. The secretary, Liz, is shared with a two-person accounting firm in the same office building.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˜(€„„%€ 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õ%€€