anUser Posted April 13, 2013 Share Posted April 13, 2013 A switch it's not that efficient if you go one by one, but you can group several cases with a same output, alaSwitch (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 More sharing options...
Amineri Posted April 13, 2013 Author Share Posted April 13, 2013 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 More sharing options...
anUser Posted April 13, 2013 Share Posted April 13, 2013 my bad then, dunno why I tought there was 8 of em :S Yeah, iCritHit can go away, it's not critical at all :p Link to comment Share on other sites More sharing options...
Amineri Posted April 14, 2013 Author Share Posted April 14, 2013 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: 2Cheader: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 More sharing options...
anUser Posted April 14, 2013 Share Posted April 14, 2013 Very elegant solution this extra hp, i likeit. Ill make sure to try it this week and report if theres something Link to comment Share on other sites More sharing options...
Amineri Posted May 11, 2013 Author Share Posted May 11, 2013 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 configured2) 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 campaign4) 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 More sharing options...
Amineri Posted May 11, 2013 Author Share Posted May 11, 2013 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 More sharing options...
dubiousintent Posted May 11, 2013 Share Posted May 11, 2013 Has the DRR modlet been posted anywhere on it's own, such as a link on the Wiki? (All I've seen is scattered through the 'Regeneration and General Damage Reduction' thread.) Or is 'Alien Upgrades Mod - XCOM:EU 2012' going to be the sole implementer of the DRR capability? -Dubious- Link to comment Share on other sites More sharing options...
Amineri Posted May 11, 2013 Author Share Posted May 11, 2013 (edited) 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 May 11, 2013 by Amineri Link to comment Share on other sites More sharing options...
dubiousintent Posted May 11, 2013 Share Posted May 11, 2013 I'll let others weigh in on whether a separate DRR modlet is needed. I just wanted to get clear if there was already one or Alien Upgrades was it. BTW: Fine work. -Dubious- Link to comment Share on other sites More sharing options...
Recommended Posts