• Please note: In an effort to ensure that all of our users feel welcome on our forums, we’ve updated our forum rules. You can review the updated rules here: http://forums.wolflair.com/showthread.php?t=5528.

    If a fellow Community member is not following the forum rules, please report the post by clicking the Report button (the red yield sign on the left) located on every post. This will notify the moderators directly. If you have any questions about these new rules, please contact support@wolflair.com.

    - The Lone Wolf Development Team

M&M 3rd ed. Bug- Growth not adding ranks to toughness

monkey-x

New member
When creating a hero with no stamina such as a giant robot, growth doesn't add ranks to toughness as it should do.

A giant robot with growth 8, no stamina score and protection 2 is only recorded as having toughness 2 not the 10 it is supposed to have.
 
Re-raising an unanswered bug. I'll admit that I haven't tested to see if this is still the case in 3E.
 
Came to report this bug. You said it was fixed in September of 2012, but it's not working for me in July of 2015 -- though I am on a Mac. Could that be an issue?

Strangely, Growth ranks past those divisible by 4 do add to Toughness, though it resets at the next Size category. For example: Growth 8 gives no Toughness while Growth 9 gives 1, Growth 10 gives 2, Growth 11 gives 3, and Growth 12 gives none again.
 
Not an official employee, but this is working for me at the moment. I have a character with no Stamina and Protection 2. Giving him Growth 2 gives him +4 Toughness. Growth 8 gives him +10 Toughness. It should be adding one per rank of Growth. You do have the January 13th (version 3.5) update, right?

The other thing to do is to look at the Eval Script code for Growth. It should look like the following (since it's visible in even the demo version, I assume there's no problem posting this):

Code:
      ~ Calculate our bonuses
      var strbonus as number
      var stabonus as number
      var intimbonus as number
      var activepen as number
      var stealthpen as number
      var speedbonus 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
      if (tagis[Helper.GrwNoDefs] = 0) then
        activepen = round(field[pwRanks].value / 2, 0, -1)
        endif

      ~ Calculate our growth amount - every 4 ranks gives us a size increase
      var sizebonus as number
      if (tagis[Helper.GrwNoSize] = 0) then
        sizebonus = minimum(field[pwRanks].value, 20) / 4
        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)
      if (tagis[Helper.GrwNoSpeed] = 0) then
        speedbonus = round(sizebonus / 2, 0, -1)
        endif
      
      
      ~ Calculate our speed penalty - this is 1/4 our power ranks
      if (tagis[Helper.GrwSpdPen] <> 0) then
        speedbonus = - round(field[pwRanks].value / 4, 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
        var speedtext as string
        speedtext = signed(speedbonus) & " speed ranks"
        field[pwInfo].text = splice(field[pwInfo].text, speedtext, ", ")
        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)
      
      ~If we're a stacking power, stop here
      doneif (tagis[Internal.StackWith] <> 0)
      
      ~Apply our knockback modifier
      var knockmod as string
      knockmod = field[pwRanks].value
      perform hero.child[Knockback].field[PowerTemp].modify[-,knockmod,""]

      ~ 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
      
      ~ Apply our speed penalty
      if (tagis[Helper.GrwSpdPen] <> 0) then
        hero.child[Movement].field[Value].value += speedbonus
        endif

Lastly, the way you're referring to things increasing for every 4 ranks makes me wonder if maybe you're referring to something else. Size increases by 1 for every 4 ranks. Movement every 8... is one of those what you're looking for?
 
Last edited:
Not an official employee, but this is working for me at the moment. I have a character with no Stamina and Protection 2. Giving him Growth 2 gives him +4 Toughness. Growth 8 gives him +10 Toughness. It should be adding one per rank of Growth. You do have the January 13th (version 3.5) update, right?

I do have that update installed.

...

Lastly, the way you're referring to things increasing for every 4 ranks makes me wonder if maybe you're referring to something else. Size increases by 1 for every 4 ranks. Movement every 8... is one of those what you're looking for?

I'll look at the code, I suppose, but I didn't buy the program so I'd have something to fix...

Anyway, on my machine, if I add 1 rank of Growth to a character with no Stamina (regardless of any Protection ranks), his Toughness rises by 1. Great. That's how it's supposed to work. Growth 2 adds 2 Toughness and if I add 3 ranks of Growth, I get 3 Toughness. So if works fine for the first three ranks of Toughness.

But if I add 4 ranks of Growth, no Toughness is added. Toughness is reset to zero. Then it starts over: 5 ranks of Growth add 1 Toughness, 6 ranks add 2 and 7 ranks add 3 Toughness.

Look, it works like this: column A is ranks of Growth and column B is Toughness added

A | B
1 | +1
2 | +2
3 | +3
4 | 0
5 | +1
6 | +2
7 | +3
8 | 0
9 | +1
etc.

With the end result being a Robosaurus Rex (Growth 10) with a Toughness of 2. Since it's an NPC I can just add Protection levels to get it where I want and the point inflation doesn't really matter, but a PC robot-summoner couldn't use Hero Lab for his robots (on my machine, anyway).

So yeah: I'm talking about Toughness, not Size or Movement -- though clearly the size-granting ranks are significant to this problem.
 
Ahah! You built your construct by manually lowering your Stamina to "-" instead of setting him as a Construct via the Configure Hero screen? That method does indeed yield no Stamina increase for Growth. Which is odd, because the NoScore attribute comes up as set, but that's why they call them bug reports. I advise lodging a bug via the FogBugz interface, noting the exact circumstances where it shows up (especially if I guessed right that you changed the Stamina value manually).
 
Ahah, indeed. Good eye. I was building a minion under the dashboard when I noticed it, and had lowered Stamina manually. I normally do anyway because I like being able to name the immunities or put them in a 'Robotic Body' multiple effect group and stuff.

Anyway, thanks. I did turn it in, so we'll see if it changes in the next update.
 
Back
Top