BlackAlpha Posted January 2, 2013 Share Posted January 2, 2013 (edited) Did anyone figure out yet how to modify the tech tree? I got kind of stuck there. Here's what I got... I found the following code inside XComStrategyGame.upk > XGTechTree function BuildTechs() { BuildTech(9, TechCost(2), 173, 0); BuildTech(10, TechCost(2), 173, 1); BuildTech(11, TechCost(3), true, 16); BuildTech(1, TechCost(2), true, 42); BuildTech(19, TechCost(6), true, 9, 23); BuildTech(20, TechCost(8), 19, 24); BuildTech(21, TechCost(8), 19, 22); BuildTech(22, TechCost(20), 13, 9, 31); BuildTech(23, TechCost(25), 14, 9, 30); BuildTech(24, TechCost(30), true, 23, 32); BuildTech(25, TechCost(35), true, 23, 29); BuildTech(26, TechCost(40), true, 34); BuildTech(28, TechCost(25), true, 28); BuildTech(27, TechCost(25), true, 33); BuildTech(29, TechCost(40), 188, 18); BuildTech(30, TechCost(40), 188, 27); BuildTech(2, TechCost(3), 1, 3); BuildTech(13, TechCost(40), true, 9); BuildTech(3, TechCost(10), true, 191, 10); BuildTech(31, TechCost(5), 177, 39); BuildTech(32, TechCost(10), 179, 40); BuildTech(5, TechCost(15), true, 32, 17); BuildTech(33, TechCost(25), 5, 15); BuildTech(12, TechCost(10), 171, 32, 14); BuildTech(14, TechCost(7), true, 10, 5); BuildTech(15, TechCost(15), 14, 7); BuildTech(16, TechCost(30), true, 14, 8); BuildTech(17, TechCost(35), true, 16, 6); BuildTech(18, TechCost(35), true, 16, 4); BuildTech(7, TechCost(30), 180, 21); BuildTech(8, TechCost(40), 189, 35); BuildTech(34, TechCost(5), 160, 1, 43, 1); BuildTech(35, TechCost(5), 162, 1, 44, 4); BuildTech(36, TechCost(5), 165, 1, 45, 2); BuildTech(39, TechCost(5), 164, 1, 46, 6); BuildTech(42, TechCost(10), 168, 1, 47, 9); BuildTech(38, TechCost(5), 167, 1, 48, 5); BuildTech(41, TechCost(5), 166, 1, 49, 3); BuildTech(40, TechCost(5), 163, 1, 50, 7); BuildTech(37, TechCost(8), 161, 1, 51, 8); BuildTech(43, TechCost(2), 144, 1, 52); BuildTech(44, TechCost(2), 146, 1, 53); BuildTech(46, TechCost(2), 149, 1, 54); BuildTech(45, TechCost(2), 148, 1, 55); BuildTech(47, TechCost(2), 154, 1, 56); BuildTech(55, TechCost(8), 153, 1, 58); BuildTech(49, TechCost(2), 152, 1, 59); BuildTech(53, TechCost(2), 157, 1, 60); BuildTech(54, TechCost(2), 156, 1, 61); BuildTech(50, TechCost(2), 151, 1, 62); BuildTech(52, TechCost(2), 150, 1, 63, 2); BuildTech(51, TechCost(2), 147, 1, 64); BuildTech(6, TechCost(8), 145, 1, 65); BalanceTechs(); } Then I looked at the following inside the same file: noexport function BuildTech(int iTech, int iHours, optional bool bCustomReqs, optional XComGame.XGGameData.EItemType eItemReq, optional XComGame.XGGameData.ETechType eTechReq, optional int iImage, optional XComGame.XGGameData.EResearchCredits eCreditGranted) { local TTech kTech; bCustomReqs = 0; // End:0x48 Loop:False if(ISCONTROLLED()) { // End:0x48 Loop:False if(iTech == 9 || (iTech == 10)) { iHours /= float(2); } } kTech.strName = class'XGLocalizedData'.default.TechTypeNames[iTech]; kTech.iTech = iTech; kTech.iHours = iHours; kTech.bCustomReqs = bCustomReqs; kTech.iItemReq = eItemReq; kTech.iTechReq = eTechReq; kTech.iImage = iImage; kTech.eCreditGranted = eCreditGranted; kTech.strSummary = GetBriefSummary(iTech, kTech.strReport, kTech.strCustom, kTech.kCost, kTech.strCodename); m_arrTechs[iTech] = kTech; } I noticed it linked to a localization file. If I'm reading that code correctly, it looks at "TechTypeNames" and uses a common number which I guess is the ID linked to the tech item. So I looked inside XComStrategyGame.int and found a bunch of strings (including "TechTypeNames") related to the tech items. They are all in the same order and each time two items are commented out. Based on that, I made the following list: ID Name Info 1. Xeno-Biology "Misc research starts here" 2. Arc Thrower 3. Outsider Shard 4. New Fighter Craft "Firestorm" 5. Sectoid Commander Autopsy 6. Hyperwave Communication 7. Ethereal Device x. ;Alien Alloys 8. Elerium 9. Psi Armor "Armors start here" 10. Carapace Armor 11. Skeleton Suit 12. Titan Armor 13. Ghost Armor 14. Archangel Armor 15. Weapon Fragments "Misc research starts here" 16. Alien Materials 17. Experimental Warfare 18. Beam Weapons "Laser weapons start here" 19. Precision Lasers 20. Heavy Lasers 21. Plasma Pistol "Plasma weapons start here" 22. Light Plasma Rifle 23. Plasma Rifle 24. Heavy Plasma 25. Plasma Sniper 26. Alloy Cannon 27. Plasma Cannon 28. Fusion Lance "UFO components start here" 29. Guided Fusion Launcher 30. Alien Nav Computer 31. UFO Power Source x. ;UFO Flight 32. EMP Cannon 33. Interrogate Sectoid "Interrogations start here" 34. Interrogate Floater 35. Interrogate Muton 36. Interrogate Sectoid Commander 37. Interrogate Berserker 38. Interrogate Thin Man 39. Interrogate Heavy Floater 40. Interrogate Muton Elite 41. Interrogate Ethereal 42. Sectoid Autopsy "Autopsies start here" 43. Floater Autopsy 44. Thin Man Autopsy 45. Muton Autopsy 46. Chryssalid Autopsy 47. Zombie Autopsy 48. Cyberdisc Autopsy 49. Berserker Autopsy 50. Heavy Floater Autopsy 51. Muton Elite Autopsy 52. Drone Autopsy 53. Sectopod Autopsy 54. Ethereal Autopsy Note that I don't know whether I should include or not the commented out items in the counting. In the above list I didn't include them in the counting, but I left them in the list. Anyway, based on that I got nowhere. Either my string list is wrong or I don't know how to use the numbers inside the Buildtechs function. Or both... Any ideas?? Edited January 2, 2013 by BlackAlpha Link to comment Share on other sites More sharing options...
twinj Posted January 2, 2013 Share Posted January 2, 2013 I noticed that there are 'patterns' in the counts from BuildTect list. These mini lists correspond to the type e.g: 9 Interrogatations I looked at default game core and these patterns seem to correspond to that list. ; Techs TechBalance=(eTech=eTech_WeaponFragments, iTime=2, iAlloys=0, iElerium=0, iNumFragments=5, iNumItems=0) TechBalance=(eTech=eTech_AlienMaterials, iTime=2, iAlloys=0, iElerium=0, iNumFragments=5, iNumItems=0) TechBalance=(eTech=eTech_Exp_Warfare, iTime=3, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_Xenobiology, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=4) TechBalance=(eTech=eTech_LaserWeapons, iTime=6, iAlloys=5, iElerium=0, iNumFragments=10, iNumItems=0) TechBalance=(eTech=eTech_PrecisionLasers, iTime=8, iAlloys=5, iElerium=0, iNumFragments=5, iNumItems=0) TechBalance=(eTech=eTech_HeavyLasers, iTime=8, iAlloys=5, iElerium=0, iNumFragments=5, iNumItems=0) TechBalance=(eTech=eTech_Plasma_Pistol, iTime=15, iAlloys=0, iElerium=5, iNumFragments=40, iNumItems=1) TechBalance=(eTech=eTech_Plasma_Light, iTime=17, iAlloys=0, iElerium=5, iNumFragments=40, iNumItems=1) TechBalance=(eTech=eTech_Plasma_Rifle, iTime=17, iAlloys=10, iElerium=10, iNumFragments=40, iNumItems=1) TechBalance=(eTech=eTech_Plasma_Heavy, iTime=17, iAlloys=10, iElerium=10, iNumFragments=40, iNumItems=1) TechBalance=(eTech=eTech_Plasma_Sniper, iTime=15, iAlloys=10, iElerium=10, iNumFragments=50, iNumItems=0) TechBalance=(eTech=eTech_Alloy_Cannon, iTime=15, iAlloys=25, iElerium=5, iNumFragments=40, iNumItems=0) TechBalance=(eTech=eTech_BlasterLauncher, iTime=20, iAlloys=20, iElerium=10, iNumFragments=75, iNumItems=0) TechBalance=(eTech=eTech_Plasma_Cannon, iTime=10, iAlloys=0, iElerium=10, iNumFragments=30, iNumItems=0) TechBalance=(eTech=eTech_EMP, iTime=20, iAlloys=0, iElerium=20, iNumFragments=0, iNumItems=40) TechBalance=(eTech=eTech_Fusion_Launcher, iTime=15, iAlloys=10, iElerium=20, iNumFragments=50, iNumItems=0) TechBalance=(eTech=eTech_ArcThrower, iTime=3, iAlloys=0, iElerium=0, iNumFragments=10, iNumItems=0) TechBalance=(eTech=eTech_BaseShard, iTime=3, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_AlienNavigation, iTime=5, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=2) TechBalance=(eTech=eTech_UFOPowerSource, iTime=7, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_Firestorm, iTime=15, iAlloys=10, iElerium=10, iNumFragments=75, iNumItems=0) TechBalance=(eTech=eTech_Elerium, iTime=7, iAlloys=0, iElerium=10, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_Armor_Carapace, iTime=7, iAlloys=10, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_Armor_Skeleton, iTime=10, iAlloys=15, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_Armor_Titan, iTime=20, iAlloys=15, iElerium=5, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_Armor_Ghost, iTime=17, iAlloys=15, iElerium=15, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_Armor_ArchAngel, iTime=17, iAlloys=15, iElerium=15, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_PsiArmor, iTime=15, iAlloys=10, iElerium=10, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_Hyperwave, iTime=8, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_PsiLink, iTime=10, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateSectoid, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateFloater, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateMuton, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateThinMan, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateEthereal, iTime=10,iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateBerserker, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateMutonElite, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateHeavyFloater, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_InterrogateSectoidCommander, iTime=6, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) TechBalance=(eTech=eTech_AutopsySectoid, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyFloater, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyMuton, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyThinMan, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyCryssalid, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyEthereal, iTime=6, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyCyberdisc, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyDrone, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsySectopod, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyBerserker, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyMutonElite, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsyHeavyFloater, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) TechBalance=(eTech=eTech_AutopsySectoidCommander, iTime=3, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=1) Link to comment Share on other sites More sharing options...
BlackAlpha Posted January 2, 2013 Author Share Posted January 2, 2013 Could you clarify which patterns do you mean exactly? Link to comment Share on other sites More sharing options...
twinj Posted January 2, 2013 Share Posted January 2, 2013 (edited) Sry mate working at the same time! The numbers in the BuildTech function list are in what seem to be random orders. 42. Sectoid Autopsy "Autopsies start here"43. Floater Autopsy44. Thin Man Autopsy45. Muton Autopsy46. Chryssalid Autopsy47. Zombie Autopsy48. Cyberdisc Autopsy49. Berserker Autopsy50. Heavy Floater Autopsy51. Muton Elite Autopsy52. Drone Autopsy53. Sectopod Autopsy54. Ethereal Autopsy There is 13 in this list which corresponds to the bottom of the Build tech list, However, the last id in BuildTech list is a 6... which you have as 5 in your list. The best example is Interrogations. TechBalance=(eTech=eTech_InterrogateSectoid, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0)TechBalance=(eTech=eTech_InterrogateFloater, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0)TechBalance=(eTech=eTech_InterrogateMuton, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0)TechBalance=(eTech=eTech_InterrogateThinMan, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0)TechBalance=(eTech=eTech_InterrogateEthereal, iTime=10,iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0)TechBalance=(eTech=eTech_InterrogateBerserker, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0)TechBalance=(eTech=eTech_InterrogateMutonElite, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0)TechBalance=(eTech=eTech_InterrogateHeavyFloater, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0)TechBalance=(eTech=eTech_InterrogateSectoidCommander, iTime=6, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=0) Nine BuildTech(34, TechCost(5), 160, 1, 43, 1); BuildTech(35, TechCost(5), 162, 1, 44, 4); BuildTech(36, TechCost(5), 165, 1, 45, 2); BuildTech(39, TechCost(5), 164, 1, 46, 6); BuildTech(42, TechCost(10), 168, 1, 47, 9); BuildTech(38, TechCost(5), 167, 1, 48, 5); BuildTech(41, TechCost(5), 166, 1, 49, 3); BuildTech(40, TechCost(5), 163, 1, 50, 7); BuildTech(37, TechCost(8), 161, 1, 51, 8); Note the closeness of the id's. TechBalance=(eTech=eTech_Xenobiology, iTime=2, iAlloys=0, iElerium=0, iNumFragments=0, iNumItems=4) at position 4 corresponds with position 1 in BuildTech and 1 on your list. Edited January 2, 2013 by twinj Link to comment Share on other sites More sharing options...
twinj Posted January 2, 2013 Share Posted January 2, 2013 If you look at BalanceTechs function it loops over the XComGameIni to balance each tech. It does this in order skipping 0. Using this enum enum ETechType{ eTech_None, eTech_Xenobiology, eTech_ArcThrower, eTech_BaseShard, eTech_PsiLabs, eTech_Firestorm, eTech_AutopsySectoidCommander, eTech_Hyperwave, eTech_PsiLink, eTech_WeaponFragments, eTech_AlienMaterials, eTech_Exp_Warfare, eTech_Elerium, eTech_PsiArmor, eTech_Armor_Carapace, eTech_Armor_Skeleton, eTech_Armor_Titan, eTech_Armor_Ghost, eTech_Armor_ArchAngel, eTech_LaserWeapons, eTech_PrecisionLasers, eTech_HeavyLasers, eTech_Plasma_Pistol, eTech_Plasma_Light, eTech_Plasma_Rifle, eTech_Plasma_Heavy, eTech_Plasma_Sniper, eTech_Alloy_Cannon, eTech_Plasma_Cannon, eTech_Fusion_Launcher, eTech_BlasterLauncher, eTech_AlienNavigation, eTech_UFOPowerSource, eTech_EMP, eTech_InterrogateSectoid, eTech_InterrogateFloater, eTech_InterrogateMuton, eTech_InterrogateSectoidCommander, eTech_InterrogateBerserker, eTech_InterrogateThinMan, eTech_InterrogateHeavyFloater, eTech_InterrogateMutonElite, eTech_InterrogateEthereal, eTech_AutopsySectoid, eTech_AutopsyFloater, eTech_AutopsyThinMan, eTech_AutopsyMuton, eTech_AutopsyCryssalid, eTech_AutopsyZombie, eTech_AutopsyCyberdisc, eTech_AutopsyBerserker, eTech_AutopsyHeavyFloater, eTech_AutopsyMutonElite, eTech_AutopsyDrone, eTech_AutopsySectopod, eTech_AutopsyEthereal, eTech_Placeholder, eTech_MAX}; ID Name Info 1. Xeno-Biology "Misc research starts here" 2. Arc Thrower 3. Outsider Shard 5. New Fighter Craft "Firestorm" 6. Sectoid Commander Autopsy 7. Hyperwave Communication 8. Ethereal Device x. ;Alien Alloys 12. Elerium 13. Psi Armor "Armors start here" 14. Carapace Armor 15. Skeleton Suit 16. Titan Armor 17. Ghost Armor 18. Archangel Armor 9. Weapon Fragments "Misc research starts here" 10. Alien Materials 11. Experimental Warfare 19. Beam Weapons "Laser weapons start here" 20. Precision Lasers 21. Heavy Lasers 22. Plasma Pistol "Plasma weapons start here" 23. Light Plasma Rifle 24. Plasma Rifle 25. Heavy Plasma 26. Plasma Sniper 27. Alloy Cannon 28. Plasma Cannon 29. Fusion Lance "UFO components start here" 30. Guided Fusion Launcher 31. Alien Nav Computer 32. UFO Power Source x. ;UFO Flight 33. EMP Cannon 34. Interrogate Sectoid "Interrogations start here" 35. Interrogate Floater 36. Interrogate Muton 37. Interrogate Sectoid Commander 38. Interrogate Berserker 39. Interrogate Thin Man 40. Interrogate Heavy Floater 41. Interrogate Muton Elite 42. Interrogate Ethereal 43. Sectoid Autopsy "Autopsies start here" 44. Floater Autopsy 45. Thin Man Autopsy 46. Muton Autopsy 47. Chryssalid Autopsy 48. Zombie Autopsy 49. Cyberdisc Autopsy 50. Berserker Autopsy 51. Heavy Floater Autopsy 52. Muton Elite Autopsy 53. Drone Autopsy 54. Sectopod Autopsy 55. Ethereal Autopsy This mostly corresponds to the pattern I mentioned. Some are out. But hey it led me here. I think the order also has something to do with pre requisite research also. This is why Sectoid commander is up the top. Link to comment Share on other sites More sharing options...
Yzaxtol Posted February 19, 2013 Share Posted February 19, 2013 I've been modding the TechTree of my recent tinkering with BlackAlpha's Warspace mod and i've made a few notations of the BuildTech function: BuildTech(34, TechCost(5), 160, 1, 43, 1); #34 = Tech ID / int iTech .Using twinjs list of IDs this would put it as being the Interrogate Sectoid. #5 = Tech Time / int iHours.How long it takes to research. #160 = Item ID / optional XComGame.XGGameData.EItemType eItemReq. This can deduced to be the Sectoid Captive Item ID, most 100+ numbers in the BuildTech function are items. #1 = Tech Requiremnt / optional XComGame.XGGameData.ETechType eTechReq. #1 on Twinjs list is Xeno-biology which fits with the Interrogate Sectoid Tech. #43 = Image ID / optional int iImage.This dictates the image you will receive when browsing this tech in the Research Lab UI. #43 is the image used for Interrogate Sectoid. #1 = Research Credit ID / optional XComGame.XGGameData.EResearchCredits eCreditGranted. This number that you will only find with 4 seperate values after the TechCost(#) for Interrogations and the Muton Elite Autopsy. These are the IDs given to each of the research credits. As you can see most of the values are 'optional' to you will have to discover which Tech is using which values before you make changes. There are alot of True values, I have no idea what they do except that further down in the code, using UE Explorerer they are used to make AND and OR cases for tech (main example is Experimental Warfare needing EITHER Alien Materials OR Weapon Fragments. Link to comment Share on other sites More sharing options...
Yzaxtol Posted February 21, 2013 Share Posted February 21, 2013 (edited) I've already succesfully replaced the pre-requisite for Elerium to be Alien Materials, instead of UFO Power Source and replaced the pre-requisite for EMP Cannon to be the UFO Power Source. Also all plasma weapons require Elerium to be researched. Except for the Plasma Weapons with TRUE values that unlock after an item is looted. case 24: return LABS().IsResearched(23) || (LABS().IsResearched(25)) || (STORAGE().EverHadItem(15)); // End:0x5be break; // End:0x1e1 case 25: return LABS().IsResearched(24) || (STORAGE().EverHadItem(17)); // End:0x5be break; // End:0x233 I'm incredibly new with making .upk changes, and I am fairly scared to be changing the Code to add 'LABS().IsResearched(12) &&' at the beginning of the code, if that even works :S Edited February 21, 2013 by Yzaxtol Link to comment Share on other sites More sharing options...
Yzaxtol Posted March 11, 2013 Share Posted March 11, 2013 function BuildFoundryTechs(){ m_arrFoundryTechs.Add(19); BuildFoundryTech(1, 7, 5, 70, 0); BuildFoundryTech(2, 7, 10, 75, 11, 9); BuildFoundryTech(8, 14, 10, 175, 33, 1); BuildFoundryTech(9, 14, 10, 175, 53, 2); BuildFoundryTech(3, 14, 5, 125, 45, 3); BuildFoundryTech(4, 14, 10, 100, 20, 12, 4); BuildFoundryTech(10, 14, 5, 150, 35, 46, 5); BuildFoundryTech(6, 14, 5, 125, 35, 21, 6); BuildFoundryTech(7, 14, 10, 250, 25, 50, 25, 7); BuildFoundryTech(11, 14, 15, 325, 50, 50, 18, 8); BuildFoundryTech(12, 14, 15, 375, 30, 50, 54, 10); BuildFoundryTech(5, 14, 15, 175, 30, 40, 51, 11); BuildFoundryTech(13, 7, 5, 75, 0, 0, 12); BuildFoundryTech(14, 7, 5, 150, 0, 20, 19, 13); BuildFoundryTech(15, 14, 10, 250, 30, 40, 22, 14); BuildFoundryTech(16, 14, 5, 75, 0, 0, 15); BuildFoundryTech(17, 7, 5, 150, 31, 16); BuildFoundryTech(18, 7, 10, 75, 9, 17); BalanceFoundry();} 1, SHIV, 2, AlienGrenades, 8, SHIV_Heal, 9, CaptureDrone, 3, MedikitII, 4, ArcThrowerII, 10, AmmoConservation, 6, AutomatedLasers, 7, AutomatedPlasma, 11, AdvancedFlight, 12, AdvancedConstruction,5, VehicleRepair, 13, PistolI, 14, PistolII, 15, PistolIII, 16, SHIVSuppression, 17, StealthSatellites, 18, Scope, Link to comment Share on other sites More sharing options...
Recommended Posts