Senior Member
Join Date: Nov 2008
Location: Jonesboro, Arkansas
Posts: 150
|
I'm wanting to make Growth and Shrinking where they alter size category every 3 ranks instead of every 4 because I like the Cube/Square Law (Every mass increase by a factor of 8, which would be 3 ranks, doubles size, which would be 1 size category increase).
So this would be altered fluff for Growth: Each rank of Growth adds 1 rank to your Strength and Stamina (constructs add 1 rank to Strength and Toughness if they lack Stamina) and adds 1 rank to your mass. Every two ranks adds a +1 bonus to Intimidation. Every 6 ranks adds 1 to your Speed. Every rank of Growth subtracts 1 from your Stealth checks. Every 2 ranks (rounded up) subtracts 1 from your Dodge and Parry defenses. Every 3 ranks of Growth increases your size rank by 1 (ordinary humans start out at size rank -2, between 3 and 6 feet tall). So at Growth 6, you have +6 Strength and Stamina, +3 to Intimidation, +1 Speed, but -6 to Stealth, -3 Dodge and Parry, and you are size rank 0 (around 24 feet tall). Increases to your Strength and Stamina also improve related traits like your Strength Damage, Fortitude, and Toughness. I copied the Growth power over and fiddled with it as follows: ~ Calculate our bonuses var strbonus as number var stabonus as number var intimbonus as number var activepen as number var stealthpen as number if (tagis[Helper.GrwNoAbil] = 0) then strbonus = field[pwRanks].value stabonus = field[pwRanks].value endif if (tagis[Helper.GrwNoSkill] = 0) then intimbonus = round(field[pwRanks].value / 2, 0, -1) stealthpen = field[pwRanks].value endif activepen = round(field[pwRanks].value / 2, 0, -1) ~ Calculate our growth amount - every 3 ranks gives us a size increase var sizebonus as number if (tagis[Helper.GrwNoSize] = 0) then sizebonus = minimum(field[pwRanks].value, 20) / 3 sizebonus = round(sizebonus, 0, -1) endif ~ Calculate our speed bonus - this is half our size ranks, although we ~ don't actually apply it here (since it's applied automatically by our ~ size change) var speedbonus as number if (tagis[Helper.GrwNoSpeed] = 0) then speedbonus = round(sizebonus / 2, 0, -1) endif ~ Work out if we get a Toughness bonus instead of a Stamina bonus var istough as number istough = hero.child[attrSta].tagis[Helper.NoScore] ~ Set our descriptive text if (strbonus <> 0) then field[pwInfo].text = "+" & strbonus & " STR" endif if (stabonus <> 0) then var temp as string if (istough <> 0) then temp = " Tough" else temp = " STA" endif field[pwInfo].text = splice(field[pwInfo].text, "+" & stabonus & temp, ", ") endif if (intimbonus <> 0) then field[pwInfo].text = splice(field[pwInfo].text, "+" & intimbonus & " Intimidate", ", ") endif if (stealthpen <> 0) then field[pwInfo].text = splice(field[pwInfo].text, "-" & stealthpen & " Stealth", ", ") endif if (activepen <> 0) then field[pwInfo].text = splice(field[pwInfo].text, "-" & activepen & " active defenses", ", ") endif if (sizebonus > 0) then field[pwInfo].text = splice(field[pwInfo].text, "+" & sizebonus & " size categor", ", ") if (sizebonus = 1) then field[pwInfo].text &= "y" else field[pwInfo].text &= "ies" endif endif if (speedbonus <> 0) then field[pwInfo].text = splice(field[pwInfo].text, "+" & speedbonus & " speed ranks", ", ") endif ~ If we're not active, or if we're using an "attack only" version of this ~ power, there are no stat changes to apply doneif (activated = 0) doneif (tagexpr[Helper.AttackOnly | Helper.OthersOnly] <> 0) ~ We don't want to apply our bonuses twice, so for each size category we ~ grow, we lose 4 str / sta, 2 intimidate, and gain 2 active defenses ~ back. if (tagis[Helper.GrwNoAbil] = 0) then strbonus -= sizebonus * 4 stabonus -= sizebonus * 4 endif if (tagis[Helper.GrwNoSkill] = 0) then intimbonus -= sizebonus * 2 stealthpen -= sizebonus * 4 endif activepen -= sizebonus * 2 ~ Apply ability bonuses var v_mod as number perform hero.child[attrStr].setfocus v_mod = strbonus call ApplyPwEff if (istough <> 0) then perform hero.child[defTough].setfocus else perform hero.child[attrSta].setfocus endif v_mod = stabonus call ApplyPwEff ~ Apply skill bonuses perform hero.child[skIntim].setfocus v_mod = intimbonus call ApplyPwEff perform hero.child[skStealth].setfocus v_mod = -stealthpen call ApplyPwEff ~ Apply active defense penalties v_mod = -activepen perform hero.child[defDodge].setfocus call ApplyPwEff perform hero.child[defParry].setfocus call ApplyPwEff ~ Apply negative bonuses to all strength-based skills with the 'grow ~ exempt' tag, since they don't get any bonuses from Growth. Bonuses from ~ abilities always count as permanent, so we need to always apply a ~ permanent modifier to counter them. var v_forceprm as number v_mod = -1 * field[pwRanks].value v_forceprm = 1 foreach pick in hero from Skill where "SklExempt.pwGrowth" perform eachpick.setfocus call ApplyPwEff nexteach v_forceprm = 0 ~ Apply our size change perform hero.child[Size].setfocus v_mod = sizebonus call ApplyPwEff I keep getting the error: (line 13) - Thing 'pwGrowRev' - Value given for attribute 'index' does not satisfy range requirements Is there any way to make this viable where it will work like I want it? |
#1 |
Senior Member
Join Date: Jan 2007
Location: NW Arkansas
Posts: 1,321
|
I think I've gotten this before too when copying a power with scripts. Check the numbering of the scripts on the power. It should start with number 1 and go from there. If you just have one script, it should be number 1.
|
#2 |
|
|