Jump to content

Changing the tech tree


BlackAlpha

Recommended Posts

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 by BlackAlpha
Link to comment
Share on other sites

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

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 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

 

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 by twinj
Link to comment
Share on other sites

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

  • 1 month later...

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

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 by Yzaxtol
Link to comment
Share on other sites

  • 3 weeks later...

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...