7WCharacter Sheet file v. 1B€HeroŒ€3Champions character template with superhero limits.€ CharacterK€Hero.hlpn€ê€Š€ÈI€l€dround((c + a)*m)H€€3€_ßÿÿÿÿ €12/29/2000 16:32:32€.€hero.cds€J€ Champions.cst5€hero.fltr€ €€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~€`€"(€ÿÿÿÿû}€%0r!Cost%7l!Skill%-5r!Roll*€%0rc%7ln€Absolute Time Sensev€€TalentL€Absolute Time Sensem€Skillsl€ totalcost(@bc@,a,@mo@,@fm@,@fd@)*€%0rx|ct(0)|%7ln0€%0ln%-25ll%-4rc€@@|€@@€ Martial Grabv€€Martial ManeuverL€ Martial Grabm€Skills€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‹€format('l: %+d', o)‰€€€€DCV??-1‹€format('l: %+d', o)‰€€€8€Damage)format('STR %d',total_STR+10+martialDC*5)‰€€€€3€@@|€@@€ Martial Grab€ Combat Level€ Combat LevelL€ Single Attackm€Skills€ round(2*x))€x>=1*€%0rx|ct(0)|%7l!+^v level w/^n0€%0ln%-25ll%-10r!2 per +17€€€Type?:1;HTH;Ranged‰€€€€8€€A|€€A€Control Revenge Talent€ Skill;Generic€GeneralL€ Generic Skillm€Skills€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+€ genericskill7€€€Type=?:3;General;Background;INT;DEX;PRE;EGO;STR;CON;BODY;COM;Focus‰€€€€Base ??0;0;x;x>0;‰€€€€Increase ??2;2;x;x>0;‰€€€€21€˜A|€˜A€ Breakfall€ Skill;DEX€DEXL€ Breakfallm€Skills€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+€ breakfall€15€@@|€@@€ Acrobatics€ Skill;DEX€DEXL€ Acrobaticsm€Skills€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+€ acrobatics€15€@@|€@@€Combat Driving€ Skill;DEX€DEXL€Combat Drivingm€Skills€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+€ combatdriving€15€@@|€@@€ Seduction€ Skill;PRE€PREL€ Seductionm€Skills€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+€ Seduction€13€@@|€@@€ Interrogation€ Skill;PRE€PREL€ Interrogationm€Skills€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€@@|€@@€ Persuasion€ Skill;PRE€PREL€ Persuasionm€Skills€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+€ persuasion€13€@@|€@@€ Shadowing€ Skill;General€GeneralL€ Shadowingm€Skills€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'‰€€€€11€@@|€@@,€Assassin's Guild-€€ Coordination€ Skill;Generic€GeneralL€ Generic Skillm€Skills€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+€ genericskill7€€€Type=?:3;General;Background;INT;DEX;PRE;EGO;STR;CON;BODY;COM;Focus‰€€€€Base ??3;3;x;x>0;‰€€€€Increase ??2;2;x;x>0;‰€€€€13€@@|€@@€Knowledge Skill: SAT Tactics€Skill;Knowledge€ BackgroundL€Knowledge Skillm€Skills€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€@@|€@@€Immunity: Mercury€TalentL€Immunitym€Skills€ 1+(x-1)*1l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ x>0 and x<4*€%0rx|ct(0)|%7l!^n0€%0ln%-25ll%-10r!1-37€8€ Frequency,qindex(x, 'Rare', 'Fairly Common', 'Common')€€2€@|€@€Knowledge Skill: VIPER€Skill;Knowledge€ BackgroundL€Knowledge Skillm€Skills€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€@@|€@@€€ÿÿ‡€w€€…€€ListL€ Package Deall€ totalcost(@bc@,a,@mo@,@fm@,@fd@)*€6%0rx|ct(0)|%6lx|sl(0)|^n (^x|itemInfo('@childcost@')|)0€%0ln%-22lt%-10r!List7€€8€Total cost of itemsitemInfo('@childcost@')‰€€€€ @|€ @€ €Powers/€Powers†€€powersoCD€%0rx'Powers'%7l!TotalC€P%€ MS Sans Serif~€`€"(€Eû}€%0r!Cost%7l!Power%-5r!END*€%0rc%7ln,€Elemental Control-€€Mental Defense€mentalDef+`Add to Total`*x€MentalL€Mental Defensem€Powers€ x+0*total_egol€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=5,c)*€M%0rx|ct(0)|%7lx|sl(0)|^n (^x|`Add to Total`?t_mentalDef:@v@| pts)%-5rx'de(0)'0€%0ln%-22lt%-10r!1 per pt£€MD+€ mentaldefense7€€€ Add to Total?+1;‹€'l'€€€7€à@|€A€Damage Resistance€StandardL€Damage Resistancem€Powers€dround(x*(takesNoStun?3:1)/2)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!½RD£€Dmg Res+€power7€€y€PDDRpd+(`Affect Totals`?x:0)15‰€€€y€EDDRed+(`Affect Totals`?x:0)15‰€€€€ Affect Totals?+1;‹€'l'‰€€€<€Hardened??1;¼;x/4;x>0;‹€format('l: ×%d, o', o*4)€€€30€pA|€0A€Flight€MovementL€Flightm€Powers€ 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"+€power7€€8€END moveEnd(x)‰€€€>€Non-Combat Multiplier??5;20;(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€<€ Increased END7?:1;×2,-½;×3,-1;×4,-1½;×5,-2;×6,-2½;×7,-3;×8,-3½;×10,-4€€15€ðA|€àA€ Regeneration€SpecialL€ Regenerationm€Powers€ dround(x*10)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>=1,c)*€7%0rx|ct(0)|%7lx|sl(0)|^n (^v BODY/^o'Rate')%-5rx'de(0)'0€%0ln%-22lt%-10r!10/BODY£€Regen+€power7€€<€RateA?:1;Turn,+0;min.,-¼;5 min.,-½;hour,-¾;5 hours,-1;day,-1¼;week,-1½‰€€>€ Regenerate8?:1;Standard,+0;Lost Limbs and Organs,+10;From Death,+20€€1€ A|€A€ Transform€StandardL€ Transformm€Powers€ dround(x*5)l€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x>0,c)*€F%0rx|ct(0)|%7lx|sl(0)|^vd6 ^n (^o'Type', ^o'Transform to')%-5rx'de(0)'0€%0ln%-22lt%-10r!5/1d6+€power7€€8€END endCost(1,10)‰€€8€Rangerf(5)€=€Type?:3;Cosmetic,1;Minor,2;Major,3‰€€€<€ Transform to1?:1;Single Object,+0;Limited Class,+¼;Anything,+1‰€€<€ Cumulative?+1;+½€ DescriptionSmaller version of self<€,Limited Power: Beam only works after sundown-¾<€Gestures&?:1;Instant Power,-¼;Constant Power,-½<€%Limited Power: Cuts off with sunlight-½€€4€ A|€B€‡€ˆ€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€A|€A€Revenge Talent€ 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 Only in Certain Circumstance-½<€No Choice of how Powers Change-½<€#Restricted Type of Powers Available-½€€50€HB|€pB,€Variable Power Pool Powers-€€€ÿÿG€w€€…€€ListL€Variable Power Pool Powersl€totalcost(@bc@,a,1,1,1)*€%0rx|ct(0)|%6lx|sl(0)|^n0€%0ln%-22lt%-10r!List€Discriminatory Sensev€€Enhanced SenseL€Discriminatory Sensem€Powers€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+€power7€€€SenseÖ?:9;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€ @|€ @€Targeting Sensev€€Enhanced SenseL€Targeting Sensem€Powers€xl€ totalcost(@bc@,a,@mo@,@fm@,@fd@))€ ce(x=20,c)*€0%0rx|ct(0)|%7lx|sl(0)|^n (^o'Sense')%-5rx'de(0)'0€%0ln%-22lt%-10r!20+€power7€€€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‰€€€<€ Activation4?:2;15-,-¼;14-,-½;12-,-¾;11-,-1;10-,-1¼;9-,-1½;8-,-2£€Act€€€20€ A|€PA,€ Multipower-€€Energy Blast: Scatterway€StandardL€ Energy Blastm€Powers€ 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€€€ Multipower?:2;Variable Slot;Fixed Slot£€MP€<€-Limited Power: Requires Coordination with Fox-1<€ Increased END7?:2;×2,-½;×3,-1;×4,-1½;×5,-2;×6,-2½;×7,-3;×8,-3½;×10,-4€<€Autofire??1;½;(x+1)/4;x>0;£€AF‹€"format('l: %d shots, o', (o*20)-5)€€€8€ B|€@€Energy Blast: Darkfyre€StandardL€ Energy Blastm€Powers€ 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€€Special EffectGravity€€ Multipower?:2;Variable Slot;Fixed Slot£€MP€<€-Limited Power: Requires Coordination with Ion-1<€%No Normal Defense (Cold Based Powers)+1€€6€ðA|€@@€‡€ˆ€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)£€MP+€lÆB€pB|€pB€ € Disadvantages/€ Disadvantages€ disadvantages*CD€%0rx'disadvantages'%7l!TotalC€D%€ MS Sans Serif~€`€"(€ÿÿÿÿû)€D!ConfigParam('CheckDisadLimit') or disadvantages <= MaxDisadvantagesM€)Maximum points in disadvantages exceeded.}€%0r!Pts%7l!Disadvantage*€%0rc%7ln€Psych. Lim.: Arrogentv€€ 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‰€€€|€pA€Psych. Lim.: Toys with her preyv€€ 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‰€€€|€pA€Public Identity: Minkv€€IdentityL€Public Identityl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€ %0ln%-10rc£€ Public ID1€!Secret Identity€ A|€ A€Reputation: Assassin's Guildv€€ ReputationL€ Reputationl€round((c+a)*m)*€8%0rx|ct(0)|%7l!^n (^o'Recognized'^x|optOption('Level')|)0€%0ln%-10r!Varies£€Rep7€€>€ Recognized?:3;8-,5;11-,10;14-,15‰€€€>€Level?:2;Standard,+0;Extreme,+5‰€€€|€ A€Other: Married to Foxv€„€€ Villain BonusL€ Villain Bonusl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€ %0ln%-10rc€ A|€ A€Hunted: S.A.T.v€€HuntedL€Huntedl€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?: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€|€pA€*Distinctive Features: Viciously attractivev€€Distinctive FeaturesL€Distinctive Featuresl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€%0ln%-10r!Varies£€DF7€€>€Concealability.?:3;Easily,5;Concealable,10;Not Concealable,15£€Conc€>€ReactionN?:3;Noticed and Recognizable,+0;Always noticed & major reaction,+5;Extreme,+10€|€ÈA€*Distinctive Features: Anthropomorphic Minkv€€Distinctive FeaturesL€Distinctive Featuresl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€%0ln%-10r!Varies£€DF7€€>€Concealability.?:3;Easily,5;Concealable,10;Not Concealable,15£€Conc€>€ReactionN?:3;Noticed and Recognizable,+0;Always noticed & major reaction,+5;Extreme,+10€|€ÈA€"Berserk: When marriage is insultedv€€BerserkL€Berserkl€round((c+a)*m)*€R%0rx|ct(0)|%7l!^n (^o'Chance to Go Berserk', ^o'Chance to Recover', ^o'Intensity')0€%0ln%-10r!Varies7€>€ Circumstances*?:1;Uncommon,+5;Common,+10;Very Common,+15€>€Chance to Go Berserk?:3;8-,+0;11-,+5;14-,+10‰€€€>€Chance to Recover?:2;14-,+0;11-,+5;8-,+10‰€€€=€ Intensity?:2;Berserk,×1;Enraged Only,×½‰€€€|€ A€ Other: Plushv€„€€ Villain BonusL€ Villain Bonusl€round((c+a)*m)*€%0rx|ct(0)|%7ln0€ %0ln%-10rc€pA|€pA€Vulnerability: Hearing Flashesv€€ 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?:1;1½×,×1;2×,×2‰€€€=€Characteristic.?:3;STUN,×1;BODY,×1;Effect,×1;STUN and BODY,×2‰€€€|€ 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: "!€€Mink+Name€ Experience:#;!€€]t_powers+t_char>t_disadv+basePoints ? min(t_exp,t_powers+t_char - (t_disadv+basePoints)) : 0C# "€ experience€/\# !€$€200d")€x>=04€t_exp$€30L STR$€32d DEX$€18| CON$€19• BODY$€21­ INT$€13Æ EGO$€20Þ PRE$€30ö COM$€16œ| €rnd5(str+a_str_pd)PD$€15œ” €rnd5(con+a_con_ed)ED$€5.0œ¬ €1+(dex+a_dex_spd)/10SPD$€20œÅ €'rnd5(str+a_str_rec)+rnd5(con+a_con_rec)rec$€70œÝ €(con+a_con_end)*2end$€80œö €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: ( !€€Rplayer€ Appearance:I !€€R= appearance€ Background:aI !€€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!€$€100/€'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€€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õ%€€