~ If we're not enabled, get out now.
doneif (field[pIsOn].value = 0)
~ If we're sizing up or not sizing yet, get out now.
doneif (field[pAdjust].value > -1)
~ Add to size - must come after race and template size set.
var origsize as number
origsize = herofield[tSize].value
herofield[tSize].value += field[pAdjust].value
~ Decrease the size of all our equipment by 1.
foreach pick in hero from MyGear where "!Helper.GearNoSize | thingid.wUnarmed"
~ & !component.BaseWep & !component.BaseArmor" (was 1/4)
eachpick.field[gSizeMod].value += field[pAdjust].value
eachpick.field[gWeight].value *= (-1 / (field[pAdjust].value * 2))
nexteach
~foreach pick in hero from MyGear where "!Helper.GearNoSize & (component.BaseWep | component.BaseArmor)"
~ eachpick.field[gSizeMod].value += field[pAdjust].value
~ eachpick.field[gWeight].value *= (-1 / (field[pAdjust].value * 2))
~nexteach
foreach pick in hero from BaseNatWep
eachpick.field[wDamage].value += field[pAdjust].value
nexteach
~ Determine changes to our abilities based on size difference.
var diff as number
diff = origsize - herofield[tSize].value
if (origsize = 4) then
if (diff = 8) then
~ -42 str, +12 dex, -18 con, -14 nat
hero.child[aSTR].field[aStartMod].value -= 42
hero.child[aDEX].field[aStartMod].value += 12
hero.child[aCON].field[aStartMod].value -= 18
hero.child[ArmorClass].field[tACNatural].value -= 14
elseif (diff = 7) then
~ -42 str, +10 dex, -18 con, -14 nat
hero.child[aSTR].field[aStartMod].value -= 42
hero.child[aDEX].field[aStartMod].value += 10
hero.child[aCON].field[aStartMod].value -= 18
hero.child[ArmorClass].field[tACNatural].value -= 14
elseif (diff = 6) then
~ -40 str, +8 dex, -18 con, -14 nat
hero.child[aSTR].field[aStartMod].value -= 40
hero.child[aDEX].field[aStartMod].value += 8
hero.child[aCON].field[aStartMod].value -= 18
hero.child[ArmorClass].field[tACNatural].value -= 14
elseif (diff = 5) then
~ -36 str, +6 dex, -18 con, -14 nat
hero.child[aSTR].field[aStartMod].value -= 36
hero.child[aDEX].field[aStartMod].value += 6
hero.child[aCON].field[aStartMod].value -= 18
hero.child[ArmorClass].field[tACNatural].value -= 14
elseif (diff = 4) then
~ -32 str, +4 dex, -16 con, -14 nat
hero.child[aSTR].field[aStartMod].value -= 32
hero.child[aDEX].field[aStartMod].value += 4
hero.child[aCON].field[aStartMod].value -= 16
hero.child[ArmorClass].field[tACNatural].value -= 14
elseif (diff = 3) then
~ -24 str, +2 dex, -12 con, -12 nat
hero.child[aSTR].field[aStartMod].value -= 24
hero.child[aDEX].field[aStartMod].value += 2
hero.child[aCON].field[aStartMod].value -= 12
hero.child[ArmorClass].field[tACNatural].value -= 12
elseif (diff = 2) then
~ -16 str, -8 con, -9 nat
hero.child[aSTR].field[aStartMod].value -= 16
hero.child[aCON].field[aStartMod].value -= 8
hero.child[ArmorClass].field[tACNatural].value -= 9
elseif (diff = 1) then
~ -8 str, -4 con, -5 nat
hero.child[aSTR].field[aStartMod].value -= 8
hero.child[aCON].field[aStartMod].value -= 4
hero.child[ArmorClass].field[tACNatural].value -= 5
endif
elseif (origsize = 3) then
if (diff = 7) then
~ -34 str, +12 dex, -14 con, -9 nat
hero.child[aSTR].field[aStartMod].value -= 34
hero.child[aDEX].field[aStartMod].value += 12
hero.child[aCON].field[aStartMod].value -= 14
hero.child[ArmorClass].field[tACNatural].value -= 9
elseif (diff = 6) then
~ -34 str, +10 dex, -14 con, -9 nat
hero.child[aSTR].field[aStartMod].value -= 34
hero.child[aDEX].field[aStartMod].value += 10
hero.child[aCON].field[aStartMod].value -= 14
hero.child[ArmorClass].field[tACNatural].value -= 9
elseif (diff = 5) then
~ -32 str, +8 dex, -14 con, -9 nat
hero.child[aSTR].field[aStartMod].value -= 32
hero.child[aDEX].field[aStartMod].value += 8
hero.child[aCON].field[aStartMod].value -= 14
hero.child[ArmorClass].field[tACNatural].value -= 9
elseif (diff = 4) then
~ -28 str, +6 dex, -14 con, -9 nat
hero.child[aSTR].field[aStartMod].value -= 28
hero.child[aDEX].field[aStartMod].value += 6
hero.child[aCON].field[aStartMod].value -= 14
hero.child[ArmorClass].field[tACNatural].value -= 9
elseif (diff = 3) then
~ -24 str, +4 dex, -12 con, -9 nat
hero.child[aSTR].field[aStartMod].value -= 24
hero.child[aDEX].field[aStartMod].value += 4
hero.child[aCON].field[aStartMod].value -= 12
hero.child[ArmorClass].field[tACNatural].value -= 9
elseif (diff = 2) then
~ -16 str, +2 dex, -8 con, -7 nat
hero.child[aSTR].field[aStartMod].value -= 16
hero.child[aDEX].field[aStartMod].value += 2
hero.child[aCON].field[aStartMod].value -= 8
hero.child[ArmorClass].field[tACNatural].value -= 7
elseif (diff = 1) then
~ -2 str, -4 con, -4 nat
hero.child[aSTR].field[aStartMod].value -= 2
hero.child[aCON].field[aStartMod].value -= 4
hero.child[ArmorClass].field[tACNatural].value -= 4
endif
elseif (origsize = 2) then
if (diff = 6) then
~ -26 str, +12 dex, -10 con, -5 nat
hero.child[aSTR].field[aStartMod].value -= 26
hero.child[aDEX].field[aStartMod].value += 12
hero.child[aCON].field[aStartMod].value -= 10
hero.child[ArmorClass].field[tACNatural].value -= 5
elseif (diff = 5) then
~ -26 str, +10 dex, -10 con, -5 nat
hero.child[aSTR].field[aStartMod].value -= 26
hero.child[aDEX].field[aStartMod].value += 10
hero.child[aCON].field[aStartMod].value -= 10
hero.child[ArmorClass].field[tACNatural].value -= 5
elseif (diff = 4) then
~ -24 str, +8 dex, -10 con, -5 nat
hero.child[aSTR].field[aStartMod].value -= 24
hero.child[aDEX].field[aStartMod].value += 8
hero.child[aCON].field[aStartMod].value -= 10
hero.child[ArmorClass].field[tACNatural].value -= 5
elseif (diff = 3) then
~ -20 str, +6 dex, -10 con, -5 nat
hero.child[aSTR].field[aStartMod].value -= 20
hero.child[aDEX].field[aStartMod].value += 6
hero.child[aCON].field[aStartMod].value -= 10
hero.child[ArmorClass].field[tACNatural].value -= 5
elseif (diff = 2) then
~ -16 str, +4 dex, -8 con, -5 nat
hero.child[aSTR].field[aStartMod].value -= 16
hero.child[aDEX].field[aStartMod].value += 4
hero.child[aCON].field[aStartMod].value -= 8
hero.child[ArmorClass].field[tACNatural].value -= 5
elseif (diff = 1) then
~ -8 str, +2 dex, -4 con, -3 nat
hero.child[aSTR].field[aStartMod].value -= 8
hero.child[aDEX].field[aStartMod].value += 2
hero.child[aCON].field[aStartMod].value -= 4
hero.child[ArmorClass].field[tACNatural].value -= 3
endif
elseif (origsize = 1) then
if (diff = 5) then
~ -18 str, +10 dex, -6 con, -2 nat
hero.child[aSTR].field[aStartMod].value -= 18
hero.child[aDEX].field[aStartMod].value += 10
hero.child[aCON].field[aStartMod].value -= 6
hero.child[ArmorClass].field[tACNatural].value -= 2
elseif (diff = 4) then
~ -18 str, +8 dex, -6 con, -2 nat
hero.child[aSTR].field[aStartMod].value -= 18
hero.child[aDEX].field[aStartMod].value += 8
hero.child[aCON].field[aStartMod].value -= 6
hero.child[ArmorClass].field[tACNatural].value -= 2
elseif (diff = 3) then
~ -16 str, +6 dex, -6 con, -2 nat
hero.child[aSTR].field[aStartMod].value -= 16
hero.child[aDEX].field[aStartMod].value += 6
hero.child[aCON].field[aStartMod].value -= 6
hero.child[ArmorClass].field[tACNatural].value -= 2
elseif (diff = 2) then
~ -12 str, +4 dex, -6 con, -2 nat
hero.child[aSTR].field[aStartMod].value -= 12
hero.child[aDEX].field[aStartMod].value += 4
hero.child[aCON].field[aStartMod].value -= 6
hero.child[ArmorClass].field[tACNatural].value -= 2
elseif (diff = 1) then
~ -8 str, +2 dex, -4 con, -2 nat
hero.child[aSTR].field[aStartMod].value -= 8
hero.child[aDEX].field[aStartMod].value += 2
hero.child[aCON].field[aStartMod].value -= 4
hero.child[ArmorClass].field[tACNatural].value -= 2
endif
elseif (origsize = 0) then
if (diff = 4) then
~ -10 str, +8 dex, -2 con
hero.child[aSTR].field[aStartMod].value -= 10
hero.child[aDEX].field[aStartMod].value += 8
hero.child[aCON].field[aStartMod].value -= 2
elseif (diff = 3) then
~ -10 str, +6 dex, -2 con
hero.child[aSTR].field[aStartMod].value -= 10
hero.child[aDEX].field[aStartMod].value += 6
hero.child[aCON].field[aStartMod].value -= 2
elseif (diff = 2) then
~ -8 str, +4 dex, -2 con
hero.child[aSTR].field[aStartMod].value -= 8
hero.child[aDEX].field[aStartMod].value += 4
hero.child[aCON].field[aStartMod].value -= 2
elseif (diff = 1) then
~ -4 str, +2, dex, -2 con
hero.child[aSTR].field[aStartMod].value -= 4
hero.child[aDEX].field[aStartMod].value += 2
hero.child[aCON].field[aStartMod].value -= 2
endif
elseif (origsize = -1) then
if (diff = 3) then
~ -6 str, +6 dex
hero.child[aSTR].field[aStartMod].value -= 6
hero.child[aDEX].field[aStartMod].value += 6
elseif (diff = 2) then
~ -6 str, +4 dex
hero.child[aSTR].field[aStartMod].value -= 6
hero.child[aDEX].field[aStartMod].value += 4
elseif (diff = 1) then
~ -4 str, +2 dex
hero.child[aSTR].field[aStartMod].value -= 4
hero.child[aDEX].field[aStartMod].value += 2
endif
elseif (origsize = -2) then
if (diff = 2) then
~ -2 str, +4 dex
hero.child[aSTR].field[aStartMod].value -= 2
hero.child[aDEX].field[aStartMod].value += 4
elseif (diff = 1) then
~ -2 str, +2 dex
hero.child[aSTR].field[aStartMod].value -= 2
hero.child[aDEX].field[aStartMod].value += 2
endif
elseif (origsize = -3) then
if (diff = 1) then
~ +2 dex
hero.child[aDEX].field[aStartMod].value += 2
endif
endif