Jump to content

Mod- Dynamic Stat Adjustment


Amineri

Recommended Posts

A switch it's not that efficient if you go one by one, but you can group several cases with a same output, ala

Switch (GetPawnType())

case 31:

case 2:

case x:

HealBy(5)

case 20:

HealBy(2)

etc...

That is only 5 bytes each alien plus the healBy call

Link to comment
Share on other sites

  • Replies 59
  • Created
  • Last Reply

Top Posters In This Topic

Thanks for the codes and tips, JL. good trick this HealBy. I still think this function could use a switch statement, but I think I'll wait for Amineri to finish this scalable version. Amineri, I was actualy counting on using all of the values in the ini, to keep iCritHit as a stat, as well as iWill, so all the values from easy and normal would be stats, then from Hard 2 to set starting dates and 6 for DR and regen (2 default + 4 upgrades). If there's not enough space to set them all then some stat can be left un upgraded

 

 

That would offer the maximum flexibility. I do try my best to keep my mods as open-ended as possible. I really enjoy being surprised by the uses that people come up with for them :)

 

Unfortunately there are only 7 values defined in the DGC.ini, not 8.

 

iDamage, iCritHit,iAim,iDefense,iHP, iMobility,iWill

 

Since there is only 1 extra stat (by my previous count), using the iCritHit field as usual would leave us one short. 2 upgrades * (1 day + 7 stats + 1 DR + 1 regen) + 2 starting values = 2 * 10 + 2 = 22 values needed, but there are only 3*7 = 21 available. Foiled again!

 

Is CritHit that "critical"? (sorry for bad pun :p ... couldn't help it) I figured that between Damage and Aim you could make aliens deadly enough :o

Link to comment
Share on other sites

Okay, here is an updated version of the hex code change for ModifyStatsByDifficulty

 

 

 

 

original:
header:
D1 77 00 00 50 55 00 00 00 00 00 00 BA 77 00 00 00 00 00 00 00 00 00 00 BB 77 00 00 00 00 00 00 27 05 00 00 A7 A6 00 00 07 0A 00 00 0F 06 00 00 05 66 76 00 00 00 01 66 76 00 00 0A 8E 02 25 A1 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 76 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 75 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 03 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 73 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 07 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 72 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 0D 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 77 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 25 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 74 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 0C 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 78 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 06 04 0A 0A 0A 05 2C 02 A1 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 76 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 A1 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 75 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 A1 1A 2C 03 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 73 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 A1 1A 2C 07 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 72 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 A1 1A 2C 0D 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 77 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 A1 1A 25 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 74 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 A1 1A 2C 0C 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 78 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 06 04 0A 0A 86 07 2C 03 A1 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 76 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 75 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 03 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 73 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 07 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 72 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 0D 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 77 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 25 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 74 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 0C 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 78 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 06 04 0A 0A 8A 07 26 0A FF FF A1 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 76 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 75 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 03 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 73 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 07 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 72 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 0D 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 77 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 25 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 74 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 0C 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 78 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 06 04 0A 04 0B 53
new hex: 2C
header:
D1 77 00 00 50 55 00 00 00 00 00 00 BA 77 00 00 00 00 00 00 00 00 00 00 BB 77 00 00 00 00 00 00 27 05 00 00 A7 A6 00 00 EB 09 00 00 0F 06 00 00 0F 1A 2C 04 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 78 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 0F 1A 2C 05 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 76 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 07 36 03 9A 01 66 76 00 00 2C 03 16 A1 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 76 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 75 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 03 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 73 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 07 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 72 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 0D 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 77 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 25 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 74 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 A1 1A 2C 0C 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 78 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 84 0F 00 00 16 07 4D 06 97 1B C1 30 00 00 00 00 00 00 35 77 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 25 16 A1 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 76 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 75 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 03 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 73 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 07 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 72 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 25 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 74 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 0C 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 78 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 87 0F 00 00 16 A1 1A 2C 04 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 75 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 A1 1A 2C 05 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 73 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 07 64 09 97 1B C1 30 00 00 00 00 00 00 35 77 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 25 16 A1 1A 26 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 76 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 02 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 75 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 03 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 73 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 07 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 72 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 25 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 74 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 0C 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 78 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 86 0F 00 00 16 A1 1A 2C 04 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 74 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 A1 1A 2C 05 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 35 72 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 07 CE 09 97 1B C1 30 00 00 00 00 00 00 35 77 0E 00 00 7A 0E 00 00 00 00 10 35 D3 0D 00 00 D5 0D 00 00 00 00 48 BB 77 00 00 01 85 0F 00 00 16 25 16 A1 1A 25 35 CE 0D 00 00 D5 0D 00 00 00 01 48 BB 77 00 00 26 16 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 0B 04 0B 53

 

 

 

Decompiled code is:

 

 

simulated function ModifyStatsByDifficulty(out TCharacter kCharacter)
{
kCharacter.aStats[4] = BalanceMods_Hard[kCharacter.iType].iDamage;
kCharacter.aStats[5] = BalanceMods_Hard[kCharacter.iType].iAim;
// End:0x336
if(m_iDifficulty == 3)
{
kCharacter.aStats[1] += BalanceMods_Classic[kCharacter.iType].iAim;
kCharacter.aStats[2] += BalanceMods_Classic[kCharacter.iType].iDefense;
kCharacter.aStats[3] += BalanceMods_Classic[kCharacter.iType].iMobility;
kCharacter.aStats[7] += BalanceMods_Classic[kCharacter.iType].iWill;
kCharacter.aStats[13] += BalanceMods_Classic[kCharacter.iType].iCritHit;
kCharacter.aStats[0] += BalanceMods_Classic[kCharacter.iType].iHP;
kCharacter.aStats[12] += BalanceMods_Classic[kCharacter.iType].iDamage;
}
// End:0x64D
if((GenerateArmorFragments(BalanceMods_Easy[kCharacter.iType].iCritHit)) > 0)
{
kCharacter.aStats[1] += BalanceMods_Easy[kCharacter.iType].iAim;
kCharacter.aStats[2] += BalanceMods_Easy[kCharacter.iType].iDefense;
kCharacter.aStats[3] += BalanceMods_Easy[kCharacter.iType].iMobility;
kCharacter.aStats[7] += BalanceMods_Easy[kCharacter.iType].iWill;
kCharacter.aStats[0] += BalanceMods_Easy[kCharacter.iType].iHP;
kCharacter.aStats[12] += BalanceMods_Easy[kCharacter.iType].iDamage;
kCharacter.aStats[4] += BalanceMods_Hard[kCharacter.iType].iDefense;
kCharacter.aStats[5] += BalanceMods_Hard[kCharacter.iType].iMobility;
}
// End:0x964
if((GenerateArmorFragments(BalanceMods_Normal[kCharacter.iType].iCritHit)) > 0)
{
kCharacter.aStats[1] += BalanceMods_Normal[kCharacter.iType].iAim;
kCharacter.aStats[2] += BalanceMods_Normal[kCharacter.iType].iDefense;
kCharacter.aStats[3] += BalanceMods_Normal[kCharacter.iType].iMobility;
kCharacter.aStats[7] += BalanceMods_Normal[kCharacter.iType].iWill;
kCharacter.aStats[0] += BalanceMods_Normal[kCharacter.iType].iHP;
kCharacter.aStats[12] += BalanceMods_Normal[kCharacter.iType].iDamage;
kCharacter.aStats[4] += BalanceMods_Hard[kCharacter.iType].iHP;
kCharacter.aStats[5] += BalanceMods_Hard[kCharacter.iType].iWill;
}
// End:0x9CE
if((GenerateArmorFragments(BalanceMods_Hard[kCharacter.iType].iCritHit)) > 0)
{
kCharacter.aStats[0] += 1;
}
//return;
}

 

 

 

The GenerateOpName and GenerateArmorFragments substitutions remain unchanged.

 

This version does the following:

1) Removes difficulty adjustments for "Classic" difficulty (i.e.BalanceMods_Hard). Modders will have to set their default Classic difficulty stats into the Character section. Stat adjustments for "Impossible" difficulty (i.e. BalanceMods_Classic) will still be applied in Impossible difficulty. Easy, Normal, and Class difficulties will all share the stat adjustments defined in the Character section of the DGC.ini

 

2) Assigns the following values into the (hopefully) unused stats of Strength (4) and Psi (5). (Strength will be used to hold DR, and Psi will be used to hold Regen) :

BalanceMods_Hard.iDamage -- starting amount for Damage Reduction.

BalanceMods_Hard.iAim -- starting amount for Regeneration.

Upgradeable DR:
BalanceMods_Hard.iDefense -- upgrade "one" to DR -- applied after <BalanceMods_Easy.iCritHit> Days elapsed
BalanceMods_Hard.iHP -- upgrade "two" to DR -- applied after <BalanceMods_Normal.iCritHit> Days elapsed
Upgradeable Regen:
BalanceMods_Hard.iMobility -- upgrade "one" to Regen -- applied after <BalanceMods_Easy.iCritHit> Days elapsed
BalanceMods_Hard.iWill -- upgrade "two" to Regen-- applied after <BalanceMods_Normal.iCritHit> Days elapsed
3) BalanceMods_Hard.iCritHit is used as an "early version upgrade". The effect is simple -- once the alien has passed this number of Days, it gets +1 to HP. The most obvious place to use this is for Sectoid. Default Sectoid HP could be 3, and then upgraded to 4 after 10 days. Similarly Thin Men could have 4 base health, with an upgrade to 5 after 40 days. This allows this one simple early upgrade without using up one of the two "main" upgrades.
--------------------------------------------------------------------------------------
As of yet I have not implemented the hex code that actually USES the values stored in stats[4] and [5]. First I would like to gain more confidence that there are no unanticipated side effects from changing these values. I also would like to ensure that this DR mod is compatible with the prior tank-only DR mod. That mod provides for the capability to scale DR based on current health, which this mod does not, so I don't want to eliminate that prior capability.
For my testing, I have run one mission with 4 Psi Soldiers against an Ethereal, and the Psi abilities appeared to work normally. I had set the strength value of the XCOM soldiers to 0 (normally is set to 1) without any apparent effect.
Any assistance in running more games with this mod installed to search for bugs would be greatly appreciated. Once I have 95%+ confidence that there are no issues with hijacking these stats, I'll put in the regeneration and DR code to utilize the stats.
-----------------------------------------------------------------------
Utilizing the stats in this way will open up a decently wide range of temporary and/or triggerable effects that influence DR/Regen. For example, using a medikit could grant Regen 1 to the treated soldier for 3 turns. Just one example that pops into my mind.
Thank you everyone for the suggestions!
Link to comment
Share on other sites

  • 4 weeks later...

With some of the other mods I've been working on completed, I finally got back to finishing this mod off.

 

I haven't heard anything regarding the stats[4] and [5] doing anything bad, so I'm hoping that this won't create any huge problems.

 

The updated version is posted on the wiki.


http://wiki.tesnexus.com/index.php/Alien_Upgrades_Mod_-_XCOM:EU_2012

 

Features:

1) Adds Damage Reduction and Regeneration stats to the game -- each unit can be separately configured

2) Each unit type can be upgraded twice during the campaign (this includes all stats except CritHit, and include Damage Reduction and Regeneration)

3) Each unit can be given a single +1hp bump once during the campaign

4) All changes are configurable via DGC.ini edits

 

Cost:

Only two difficulties worth of stat changes are available. The default defined via "Characters" and a stat bump for Impossible difficulty.

 

Enjoy!

Link to comment
Share on other sites

Oh, I forgot to mention that the previous tank-specific damage reduction modlet is compatible with the new generalized damage reduction.

 

The two hex changes are actually DIRECTLY adjacent in the XGUnit.OnTakeDamage hex code, but they are compatible :)

 

This allows tanks to retain a form of damage reduction that scales with their current HP. Oh, and if you give a tank both forms of Damage Reduction they will stack with each other ^_^. ((I'm guessing that Yzaxtol will love this for his Merciless mod))

 

Since I've incorporated Damage Reduction and Regeneration as general stats (stored in the same array as stats like Aim, HP, Defense), this means it should be possible to create items that grant these stats. (not through the DGC.ini, though :( )

 

Options such as making Titan armor grant +6 HP and +2 Damage Reduction become possible.

 

Another option could be granting units in high cover +1 Damage Reduction against non-flanking units. (in general, or perhaps if a specific item is equipped or perk obtained)

 

Just tossing out some ideas for discussion to see what people are interested in.

 

I think the next thing I'm going to work on is randomizing individual alien stats and adding the ability to create alien mini-bosses. Now that I've made XCOM stronger by giving the soldiers more perks and the hangars more interceptor slots, it's time to upgrade the aliens a bit more :)

Link to comment
Share on other sites

Yes, the Alien Upgrades Mod has everything. Alien upgrades includes Damage Reduction and Regeneration as some of the upgrades :smile: The DR and Regeneration implementation turned out to be pretty simple (just one moderate-sized hex edit for each).

 

However, they build upon the other mod that allows for increasing stats twice during the campaign -- it seemed the easiest way to get the data to configure each alien into the game. The problem I've had with implementing DR and Regen on their own (without the upgrades) is that you end up trying to define all these stats for various aliens directly in the hex code. It's annoying to find enough space, and requires a bunch of hex edits to configure.

 

I figured that this would be a more elegant solution.

 

However, if people would like to see the DR and Regen implemented completely separately from the timed stat upgrades, I might be able to do it. I would probably have to take over the BalanceMods_Easy structure, use it only for assigning DR and Regen. I'd still have to modify the ModifyStatsByDifficulty function. I could drop the two hex edits relating to the day count, though, which would simply it a little bit.

Edited by Amineri
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.

×
×
  • Create New...