<span style="font-family:Arial Black">---------------------------------
3) Golems in general
---------------------------------
<!--fontc--><!--/fontc--></span>
You can only have one Golem at a time, regardless of what Golem it is and how you've summoned it. All Golems may be summoned in a town, will stay on your side through the acts and are able to open doors. Once created the Golems stay as is untill they're gone (killed/replaced/resummoned/poof). That is, your worn gear while summoning determines the sLvl of Golem as well as the applied sLvl of Golem Mastery.
All Golems have a <span style="color:#FFFF33">threat of 11, thus the same as a player char (and more than most other units), also they're treated as the same size like players (medium). Their <span style="color:#FFFF33">AI delay is 15 Frames in every difficulty. They have a <span style="color:#FFFF33">damage regeneration factor ° of 3 and a <span style="color:#FFFF33">Melee Range of 1. With exception of the Blood Golem you can't leech on them, since the other Golems have <span style="color:#FFFF33">drain set to zero. However, if it's cursed with Life Tap you'll be able to leech from any hostile Golem.
Golems are treated as monsters regarding some tech aspects. So they'll have different base life, base defense, base attack rating and base punch damage in the three difficulties. They all have a chance of 5% for doing a <span style="color:#FFFF33">Critical Hit.
<span style="color:#FFFF33">Velocity is the same in walking or running mode.
All Golems have block chances, but they lack blocking animations and haven't <span style="color:#FFFF33">NoShieldBlock set to true, so this is of no use in unmodded game. Golems also lack GetHit mode, so they won't suffer Stun or Knockback.
A1 and A2 are two independent alternative attacks a unit may use.
The base damage I'll list is the minimum <span style="color:#FFFF33">A1 damage in Norm and the maximum <span style="color:#FFFF33">A2 damage in Hell. Since the base punching damage is pathetic it's IMHO a waste of space to list A1 and A2, each min and max, for each difficulty separately.
° regL/s = Lmax * dreg / 4096 * 25
regL/s: regenerated life per second
Lmax: maximum life
dreg: the damage regen factor
<span style="font-family:Arial Black">---------------------------------
4) Clay Golem
---------------------------------
<!--fontc--><!--/fontc-->
MonStats.txt
baselife in Norm_NM_Hell: 65 _ 140 _ 240
base defense in Norm_NM_Hell: 20 _ 21 _ 22
base AR in Norm_NM_Hell: 40 _ 66 _ 92
base damage in Norm_NM_Hell: 2 to 11
physical resistance: 25%
lightning resistance: 20%
cold resistance: 50%
velocity (r/w): 8 => 5,3yd/s
<span style="color:#CC33CC">Skills.txt
'<span style="color:#FFFF33">aurastat1: <span style="color:#CC6600">item_slow'; '<span style="color:#FFFF33">aurastatcalc1: <span style="color:#CC6600">dm34'; '<span style="color:#FFFF33">auraevent1: <span style="color:#CC6600">damagedinmelee'
Ok, this means the same slowing property you find on some items is applied to every enemy who touches the Clay Golem. We've already covered the meaning of the dmXY function, the assigned parameters here are Param3=0 and Param4=75. On sLvl1 CG slows enemy by
{ (75 - 0) * [110*1 / (1+6)] / 100 } + 0 <=>
{ 75 * [110/7] / 100 } + 0 <=>
{ 75 * 15 / 100 } + 0 <=>
12%
The AS list 11%. This difference seems neglectible, but you get 11% when you don't do ceiling function.
<span style="color:#FFFF33">'passivestatX': this is where the figures from Golem Mastery are used.
<span style="color:#CC6600">velocitypercent: skill('Golem Mastery'.dm34)
This indicates you've to go to the Golem Mastery row in Skills.txt and use Param3=0 and Param4=40 from that row to calculate velocity increase. Also you'll have to use skill level from that row's skill, not Clay Golem's skill level.
<span style="color:#FFCC66">velocity% = {40 * [110 * sLvlGM / (sLvlGM + 6)] / 100}
<span style="color:#CC6600">tohit: skill('Golem Mastery'.ln56) + (lvl*par8)
Uh-oh, something new here. We know already that the first part of this formula uses Golem Mastery figures. lnXY is actually not a logarithmic function, but again a D2 specific shorty for a linear <span style="color:#CC6600">X+(lvl-1)*Y function.
<span style="color:#CC6600">par8 in the second part of the equation simply refers to <span style="color:#FFFF33">Param8 in the actual row (Clay Golem), and <span style="color:#CC6600">lvl means sLvl of Clay Golem while casted (including equip's boni).
Looking for the parameters we get
<span style="color:#FFCC66">tohit = (25 + (sLvlGM - 1) * 25) + (sLvlCG * 20)
<span style="color:#CC6600">damagepercent: par2 * (lvl - 1) + (skill('FireGolem'.blvl)*skill('FireGolem'.par8))
Now it becomes really scary, you think? It's not so bad, just look what we have done so far.
<span style="color:#CC6600">par2 refers to <span style="color:#FFFF33">Param2 from our actual Clay Golem row, <span style="color:#CC6600">lvl to sLvlCG including boni from equip. The last part of the formula refers obviously to the Fire Golem row's plain <span style="color:#FFFF33">Param8, which is 6. In the middle part we see a new term called <span style="color:#CC6600">blvl. This is actually the synergy effect, and you know synergies only work with hard invested points aka base level (further referred to as bLvl). There you are.
Looking for the parameters we get
<span style="color:#FFCC66">damage increase % = 35 * (sLvlCG - 1) + bLvlFG * 6
<span style="color:#CC6600">armorclass: skill('IronGolem'.blvl)*skill('IronGolem'.par8)
See, you feel at home already. This is the synergy from hard points in Iron Golem and his Param8, which is 35. So the actual formula reads as
<span style="color:#FFCC66">defense increase = bLvlIG * 35
At last the Clay Golem is the only Golem which gets increased life not only from GM and Blood Golem, but also from his own sLvl. This is covered via column <span style="color:#FFFF33">calc1:
<span style="color:#CC6600">hp% adjustment: (100+(par1 * (lvl - 1)))*(100+skill('Golem Mastery'.ln12) + (skill('BloodGolem'.blvl)*skill('BloodGolem'.par8)))/100-100
Don't run away, it's really nothing new here. First part refers to a plain parameter in our actual Clay Golem row, second part covers bonus from Golem Mastery with reference to GM's row, and third part gives credit to the Blood Golem synergy.
So look up Param8 at Blood Golem's row (it's 5), and this will result in
<span style="color:#FFCC66">hp% adjustment = (100 + (35 * (sLvlCG - 1))) * (120 +(sLvlGM - 1) * 20) + (bLvlBG * 5)/100 - 100
Now, that hasn't hurt a bit, has it?
And of course nothing is for free nowadays and your Golem will cost some Mana. The Column '<span style="color:#FFFF33">mana' gives the starting mana cost and the column '<span style="color:#FFFF33">lvlmana' gives the amount of additional mana per sLvl. But this figure is modified through '<span style="color:#FFFF33">manashift', which gives some extra precision. The '8' in this column represents a factor 1 (a seven would represent a factor 1/2, a six 1/4 and so on).
This results in
<span style="color:#FFCC66">Mana Cost = 12 + 3 * sLvl
We won't discuss <span style="color:#CC66CC">AnimData.d2 and related animation business here, so just for completeness the base attack speed of a Clay Golem is 17fpa. This is only enhanceable with a Fanaticism aura and won't become faster than 12fpa.
<span style="font-family:Arial Black">---------------------------------
5) Blood Golem
---------------------------------
<!--fontc--><!--/fontc-->
<span style="color:#CC33CC">MonStats.txt
baselife in Norm_NM_Hell: 201 _ 338 _ 637
base defense in Norm_NM_Hell: 90 _ 98 _ 106
base AR in Norm_NM_Hell: 60 _ 104 _ 148
base damage in Norm_NM_Hell: 9 to 41
magical resistance: 20%
poison resistance: 20%
velocity (r/w): 9 => 6yd/s
leechable 100% in every difficulty (though modified through global leech penalties on Nightmare and Hell)
<span style="color:#CC33CC">Skills.txt
<span style="color:#FFFF33">auraevent1, auraevent2, auraevent3 call the damage and heal sharing functions when the Golem does melee or suffers melee or missile damage
<span style="color:#CC6600">velocitypercent: skill('Golem Mastery'.dm34)
This indicates you've to go to the Golem Mastery row in Skills.txt and use Param3=0 and Param4=40 from that row to calculate velocity increase. Also you'll have to use skill level from that row's skill, not Blood Golem's skill level.
<span style="color:#FFCC66">velocity% = {40 * [110 * sLvlGM / (sLvlGM + 6)] / 100}
<span style="color:#CC6600">tohit: skill('Golem Mastery'.ln56)+skill('Clay Golem'.blvl)*skill('Clay Golem'.par8)
This is really the same like with the Clay Golem, it just refers to that one's row (and Golem Mastery, like above), further here only the base level (without equipment) from Clay Golem is called, since it's a synergy.
<span style="color:#FFCC66">tohit = (25 + (sLvlGM - 1) * 25) + (bLvlCG * 20)
<span style="color:#CC6600">damagepercent: par4 * (lvl - 1) + (skill('FireGolem'.blvl)*skill('FireGolem'.par8))
Again the same construct as with Clay Golem, just par4 is of course a parameter in Blood Golem's row (accidentially it's actually the same figure like par2 for Clay Golem, don't be confused here).
<span style="color:#FFCC66">damage increase % = 35 * (sLvlBG - 1) + bLvlFG * 6
<span style="color:#CC6600">armorclass: skill('IronGolem'.blvl)*skill('IronGolem'.par8)
Really the same one like in Clay Golem, because it's just the synergy
<span style="color:#FFCC66">defense increase = bLvlIG * 35
<span style="color:#CC6600">hp% adjustment: skill('Golem Mastery'.ln12)
This part only covers bonus from Golem Mastery with reference to GM's row.
So this will result in
<span style="color:#FFCC66">hp% adjustment = (120 +(sLvlGM - 1) * 20)
note that he doesn't get a bonus from his own synergy!
<span style="color:#FFCC66">Mana Cost = 21 + 4 * sLvlBG
Blood Golem's base attack speed is 15fpa and can increases up to 11fpa under Fanaticism.
His life stealing ability seems partly hardcoded, since he has parameters listed but no function. Or I've become blinded by all that huge tables ... it should be called by the aforementioned auraevent triggers, but I haven't dug deeper yet.
At least the first two parameters refer to his minimum/maximum life steal. The other parameters are constants, so it's maybe ok to list them here on as-is base.
<span style="color:#CC6600">10% of damage the Blood Golem suffers is transferred to the caster char.
25% of caster's self-healing is transferred to the Blood Golem (note: Healer in town and Wells work like with other pets)
30% of stolen life are transferred from Blood Golem to caster char.
Heavily testing indicates that there is also an Overflow. That is, when Blood Golem doesn't need his 70% of the stolen life there is more transferred to the caster if needed. Same vice versa.
<span style="color:#C0C0C0">Note: life steal is not life leech, it's enough for the effect to actually hit, thankfully the punching damage doesn't figure in here. Stealing works as a percentage from enemy's actual life, so you'll get really an effect out of that despite the awesome punching damage of your Golem.
Second note: Blood Golem doesn't steal life with thorny effects anymore since 1.10beta release, still valid in recent patch 1.11b.
3) Golems in general
---------------------------------
<!--fontc--><!--/fontc--></span>
You can only have one Golem at a time, regardless of what Golem it is and how you've summoned it. All Golems may be summoned in a town, will stay on your side through the acts and are able to open doors. Once created the Golems stay as is untill they're gone (killed/replaced/resummoned/poof). That is, your worn gear while summoning determines the sLvl of Golem as well as the applied sLvl of Golem Mastery.
All Golems have a <span style="color:#FFFF33">threat of 11, thus the same as a player char (and more than most other units), also they're treated as the same size like players (medium). Their <span style="color:#FFFF33">AI delay is 15 Frames in every difficulty. They have a <span style="color:#FFFF33">damage regeneration factor ° of 3 and a <span style="color:#FFFF33">Melee Range of 1. With exception of the Blood Golem you can't leech on them, since the other Golems have <span style="color:#FFFF33">drain set to zero. However, if it's cursed with Life Tap you'll be able to leech from any hostile Golem.
Golems are treated as monsters regarding some tech aspects. So they'll have different base life, base defense, base attack rating and base punch damage in the three difficulties. They all have a chance of 5% for doing a <span style="color:#FFFF33">Critical Hit.
<span style="color:#FFFF33">Velocity is the same in walking or running mode.
All Golems have block chances, but they lack blocking animations and haven't <span style="color:#FFFF33">NoShieldBlock set to true, so this is of no use in unmodded game. Golems also lack GetHit mode, so they won't suffer Stun or Knockback.
A1 and A2 are two independent alternative attacks a unit may use.
The base damage I'll list is the minimum <span style="color:#FFFF33">A1 damage in Norm and the maximum <span style="color:#FFFF33">A2 damage in Hell. Since the base punching damage is pathetic it's IMHO a waste of space to list A1 and A2, each min and max, for each difficulty separately.
° regL/s = Lmax * dreg / 4096 * 25
regL/s: regenerated life per second
Lmax: maximum life
dreg: the damage regen factor
<span style="font-family:Arial Black">---------------------------------
4) Clay Golem
---------------------------------
<!--fontc--><!--/fontc-->
MonStats.txt
baselife in Norm_NM_Hell: 65 _ 140 _ 240
base defense in Norm_NM_Hell: 20 _ 21 _ 22
base AR in Norm_NM_Hell: 40 _ 66 _ 92
base damage in Norm_NM_Hell: 2 to 11
physical resistance: 25%
lightning resistance: 20%
cold resistance: 50%
velocity (r/w): 8 => 5,3yd/s
<span style="color:#CC33CC">Skills.txt
'<span style="color:#FFFF33">aurastat1: <span style="color:#CC6600">item_slow'; '<span style="color:#FFFF33">aurastatcalc1: <span style="color:#CC6600">dm34'; '<span style="color:#FFFF33">auraevent1: <span style="color:#CC6600">damagedinmelee'
Ok, this means the same slowing property you find on some items is applied to every enemy who touches the Clay Golem. We've already covered the meaning of the dmXY function, the assigned parameters here are Param3=0 and Param4=75. On sLvl1 CG slows enemy by
{ (75 - 0) * [110*1 / (1+6)] / 100 } + 0 <=>
{ 75 * [110/7] / 100 } + 0 <=>
{ 75 * 15 / 100 } + 0 <=>
12%
The AS list 11%. This difference seems neglectible, but you get 11% when you don't do ceiling function.
<span style="color:#FFFF33">'passivestatX': this is where the figures from Golem Mastery are used.
<span style="color:#CC6600">velocitypercent: skill('Golem Mastery'.dm34)
This indicates you've to go to the Golem Mastery row in Skills.txt and use Param3=0 and Param4=40 from that row to calculate velocity increase. Also you'll have to use skill level from that row's skill, not Clay Golem's skill level.
<span style="color:#FFCC66">velocity% = {40 * [110 * sLvlGM / (sLvlGM + 6)] / 100}
<span style="color:#CC6600">tohit: skill('Golem Mastery'.ln56) + (lvl*par8)
Uh-oh, something new here. We know already that the first part of this formula uses Golem Mastery figures. lnXY is actually not a logarithmic function, but again a D2 specific shorty for a linear <span style="color:#CC6600">X+(lvl-1)*Y function.
<span style="color:#CC6600">par8 in the second part of the equation simply refers to <span style="color:#FFFF33">Param8 in the actual row (Clay Golem), and <span style="color:#CC6600">lvl means sLvl of Clay Golem while casted (including equip's boni).
Looking for the parameters we get
<span style="color:#FFCC66">tohit = (25 + (sLvlGM - 1) * 25) + (sLvlCG * 20)
<span style="color:#CC6600">damagepercent: par2 * (lvl - 1) + (skill('FireGolem'.blvl)*skill('FireGolem'.par8))
Now it becomes really scary, you think? It's not so bad, just look what we have done so far.
<span style="color:#CC6600">par2 refers to <span style="color:#FFFF33">Param2 from our actual Clay Golem row, <span style="color:#CC6600">lvl to sLvlCG including boni from equip. The last part of the formula refers obviously to the Fire Golem row's plain <span style="color:#FFFF33">Param8, which is 6. In the middle part we see a new term called <span style="color:#CC6600">blvl. This is actually the synergy effect, and you know synergies only work with hard invested points aka base level (further referred to as bLvl). There you are.
Looking for the parameters we get
<span style="color:#FFCC66">damage increase % = 35 * (sLvlCG - 1) + bLvlFG * 6
<span style="color:#CC6600">armorclass: skill('IronGolem'.blvl)*skill('IronGolem'.par8)
See, you feel at home already. This is the synergy from hard points in Iron Golem and his Param8, which is 35. So the actual formula reads as
<span style="color:#FFCC66">defense increase = bLvlIG * 35
At last the Clay Golem is the only Golem which gets increased life not only from GM and Blood Golem, but also from his own sLvl. This is covered via column <span style="color:#FFFF33">calc1:
<span style="color:#CC6600">hp% adjustment: (100+(par1 * (lvl - 1)))*(100+skill('Golem Mastery'.ln12) + (skill('BloodGolem'.blvl)*skill('BloodGolem'.par8)))/100-100
Don't run away, it's really nothing new here. First part refers to a plain parameter in our actual Clay Golem row, second part covers bonus from Golem Mastery with reference to GM's row, and third part gives credit to the Blood Golem synergy.
So look up Param8 at Blood Golem's row (it's 5), and this will result in
<span style="color:#FFCC66">hp% adjustment = (100 + (35 * (sLvlCG - 1))) * (120 +(sLvlGM - 1) * 20) + (bLvlBG * 5)/100 - 100
Now, that hasn't hurt a bit, has it?
And of course nothing is for free nowadays and your Golem will cost some Mana. The Column '<span style="color:#FFFF33">mana' gives the starting mana cost and the column '<span style="color:#FFFF33">lvlmana' gives the amount of additional mana per sLvl. But this figure is modified through '<span style="color:#FFFF33">manashift', which gives some extra precision. The '8' in this column represents a factor 1 (a seven would represent a factor 1/2, a six 1/4 and so on).
This results in
<span style="color:#FFCC66">Mana Cost = 12 + 3 * sLvl
We won't discuss <span style="color:#CC66CC">AnimData.d2 and related animation business here, so just for completeness the base attack speed of a Clay Golem is 17fpa. This is only enhanceable with a Fanaticism aura and won't become faster than 12fpa.
<span style="font-family:Arial Black">---------------------------------
5) Blood Golem
---------------------------------
<!--fontc--><!--/fontc-->
<span style="color:#CC33CC">MonStats.txt
baselife in Norm_NM_Hell: 201 _ 338 _ 637
base defense in Norm_NM_Hell: 90 _ 98 _ 106
base AR in Norm_NM_Hell: 60 _ 104 _ 148
base damage in Norm_NM_Hell: 9 to 41
magical resistance: 20%
poison resistance: 20%
velocity (r/w): 9 => 6yd/s
leechable 100% in every difficulty (though modified through global leech penalties on Nightmare and Hell)
<span style="color:#CC33CC">Skills.txt
<span style="color:#FFFF33">auraevent1, auraevent2, auraevent3 call the damage and heal sharing functions when the Golem does melee or suffers melee or missile damage
<span style="color:#CC6600">velocitypercent: skill('Golem Mastery'.dm34)
This indicates you've to go to the Golem Mastery row in Skills.txt and use Param3=0 and Param4=40 from that row to calculate velocity increase. Also you'll have to use skill level from that row's skill, not Blood Golem's skill level.
<span style="color:#FFCC66">velocity% = {40 * [110 * sLvlGM / (sLvlGM + 6)] / 100}
<span style="color:#CC6600">tohit: skill('Golem Mastery'.ln56)+skill('Clay Golem'.blvl)*skill('Clay Golem'.par8)
This is really the same like with the Clay Golem, it just refers to that one's row (and Golem Mastery, like above), further here only the base level (without equipment) from Clay Golem is called, since it's a synergy.
<span style="color:#FFCC66">tohit = (25 + (sLvlGM - 1) * 25) + (bLvlCG * 20)
<span style="color:#CC6600">damagepercent: par4 * (lvl - 1) + (skill('FireGolem'.blvl)*skill('FireGolem'.par8))
Again the same construct as with Clay Golem, just par4 is of course a parameter in Blood Golem's row (accidentially it's actually the same figure like par2 for Clay Golem, don't be confused here).
<span style="color:#FFCC66">damage increase % = 35 * (sLvlBG - 1) + bLvlFG * 6
<span style="color:#CC6600">armorclass: skill('IronGolem'.blvl)*skill('IronGolem'.par8)
Really the same one like in Clay Golem, because it's just the synergy
<span style="color:#FFCC66">defense increase = bLvlIG * 35
<span style="color:#CC6600">hp% adjustment: skill('Golem Mastery'.ln12)
This part only covers bonus from Golem Mastery with reference to GM's row.
So this will result in
<span style="color:#FFCC66">hp% adjustment = (120 +(sLvlGM - 1) * 20)
note that he doesn't get a bonus from his own synergy!
<span style="color:#FFCC66">Mana Cost = 21 + 4 * sLvlBG
Blood Golem's base attack speed is 15fpa and can increases up to 11fpa under Fanaticism.
His life stealing ability seems partly hardcoded, since he has parameters listed but no function. Or I've become blinded by all that huge tables ... it should be called by the aforementioned auraevent triggers, but I haven't dug deeper yet.
At least the first two parameters refer to his minimum/maximum life steal. The other parameters are constants, so it's maybe ok to list them here on as-is base.
<span style="color:#CC6600">10% of damage the Blood Golem suffers is transferred to the caster char.
25% of caster's self-healing is transferred to the Blood Golem (note: Healer in town and Wells work like with other pets)
30% of stolen life are transferred from Blood Golem to caster char.
Heavily testing indicates that there is also an Overflow. That is, when Blood Golem doesn't need his 70% of the stolen life there is more transferred to the caster if needed. Same vice versa.
<span style="color:#C0C0C0">Note: life steal is not life leech, it's enough for the effect to actually hit, thankfully the punching damage doesn't figure in here. Stealing works as a percentage from enemy's actual life, so you'll get really an effect out of that despite the awesome punching damage of your Golem.
Second note: Blood Golem doesn't steal life with thorny effects anymore since 1.10beta release, still valid in recent patch 1.11b.