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 11:50:15€.€hero.cds vehicle.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); } € vertPict(x)s{ local n; n = split(dialogFieldValue('Picture', 'Picture'), 'x', '_picX', '_picY'); return _picX < _picY; }€ €Skills/€Skills€skills”BD€%0rx'skills'%7l!TotalC€S%€ MS Sans Serif~€`€"(€âíï}€%0r!Cost%7l!Skill%-5r!Roll*€%0rc%7ln€Crammingv€€TalentL€Crammingl€ totalcost(@bc@,a,@mo@,@fm@,@fd@)*€%0rx|ct(0)|%7ln0€%0ln%-25ll%-4rc€0€ @|€ @€Luck€TalentL€Luck€ 5+(x-1)*5l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€c>=5*€%0rx|ct(0)|%7l!^n (^vd6)0€%0ln%-25ll%-10r!5/d6€2€ A|€ A€ 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??:2;Self,+0;Immediate Vicinity,+5;General Area,+10;Anywhere,+15<€OIF-½€€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€11€@@|€@@€Computer Programming€ Skill;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€13€@@|€@@€ Concealment€ Skill;INT€INTL€ Concealment€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+€ concealment7€€€Everyman?+1;‹€'l'‰€€€€13€@@|€@@€Gambling€ Skill;General€GeneralL€Gambling€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+€Gambling€13€à@|€à@€KS: Statistics€Skill;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?:2;Background;INT‰€€€€13€@@|€@@€Security Systems€ Skill;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€14€ @|€ @€Sleight of Hand€ Skill;DEX€DEXL€Sleight of Hand€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+€ sleightofhand€15€A|€A€Systems Operation€ Skill;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€15€à@|€à@€ KS: Trivia€Skill;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?:2;Background;INT‰€€€€16€À@|€À@€ €Powers/€Powers€powersöBD€%0rx'Powers'%7l!TotalC€P%€ MS Sans Serif~€`€"(€eq.ñ}€%0r!Cost%7l!Power%-5r!END*€%0rc%7ln€Instant Changev€ƒ€€SpecialL€Instant Change€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=0,c)*€$%0rx|ct(0)|%7lx|sl(0)|^n%-5rx'de(0)'0€%0ln%-22lt%-10r!5-10+€power7€>€Clothes?:2;One Set,5;Any Set,10<€OIF-½€€0|€à@€ Teleportationƒ€€MovementL€ Teleportation€ dround(x*2)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=10,c)*€D%0rx|ct(0)|%7lx|sl(0)|^v" ^n (Long Range ^o'Long Range')%-5rx'de(0)'0€%0ln%-22lt%-10r!2 per 1"£€TPort+€power07€€8€END moveEnd(x)‰€€€>€Increased Range??1;0;(x-1)*5;x>0;‹€!format('l: ×%d, +o', twoN((o)/5))€8€ Long Range>`No Non-Combat`?'--':format('%n"',x*twoN(`Increased Range`/5))8€Long Range (miles)/format('%2n',x*twoN(`Increased Range`/5)/804.7)€>€Mass Multiplier??1;0;(x-1)*5;x>0;£€Mass‹€!format('l: ×%d, +o', twoN((o)/5))€>€Fixed Locations ??0;0;x;x>=0;>€Floating Locations??0;0;x*5;x>=0;<€OIF-½€€15€ðA|€ A€Variable Power Pool€ FrameworkL€Variable Power Pool€xl€dround((dround(@v@/2)+a)*m)+@v@)€x>0*€%0rc%7ln (^v-pt Pool)0€%0ln%-22lt%-10r!Varies£€VPP7€8€ Control Cost dround(x/2)<€Change Powers as 0 Phase Action+1€<€No Conscious Control-2£€NCC€<€OIF-½€€75€–B|€ÀB€ € Disadvantages/€ Disadvantages€ disadvantagesCD€%0rx'disadvantages'%7l!TotalC€D%€ MS Sans Serif~€`€"(€ØøLó)€D!ConfigParam('CheckDisadLimit') or disadvantages <= MaxDisadvantagesM€)Maximum points in disadvantages exceeded.}€%0r!Pts%7l!Disadvantage*€%0rc%7ln€Compulsive Gamblerv€€ 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*?:1;Uncommon,+5;Common,+10;Very Common,+15‰€€€>€ Intensity#?:2;Moderate,+0;Strong,+5;Total,+10‰€€€€0|€ A€Cynicv€€ Psych. Lim.L€Cowardl€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: Significant Otherv€€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€Hunted: Ambitious Magesv€€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?:2;Mild,-5;Harsh,0€€0|€ A€Hunted: Evil Cultistsv€€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?:2;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?:2;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€+Phys. Lim.: Visual and Auditory distortionsv€€ 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€Secret Identityv€€IdentityL€Secret Identityl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€ %0ln%-10rc£€ Secret ID1€!Public Identity€0€pA|€pA€Slackerv€€ Psych. Lim.L€Greedyl€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€ Squeamishv€€ 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#?:2;Moderate,+0;Strong,+5;Total,+10‰€€€€0|€pA€Watched: Parapsychologistsv€€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|€ @€ € Equipment/€ Equipment€ equipmentD€.%0rx'equipment'%9l!Totals (^x'equipweight' kg)9€CostC€E%€ MS Sans Serif~€`€"(€šš0ñ}€%0r!Cost%7l!Equipment*€%0rc%7ln€&€Characteristics4(€nn†€%€ 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: "!€€Facet+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$€10L STR$€13d DEX$€13| CON$€10• BODY$€18­ INT$€10Æ EGO$€10Þ PRE$€14ö COM$€2œ| €rnd5(str+a_str_pd)PD$€3œ” €rnd5(con+a_con_ed)ED$€3œ¬ €1+(dex+a_dex_spd)/10SPD$€6œÅ €'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: ( !€€Morgan AnselkinRplayer€ Appearance:I !€€zAge: 20's Gender: Player's Choice Hair: Brown, med. Eyes: Brown, lt. Height: 5'9" Build: slender Race: IndeterminateR= appearance€ Background:aI !€€åMorgan dropped out of college in the junior year. It just wasn't what Morgan wanted. So it was time for a little wandering. Well, Morgan had always been pretty good at poker, so falling into that barside poker game didn't seem like much. Everybody at the table had an awful lot to drink. Except this one funny guy in the corner. Against the laws of nature, the sober guy just kept losing and losing. If the rest of the group could have conceived of such a thing, they might have thought he was trying to lose. Finally, the guy had nothing left but a beat-up looking old pendant. With a great show of reluctance, he put it into the pot. Morgan won that round and the guy went off. Morgan woke up with a pounding hangover, the amulet-thingy, and a horde of red-robed lunatics trying to commit homicide. Morgan barely escaped alive. They've been on the hunt ever since. Morgan discovered that the amulet had magic powers and could make disguises, teleport, and other nifty things. Morgan now lives in the basement of the Downtown Racquetball and Swim Club and has the superhero identity of Facet. This setup seems a little silly to Morgan, but at least if the crazy guys in red attack, they'll have to go through a lot of other heros first.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ú((€BB%€ MS Sans Serif~€C€TT€Pictureõ%€€