Amineri Posted November 23, 2013 Author Share Posted November 23, 2013 Re: your alien scaling Amineri, how small can you make them? You could make little weaker Chrysallids, podded with a queen Lid that spawns them for some nice swarming action :devil: That's a cool idea that I hadn't thought of. The example of scaling factor that I drew inspiration for is actually the downscaling of the weapon meshes for equipping to female soldier pawns. That is set to 0.70 scale. Since the scale is a float, in theory pawns could be made arbitrarily small. Link to comment Share on other sites More sharing options...
Inyssius Posted November 23, 2013 Share Posted November 23, 2013 (edited) Oh, hey, speaking of increased pod size--this method could be used to make sectoids sometimes spawn with a seeker in their pod, couldn't it? Awesome! Edited November 23, 2013 by Inyssius Link to comment Share on other sites More sharing options...
Amineri Posted November 23, 2013 Author Share Posted November 23, 2013 Oh, hey, speaking of increased pod size--this method could be used to make sectoids sometimes spawn with a seeker in their pod, couldn't it? Awesome! Originally I had the pod size limited to 6, but those six were individually defined, in theory allowing six distinct aliens as part of a pod. This wasn't terribly useful so I altered the mod so that there are 3 categories of aliens in a pod. All aliens within a category are of the same type, but each category can be of a distinct type. So only 3 types of aliens in one pod, max. Category 1 is the pod leader, of which there is only ever 1 unit. I added code which allowed defining a leader level and upgrading of this unit with perks and higher stats. The other 2 categories are "Support". Technically up to 255 of each support categories could be added, so the format allows up to 1 + 255 + 255 = 511 aliens to be defined in a pod. However a squad (all aliens or all players) has a hard-coded limit of 128 units. But yes, it would totally be possible to create pods of Sectoids+Seekers or Drones+Seekers. With buffed up cyberdiscs and sectopods it might make more sense to mix Sectopod + Drones + Seekers. Unfortunately the seeker AI is programmed to never strangle units that are immune to the damage. I think I'd like to change that so that they can still immobilize those units even though no damage is dealt, making late-game seekers more about "crowd control" than killing units. Link to comment Share on other sites More sharing options...
rilke1987 Posted November 29, 2013 Share Posted November 29, 2013 Oh, hey, speaking of increased pod size--this method could be used to make sectoids sometimes spawn with a seeker in their pod, couldn't it? Awesome! Originally I had the pod size limited to 6, but those six were individually defined, in theory allowing six distinct aliens as part of a pod. This wasn't terribly useful so I altered the mod so that there are 3 categories of aliens in a pod. All aliens within a category are of the same type, but each category can be of a distinct type. So only 3 types of aliens in one pod, max. Category 1 is the pod leader, of which there is only ever 1 unit. I added code which allowed defining a leader level and upgrading of this unit with perks and higher stats. The other 2 categories are "Support". Technically up to 255 of each support categories could be added, so the format allows up to 1 + 255 + 255 = 511 aliens to be defined in a pod. However a squad (all aliens or all players) has a hard-coded limit of 128 units. But yes, it would totally be possible to create pods of Sectoids+Seekers or Drones+Seekers. With buffed up cyberdiscs and sectopods it might make more sense to mix Sectopod + Drones + Seekers. Unfortunately the seeker AI is programmed to never strangle units that are immune to the damage. I think I'd like to change that so that they can still immobilize those units even though no damage is dealt, making late-game seekers more about "crowd control" than killing units. Hey Amineri, this is truly wonderful article which directed me to increase alien number in EW successfully. But I still have a question. Why in your modification of function, you are using the altweapon thing as up limit. Because I just defined a variable to do it and it seems to be easier to adjust. And why changing the initloadout thing then? Thanks very much if you could give a newbie like me some hints. Nice work again. Link to comment Share on other sites More sharing options...
wghost81 Posted November 29, 2013 Share Posted November 29, 2013 You defined a new variable? An you call yourself a newbie... Could you, please, elaborate on that? Link to comment Share on other sites More sharing options...
Krazyguy75 Posted November 29, 2013 Share Posted November 29, 2013 Holy shiznizzleskits. Did a person just accidentally make a massive breakthrough in modding this game... by accident?! Link to comment Share on other sites More sharing options...
Amineri Posted November 29, 2013 Author Share Posted November 29, 2013 I just checked and Enemy Within hasn't made any changes to the 3 functions (at the unrealscript level) I modded in EU to handle the tactical side of increasing the maximum pod size. Of course the hex itself has changed because of the larger namelist/objectlist, so this will be one of my test cases uses my in-development tool to update. Another factor is that I had used the XGUnit class variable m_iSmokeGrenades to pass the leader level for leader customization, but now some Exalt units use that variable, so that will have to be reworked. I'm also curious about the "define a new variable thing" ^_^ Link to comment Share on other sites More sharing options...
Amineri Posted November 29, 2013 Author Share Posted November 29, 2013 Doing some testing with my new tool and I was able to update two of the core functions to enable larger pods: Following hex replacements are updated for Enemy Within initial release: UPKFILE=XComGame.upk FUNCTION=XGBattleDesc.InitAlienLoadoutInfos [BEFORE_HEX] CC 04 00 00 18 03 00 00 0F 00 FF B2 00 00 25 07 C9 04 96 00 FF B2 00 00 2C 04 16 07 51 00 9A 38 3A 35 7A B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 38 3A 24 10 16 04 0B 06 BB 04 07 BB 04 9A 38 3A 35 7A B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 38 3A 24 00 16 0F 35 7A B2 00 00 7C B2 00 00 00 01 1A 00 FF B2 00 00 01 A6 B2 00 00 24 10 07 BF 03 81 2D 01 88 B2 00 00 16 0F 00 FE B2 00 00 25 07 BC 03 96 00 FE B2 00 00 36 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 16 07 DA 01 9B 38 3A 35 3D 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 38 3A 24 00 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 7D 00 1B 54 0F 00 00 00 00 00 00 35 3D 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 35 3A 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 16 16 07 C4 02 9B 38 3A 35 3C 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 38 3A 24 00 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 7D 00 1B 54 0F 00 00 00 00 00 00 35 3C 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 35 39 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 16 16 07 AE 03 9B 38 3A 35 3B 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 38 3A 24 00 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 7D 00 1B 54 0F 00 00 00 00 00 00 35 3B 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 35 38 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 16 16 A5 00 FE B2 00 00 16 06 C5 00 06 B8 04 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 2A 00 1B 54 0F 00 00 00 00 00 00 38 3D 35 6A B2 00 00 71 B2 00 00 00 00 01 82 B2 00 00 4A 16 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 2A 00 1B 54 0F 00 00 00 00 00 00 38 3D 35 69 B2 00 00 71 B2 00 00 00 00 01 82 B2 00 00 4A 16 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 2A 00 1B 54 0F 00 00 00 00 00 00 38 3D 35 66 B2 00 00 71 B2 00 00 00 00 01 82 B2 00 00 4A 16 16 06 C9 04 A3 00 FF B2 00 00 16 06 0B 00 04 0B 53 [/BEFORE_HEX] [AFTER_HEX] A8 04 00 00 18 03 00 00 0F 00 FF B2 00 00 25 07 89 04 96 00 FF B2 00 00 2C 04 16 07 51 00 9A 38 3A 35 7A B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 38 3A 24 10 16 04 0B 06 7B 04 07 7B 04 9A 38 3A 35 7A B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 38 3A 24 00 16 0F 35 7A B2 00 00 7C B2 00 00 00 01 1A 00 FF B2 00 00 01 A6 B2 00 00 24 10 07 7F 03 81 2D 01 88 B2 00 00 16 0F 00 FE B2 00 00 25 07 7C 03 96 00 FE B2 00 00 36 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 16 0F 01 98 B2 00 00 38 3A 35 3D 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 07 84 01 97 01 98 B2 00 00 25 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 7D 00 1B 54 0F 00 00 00 00 00 00 38 3D 01 98 B2 00 00 25 16 16 0F 01 98 B2 00 00 38 3A 35 3C 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 07 79 02 97 01 98 B2 00 00 25 16 0F 00 57 B3 00 00 25 07 79 02 98 00 57 B3 00 00 35 39 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 7D 00 1B 54 0F 00 00 00 00 00 00 38 3D 01 98 B2 00 00 24 00 16 16 A5 00 57 B3 00 00 16 06 E3 01 0F 01 98 B2 00 00 38 3A 35 3B 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 07 6E 03 97 01 98 B2 00 00 25 16 0F 00 57 B3 00 00 25 07 6E 03 98 00 57 B3 00 00 35 38 00 00 00 3F 00 00 00 00 00 10 00 FE B2 00 00 35 42 00 00 00 43 00 00 00 00 00 01 95 B2 00 00 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 7D 00 1B 54 0F 00 00 00 00 00 00 38 3D 01 98 B2 00 00 24 00 16 16 A5 00 57 B3 00 00 16 06 D8 02 A5 00 FE B2 00 00 16 06 C5 00 06 78 04 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 2A 00 1B 54 0F 00 00 00 00 00 00 38 3D 35 6A B2 00 00 71 B2 00 00 00 00 01 82 B2 00 00 4A 16 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 2A 00 1B 54 0F 00 00 00 00 00 00 38 3D 35 69 B2 00 00 71 B2 00 00 00 00 01 82 B2 00 00 4A 16 16 55 35 7B B2 00 00 7C B2 00 00 00 00 1A 00 FF B2 00 00 01 A6 B2 00 00 2A 00 1B 54 0F 00 00 00 00 00 00 38 3D 35 66 B2 00 00 71 B2 00 00 00 00 01 82 B2 00 00 4A 16 16 06 89 04 A3 00 FF B2 00 00 16 06 0B 00 04 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 0B 0B 0B 53 [/AFTER_HEX] UPKFILE=XComGame.upk FUNCTION=GetPodCharArray.XComAlienPodManager [BEFORE_HEX] 80 01 00 00 F4 00 00 00 07 50 00 9B 38 3A 35 3D 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 38 3A 24 00 16 55 00 08 43 00 00 1D 00 35 3D 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 07 A0 00 9B 38 3A 35 3C 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 38 3A 24 00 16 55 00 08 43 00 00 1D 00 35 3C 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 07 F0 00 9B 38 3A 35 3B 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 38 3A 24 00 16 55 00 08 43 00 00 1D 00 35 3B 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 55 48 0A 43 00 00 1D 00 35 3A 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 55 48 0A 43 00 00 1D 00 35 39 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 55 48 0A 43 00 00 1D 00 35 38 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 04 00 08 43 00 00 04 3A 09 43 00 00 53 [/BEFORE_HEX] [AFTER_HEX] 7C 01 00 00 F4 00 00 00 07 4D 00 97 38 3A 35 3D 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 25 16 55 00 08 43 00 00 1D 00 35 3D 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 07 DF 00 97 38 3A 35 3C 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 25 16 0F 00 45 43 00 00 25 07 DF 00 98 00 45 43 00 00 38 3A 35 39 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 55 00 08 43 00 00 1D 00 35 3C 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 A3 00 45 43 00 00 16 06 7C 00 07 71 01 97 38 3A 35 3B 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 25 16 0F 00 45 43 00 00 25 07 71 01 98 00 45 43 00 00 38 3A 35 38 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 55 00 08 43 00 00 1D 00 35 3B 00 00 00 3F 00 00 00 00 00 48 0B 43 00 00 16 A3 00 45 43 00 00 16 06 0E 01 04 00 08 43 00 00 53 [/AFTER_HEX] The allows the basic functionality of increasing the number of aliens in a pod by adjusting how the AltWeapon field is used. However it does not have any of the alien leader code (which also is what set the altweapon for LPR-equipped mutons). To use the initial version:Don't ever equip Mutons with an alt weapon -- only use the altweapon fields to store alien count Requires updating of XGStrategyAI functions as before: eMain type always has 1 alien -- altWeapon has no effect eSupport1 type has eSupport1AltWeapon + 1 aliens (so 0 value results in 1 alien, etc) eSupport2 type has eSupport2AltWeapon + 1 aliens I will get the third function updated to support using the eMainAltWeapon to hold flags defining altWeapon status (so allowing LPR-equipped mutons) and custom defined leaders. Ran into some snags with altered export table references, unfortunately. Link to comment Share on other sites More sharing options...
Clinchicus Posted November 30, 2013 Share Posted November 30, 2013 Awesome to see progress on this mod for EW, this was one of the things that made Long War so enjoyable for me - thanks for the continued effort. As an aside, I just picked up the modding tools from a thread in Mod Talk and am exploring the files/learning the tools, hopefully I'll be able to test/troubleshoot/contribute in the near future (I'm a software engineer by trade) :D Link to comment Share on other sites More sharing options...
Anbar Posted November 30, 2013 Share Posted November 30, 2013 Unfortunately the seeker AI is programmed to never strangle units that are immune to the damage. I think I'd like to change that so that they can still immobilize those units even though no damage is dealt, making late-game seekers more about "crowd control" than killing units. Can the Seeker be awarded a trait e.g. "strangling" that would create an aim modifier too-hit? I cant understand why it isn't much harder to shoot one off your buddies face.... (assuming we cant do a collateral-damage possible outcome, making it more difficult to shoot-off seems logical to me... I'd even be tempted to give pistols a bonus to shooting the Seeker off in that case (less damage to the seeker, means it requires more effort to kill once it has been shot-off-the-face...but your best chance to actually shoot it off is to use the low-damage pistol) might be worth considering anyway. Link to comment Share on other sites More sharing options...
Recommended Posts