7WCharacter Sheet file v. 1B€HeroŒ€3Champions character template with superhero limits.€ CharacterK€Hero.hlpn€ê€Š€ÈI€l€dround((c + a)*m)H€€3€_ßÿÿÿÿ €02/02/2000 13:24:04€.€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""—€€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~€`€"(€‚‡¡}€%0r!Cost%7l!Skill%-5r!Roll*€%0rc%7ln€Computer Programming€INT€INTL€Computer Programming€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+€computerprogramming€18€0A|€0A€ PS: Professor€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/?:1;Background;INT;DEX;PRE;STR;CON;BODY;EGO;COM‰€€€€16€à@|€à@€ Electronics€General€GeneralL€ Electronics€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+€ electronics€16€PA|€PA€Research€ScienceL€Science€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£€SC+€science7€€€Type?:1;Background;INT‰€€€€16€À@|€À@€Computer Science€ScienceL€Computer Science€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+€science7€€€Type?:2;Background;INT‰€€€€ 15.000000€@@|€@@€Security Systems€INT€INTL€Security Systems€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+€securitysystems€16€à@|€à@€Systems Operation€INT€INTL€Systems Operation€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+€sysop€14€@@|€@@€Robotics€ScienceL€Robotics€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+€science7€€€Type?:2;Background;INT‰€€€€ 14.000000€@|€@€Stealth€DEX€DEXL€Stealth€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+€Stealth7€€€Everyman?+1;‹€'l'‰€€€€15€ @|€ @€ Cryptography€INT€INTL€ Cryptography€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+€ Cryptography€14€@@|€@@€Contact: Aegis€ 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€€13€€@|€ @€KS: Strategy Games (Chess, Go)€ Knowledge€ BackgroundL€Knowledge 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+€knowledgeskill7€€€Type?:1;Background;INT‰€€€€11€@|€@€Knowledge Skill: RPGs€ Knowledge€ BackgroundL€Knowledge 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+€knowledgeskill7€€€Type?:1;Background;INT‰€€€€11€@|€@€Knowledge Skill: 0-G combat€ Knowledge€ BackgroundL€Knowledge 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+€knowledgeskill7€€€Type?:1;Background;INT‰€€€€8€€?|€€?€ Contact: SDI€ 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?:1;Normal,+0;Very,+1;Extremely,+2;Incredibly,+3€€8€€?|€€?€ Martial 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)‰€€€€4€€@|€€@€Tight Group: Electricity€ Combat Level€ Combat LevelL€ Tight Group€ round(3*x))€x>=1*€%0rx|ct(0)|%7l!+^v level w/^n0€%0ln%-25ll%-10r!3 per +17€€€Type?:1;HTH;Ranged‰€€€€4€@A|€@A€ Martial Grabv€€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€@@|€@@€ Scientist€"Skills:Science"+1v€€Skill Enhancer€ScienceL€ Scientist*€%0rx|ct(0)|%7ln0€%0ln%-25ll%-4rc€0€@@|€@@€Ph.D. (Electrical Engineering)v€€PerkL€Professional License*€%0rx|ct(0)|%7ln0€ %0ln%-10rc€0€€?|€€?€Crammingv€€TalentL€Crammingl€ totalcost(@bc@,a,@mo@,@fm@,@fd@)*€%0rx|ct(0)|%7ln0€%0ln%-25ll%-4rc€0€ @|€ @€ €Powers/€Powers€powersöBD€%0rx'Powers'%7l!TotalC€P%€ MS Sans Serif~€`€"(€0 G÷}€%0r!Cost%7l!Power%-5r!END*€%0rc%7ln,€ Multipower-€€Flightƒ€€MovementL€Flight€ dround(x*2)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=5,c)*€F%0rx|ct(0)|%7lx|sl(0)|^v" ^n (NC: ^o'Non-Combat Movement')%-5rx'de(0)'0€%0ln%-22lt%-10r!2 per 1"+€power37€€8€END moveEnd(x)‰€€€>€Non-Combat Multiplier??1;0;(x-1)*5;x>0;‹€#format('l: ×%d, +o', twoN((o)/5+1))€€8€Non-Combat MovementF`No Non-Combat`?'--':format('%d"',x*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€<€ Surfaces only-½<€Only Along Metal-½€€ Multipower?:1;Variable Slot;Fixed Slot£€MP‰€€8€ Active Pointsap(@bc@,@a@,@mo@,@fm@)€€35€ŒB|€À@€ 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+€power27€€8€END endCost(1,10)‰€€€y€PDrpd+(`Affect Totals`?x:0)25‰€€€y€EDred+(`Affect Totals`?x:0)25‰€€€€ Affect Totals?+1;‹€'l'‰€€€€ Multipower?:1;Variable Slot;Fixed Slot£€MP‰€€8€ Active Pointsap(@bc@,@a@,@mo@,@fm@)€€50€HB|€A€ 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+€power07€€8€END endCost(1,10)‰€€8€Rangerf(5)€€Versus ?:1;ED;PD£€vs€€<€ Damage Shield+½£€DS€€€ Multipower?:1;Variable Slot;Fixed Slot£€MP‰€€8€ Active Pointsap(@bc@,@a@,@mo@,@fm@)€€10€HB|€pA€ 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+€power17€€8€END endCost(1,10)‰€€8€Rangerf(5)€€Versus ?:1;ED;PD£€vs€€€ Multipower?:1;Variable Slot;Fixed Slot£€MP‰€€8€ Active Pointsap(@bc@,@a@,@mo@,@fm@)€€12€pB|€ A€Desolidificationv€ƒ€€StandardL€Desolidification€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=40,c)*€$%0rx|ct(0)|%7lx|sl(0)|^n%-5rx'de(0)'0€%0ln%-22lt%-10r!40£€Desolid+€power7€€8€END endCost(1,10)‰€€>€Immune to Mental Powers?+0;+20€€ Multipower?:2;Variable Slot;Fixed Slot£€MP‰€€€€40€ B|€@@€‡€ˆ€w€€…€†€€ Multipower€ MultipowerL€ Multipowerl€'dround((ap(@bc@,0,@mo@,@fm@))/(1+@fd@)))€x>=20*€.%0rx|ct(0)|%5lx|sl(0)|^n (^x|@bc@|-pt reserve)£€MP7€€<€Only in Hero ID-¼£€OIHID€8€ Active Pointsap(@bc@,@a@,@mo@,@fm@)€€ŒB|€`B,€Sense Electricity-€€Sensev€ƒ€€Enhanced SenseL€Sense€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=5,c)*€<%0rx|ct(0)|%7lx|sl(0)|^n (+^o'PER Bonus' to PER)%-5rx'de(0)'0€%0ln%-22lt%-10r!3+2/PER+€power47€€>€ PER Bonus??3;6;x*2;x>=0;‹€ 'l: t, +o'‰€€>€Range?:2;Touch,+0;Ranged,+5€€5€ @|€€A€Discriminatory Sensev€ƒ€€Enhanced SenseL€Discriminatory Sense€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=5,c)*€0%0rx|ct(0)|%7lx|sl(0)|^n (^o'Sense')%-5rx'de(0)'0€%0ln%-22lt%-10r!5£€Discriminatory+€power57€€€Sense×?:17;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‰€€€€5€ @|€ @€360-Degree Sensingv€ƒ€€Enhanced SenseL€360-Degree Sensing€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=0,c)*€6%0rx|ct(0)|%7lx|sl(0)|^n (^o'Sense Group')%-5rx'de(0)'0€%0ln%-22lt%-10r!10/25+€power67€€>€ Sense GroupR?:5;Sight,10;Hearing,10;Radio,10;Smell/Taste,10;Unusual Senses,10;Mental,10;All,25‰€€€€0|€ A€†€L€Untitled7€<€ ConcentrateA?:1;½ DCV,-¼;0 DCV,-½;Throughout & ½ DCV,-½;Throughout & 0 DCV,-1€€øA|€ÈA€ € Disadvantages/€ Disadvantages†€€ disadvantagesCD€%0rx'disadvantages'%7l!TotalC€D%€ MS Sans Serif~€`€"(€-ºD<)€D!ConfigParam('CheckDisadLimit') or disadvantages <= MaxDisadvantagesM€)Maximum points in disadvantages exceeded.}€%0r!Pts%7l!Disadvantage*€%0rc%7ln€Susceptibility: Waterv€€SusceptibilityL€Susceptibilityl€round((c+a)*m)*€=%0rx|ct(0)|%7l!^n (^o'Dice' ^o'Characteristic'/^o'Frequency')0€%0ln%-10r!Varies£€Susc7€>€ Condition*?:2;Uncommon,+5;Common,+10;Very Common,+15€>€ Frequencyt?:3;Instant,+0;Segment,+15;Phase,+10;Turn,+5;Minute,0;Effect is Instant,0;5 Min.,-5;1 Hour,-10;5 Hours,-15;1 Day,-20‰€€€>€Dice;?:3;1d6,+0;2d6,+5;3d6,+10;Weak,+0;Strong,+5;Very Strong,+10‰€€€=€Characteristic-?:1;STUN,×1;BODY,×1;STUN and BODY,×2;Drain,×1‰€€€<€Only in Hero ID-¼£€OIHID€€€0|€ÀA€&Protective of Students (esp. Advisees)v€€ Psych. Lim.L€Code of Chivalryl€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€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€Publish or Perishv€€ 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$?:2;Slightly,+0;Greatly,+5;Fully,+10‰€€€€0|€pA€ Migrainesv€€ 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?:1;Infrequently,+5;Frequently,+10;All the Time,+15‰€€€>€Impairs$?:3;Slightly,+0;Greatly,+5;Fully,+10‰€€€€0|€pA€Secret Identity - Retiredv€€IdentityL€Secret Identityl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€ %0ln%-10rc£€ Secret ID1€!Public Identity€0€ A|€ A€Punsterv€€ 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#?:1;Moderate,+0;Strong,+5;Total,+10‰€€€€0|€ A€/Accidental Change: Exposure to Electric Currentv€€Accidental ChangeL€Accidental Changel€round((c+a)*m)*€(%0rx|ct(0)|%7l!^n (^o'Chance to Change')0€%0ln%-10r!Varies£€Accidental Chg7€€>€ Circumstances*?:1;Uncommon,+5;Common,+10;Very Common,+15‰€€€>€Chance to Change?:2;8-,+0;11-,+5;14-,+10‰€€€€0|€ A€$DNPC: adult step-son (Jack Duschene)v€€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?:1;8-,+5;11-,+10;14-,+15‰€€>€Skills?:1;Normal,+0;Useful,-5€€0|€ A€Watched: SDI, etc.v€€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?:1;8-,+0;11-,+5;14-,+10‰€€=€ Only Watching×½>€ Punishment?:1;Mild,-5;Harsh,0€€0|€ @€Rivalry: ex-Husbandv€€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|€ @€,Reputation: Former Member of Aegis - Retiredv€€ ReputationL€ Reputationl€round((c+a)*m)*€8%0rx|ct(0)|%7l!^n (^o'Recognized'^x|optOption('Level')|)0€%0ln%-10r!Varies£€Rep7€€>€ Recognized?:1;8-,5;11-,10;14-,15‰€€€>€Level?:1;Standard,+0;Extreme,+5‰€€€€0|€ @€3Hunted: Occasional Supervillain Who Can't Let It Gov€€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?:1;8-,+0;11-,+5;14-,+10‰€€=€Actions?:1;Hunting,×1;Only Watching,×½>€ Punishment?:1;Mild,-5;Harsh,0€€0|€ @€BDistinctive Features: Paranormal (shows up as paranormal on scans)v€€Distinctive FeaturesL€Distinctive Featuresl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€%0ln%-10r!Varies£€DF7€€>€Concealability.?:1;Easily,5;Concealable,10;Not Concealable,15£€Conc€>€ReactionN?:1;Noticed and Recognizable,+0;Always noticed & major reaction,+5;Extreme,+10€€0|€ @€ € 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: "!€€Heather Duchene (Bolt)+Name€ Experience:#;!€€]t_powers+t_char>t_disadv+basePoints ? min(t_exp,t_powers+t_char - (t_disadv+basePoints)) : 0C# "€ experience€/\# !€$€100d")€x>=04€t_exp$€13L STR$€23d DEX$€18| CON$€12• BODY$€23­ INT$€15Æ EGO$€13Þ PRE$€14ö COM$€6œ| €rnd5(str+a_str_pd)PD$€8œ” €rnd5(con+a_con_ed)ED$€5œ¬ €1+(dex+a_dex_spd)/10SPD$€9œÅ €'rnd5(str+a_str_rec)+rnd5(con+a_con_rec)rec$€45œÝ €(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\(€ 2%€ MS Sans Serif~€C€I€Player: ( !€€ Sylvia RudyRplayer€ Appearance:I !€€R= appearance€ Background:aI !€€Raestory€Weight:Ó'!€$€500Ï)*€x?x:''weight€kg\Ó!€€Height:qÓ$!€$€162—Ï$*€x?x:''height€cm¿Ó!€€Age:ÚÓ!€$€45óÏ)€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€00ö>EsexFemale;0;Male;1; ;2€Created: %@datecreated%Ì@!€€Race:}ú!!€€ Caucasian¦ö­Race€weight?kgToEnglish(weight):''0æ5 !€ weightLbs€height?cmToEnglish(height):''—æ5 !€ heightEng€&€ ConfigurationV˜(€l3%€ 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!€$€150G€'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€€®N Logoœ€%$@logoGraphic = $$Configuration.Logo;€€ logoGraphicÀg|- LogoDisplay€&€Combat Í(€\e%€ 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õ%€€