Yzaxtol Posted March 18, 2013 Share Posted March 18, 2013 (edited) I've been debating with myself how to fix the problem with running out of old corpses for the UFO modules, especially since UFO combat has been overhauled recently. While still leaving the Autopsies feeling like a worthwhile investment. So I decided to completely seperate the two entities. With corpses only affecting foundry projects and a few items. And the Interceptions modules requiring different tech more inline with the idea of researching alien crafts for upgrades and weaknesses. Mainly Navigation and Power source, for Dodge and Boost. here's my initial ideas for people to mess around with, because as usual I've hit my limits on coding with upks :( But my ideas... they can't die with my ineptitude. Ok In XComStrategyGame.XGTechTree function BuildFoundryItemCost The Original Foundry Item Cost code. function BuildFoundryItemCost(int iTech, out TFoundryTech kTech){// End:0xe7 Loop:Falseif(iTech == 10){kTech.kCost.arrItems.AddItem(149);kTech.kCost.arrItemQuantities.AddItem(6);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x1ce Loop:Falseif(iTech == 9){kTech.kCost.arrItems.AddItem(157);kTech.kCost.arrItemQuantities.AddItem(4);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x2b5 Loop:Falseif(iTech == 3){kTech.kCost.arrItems.AddItem(148);kTech.kCost.arrItemQuantities.AddItem(4);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x406 Loop:Falseif(iTech == 11){kTech.kCost.arrItems.AddItem(147);kTech.kCost.arrItemQuantities.AddItem(2);kTech.kCost.arrItems.AddItem(157);kTech.kCost.arrItemQuantities.AddItem(2);kTech.kCost.arrItems.AddItem(152);kTech.kCost.arrItemQuantities.AddItem(2);}// End:0xa9felse{// End:0x4ed Loop:Falseif(iTech == 12){kTech.kCost.arrItems.AddItem(156);kTech.kCost.arrItemQuantities.AddItem(2);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x56a Loop:Falseif(iTech == 7){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(30);}// End:0xa9felse{// End:0x5e7 Loop:Falseif(iTech == 6){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(15);}// End:0xa9felse{// End:0x664 Loop:Falseif(iTech == 5){kTech.kCost.arrItems.AddItem(147);kTech.kCost.arrItemQuantities.AddItem(4);}// End:0xa9felse{// End:0x74b Loop:Falseif(iTech == 4){kTech.kCost.arrItems.AddItem(157);kTech.kCost.arrItemQuantities.AddItem(4);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x831 Loop:Falseif(iTech == 2){kTech.kCost.arrItems.AddItem(88);kTech.kCost.arrItemQuantities.AddItem(1);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x8ae Loop:Falseif(iTech == 17){kTech.kCost.arrItems.AddItem(177);kTech.kCost.arrItemQuantities.AddItem(3);}// End:0xa9felse{// End:0x92b Loop:Falseif(iTech == 13){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(5);}// End:0xa9felse{// End:0x9a8 Loop:Falseif(iTech == 14){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(25);}// End:0xa9felse{// End:0xa25 Loop:Falseif(iTech == 15){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(50);}// End:0xa9felse{// End:0xa9f Loop:Falseif(iTech == 18){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(15);}}}}}}}}}}}}}}}} My Idea, switch Drone corpses(157) to Floater Corpses(146) for ArcThrower II(4), removing the 2 extra types of corpses from advanced flight(11) to JUST Heavy floaters(147), 6 of them and then add corpse requirement to S.C.O.P.E. Upgrade(18). 6 Sectoid Corpses(144). Change Tech 14(Useless Pistol II) to 8, SHIV Repair and make it require 4 Floater Corpses(152). For my mod I would be doubling the corpse count for all foundry tech.function BuildFoundryItemCost(int iTech, out TFoundryTech kTech){// End:0xe7 Loop:Falseif(iTech == 10){kTech.kCost.arrItems.AddItem(149);kTech.kCost.arrItemQuantities.AddItem(6);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x1ce Loop:Falseif(iTech == 9){kTech.kCost.arrItems.AddItem(157);kTech.kCost.arrItemQuantities.AddItem(4);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x2b5 Loop:Falseif(iTech == 3){kTech.kCost.arrItems.AddItem(148);kTech.kCost.arrItemQuantities.AddItem(4);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x406 Loop:Falseif(iTech == 11){kTech.kCost.arrItems.AddItem(147);kTech.kCost.arrItemQuantities.AddItem(6);}// End:0xa9felse{// End:0x4ed Loop:Falseif(iTech == 12){kTech.kCost.arrItems.AddItem(156);kTech.kCost.arrItemQuantities.AddItem(2);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x56a Loop:Falseif(iTech == 7){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(30);}// End:0xa9felse{// End:0x5e7 Loop:Falseif(iTech == 6){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(15);}// End:0xa9felse{// End:0x664 Loop:Falseif(iTech == 5){kTech.kCost.arrItems.AddItem(147);kTech.kCost.arrItemQuantities.AddItem(4);}// End:0xa9felse{// End:0x74b Loop:Falseif(iTech == 4){kTech.kCost.arrItems.AddItem(146);kTech.kCost.arrItemQuantities.AddItem(4);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x831 Loop:Falseif(iTech == 2){kTech.kCost.arrItems.AddItem(88);kTech.kCost.arrItemQuantities.AddItem(1);kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(20);}// End:0xa9felse{// End:0x8ae Loop:Falseif(iTech == 17){kTech.kCost.arrItems.AddItem(177);kTech.kCost.arrItemQuantities.AddItem(3);}// End:0xa9felse{// End:0x92b Loop:Falseif(iTech == 13){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(5);}// End:0xa9felse{// End:0x9a8 Loop:Falseif(iTech == 8 ){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(25);kTech.kCost.arrItems.AddItem(152);kTech.kCost.arrItemQuantities.AddItem(2);}// End:0xa9felse{// End:0xa25 Loop:Falseif(iTech == 15){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(50);}// End:0xa9felse{// End:0xa9f Loop:Falseif(iTech == 18){kTech.kCost.arrItems.AddItem(173);kTech.kCost.arrItemQuantities.AddItem(15);kTech.kCost.arrItems.AddItem(144);kTech.kCost.arrItemQuantities.AddItem(6);}}}}}}}}}}}}}}}} Then you'll probably need to switch the Tech requirements for the Foundry projects in BuildFoundryTechs to the Autopsy of the Corpses in questionfunction BuildFoundryTechs(){ m_arrFoundryTechs.Add(19); BuildFoundryTech(1, 7, 5, 70, 0); BuildFoundryTech(2, 7, 10, 75, 12, 9); BuildFoundryTech(8, 14, 10, 175, 44, 1); BuildFoundryTech(9, 14, 10, 175, 53, 2); BuildFoundryTech(3, 14, 5, 125, 45, 3); BuildFoundryTech(4, 14, 10, 100, 20, 49, 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, 43, 17); BalanceFoundry();} Also might want to change the Tech and corpse requirements for the Interception Modules. //Aim Uplink: Weapon Fragments BuildItem(135, 10, 0, 0, 0, 5, 9, 47);//Dodge Module: Alien Navigation BuildItem(133, 50, 0, 0, 0, 5, 31, 20);//Track Boost : UFO Power Source BuildItem(134, 20, 0, 0, 0, 10, 32, 58); ==== XGFacility_Engineering ====>>>> noexport function TProjectCost GetItemProjectCost(XComGame.XGGameData.EItemType eItem, int iQuantity, optional bool Brush)Changed:kCost.arrItems.AddItem(144);kCost.arrItemQuantities.AddItem(ItemAmount(3));kCost.arrItems.AddItem(146);kCost.arrItemQuantities.AddItem(ItemAmount(3));kCost.arrItems.AddItem(152);kCost.arrItemQuantities.AddItem(ItemAmount(2));To:kCost.arrItems.AddItem(144);kCost.arrItemQuantities.AddItem(ItemAmount(0));kCost.arrItems.AddItem(146);kCost.arrItemQuantities.AddItem(ItemAmount(0));kCost.arrItems.AddItem(152);kCost.arrItemQuantities.AddItem(ItemAmount(0));This makes it so no corpse are needed to create an aircraft powerup.HEX Hint:Change:03 16 16 06 84 05 07 C1 02 9A 38 3A 00 28 2A 00 00 38 3A 24 85 16 55 35 05 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 03 00 2C 92 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 03 16 16 06 84 05 07 26 03 9A 38 3A 00 28 2A 00 00 38 3A 24 86 16 55 35 05 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 03 00 2C 98 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 02To:00 16 16 06 84 05 07 C1 02 9A 38 3A 00 28 2A 00 00 38 3A 24 85 16 55 35 05 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 03 00 2C 92 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 00 16 16 06 84 05 07 26 03 9A 38 3A 00 28 2A 00 00 38 3A 24 86 16 55 35 05 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 03 00 2C 98 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 00 In the End you should have the 3 Interception modules being researched by UFO-based tech, costing no corpses and capable of being mass-produced at every stage of the game. AND Autopsies and Corpses are now consistently useful throughout the game as unlocking most of the upgrades in the Foundry and permenant items. Current UPK Changes made //***Autopsy and Foundry Projects**\\Cyberdisc Autopsy = 31Floater Autopsy = 2CSectoid Autopsy = 2BSHIV Repair to require24 08 2C 0E 2C 0A 2C AF 4A 4A 24 21TO24 08 2C 0E 2C 0A 2C AF 4A 4A 24 31ArcThrower II to require24 04 2C 0E 2C 0A 2C 64 2C 14 4A 24 0CTO24 04 2C 0E 2C 0A 2C 64 2C 14 4A 24 2CS.C.O.P.E. Upgrade to require24 12 2C 07 2C 0A 2C 4B 4A 4A 24 09TO24 12 2C 07 2C 0A 2C 4B 4A 4A 24 2BInterception Modules to require UFO-type Tech, not Autopsies 2C 87 2C 0A 25 25 25 2C 05 24 2B 4A 4A 2C 2F 16 1B 6E 04 00 00 00 00 00 00 2C 85 2C 32 25 25 25 2C 05 24 2C 4A 4A 2C 14 16 1B 6E 04 00 00 00 00 00 00 2C 86 2C 14 25 25 25 2C 0A 24 31 4A 4A 2C 3A 16TO2C 87 2C 0A 25 25 25 2C 05 24 09 4A 4A 2C 2F 16 1B 6E 04 00 00 00 00 00 00 2C 85 2C 32 25 25 25 2C 05 24 1F 4A 4A 2C 14 16 1B 6E 04 00 00 00 00 00 00 2C 86 2C 14 25 25 25 2C 0A 24 20 4A 4A 2C 3A 16This makes it so no corpses are needed to create an aircraft powerup.Just Weapon Fragments. (5/10/15)2C 90 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 03 16 16 06 84 05 07 C1 02 9A 38 3A 00 28 2A 00 00 38 3A 24 85 16 55 35 05 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 03 00 2C 92 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 03 16 16 06 84 05 07 26 03 9A 38 3A 00 28 2A 00 00 38 3A 24 86 16 55 35 05 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 03 00 2C 98 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 02To:2C AD 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 05 16 16 06 84 05 07 C1 02 9A 38 3A 00 28 2A 00 00 38 3A 24 85 16 55 35 05 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 03 00 2C AD 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 0A 16 16 06 84 05 07 26 03 9A 38 3A 00 28 2A 00 00 38 3A 24 86 16 55 35 05 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 03 00 2C AD 16 55 35 04 03 00 00 09 03 00 00 00 00 00 23 2A 00 00 0D 00 1B 10 15 00 00 00 00 00 00 2C 0F Edited March 19, 2013 by Yzaxtol Link to comment Share on other sites More sharing options...
Yzaxtol Posted March 18, 2013 Author Share Posted March 18, 2013 Some possible changes. Aim Uplink could be under Experimental Warfare instead, and Floaters and Cyerdiscs could be swapped for the foundry. Cyberdiscs granting Repair and Floaters granting Arcthrower II. Link to comment Share on other sites More sharing options...
Amineri Posted March 18, 2013 Share Posted March 18, 2013 I really like the concept of grouping together some of the weaker enhancements under fewer projects, as that would free up project slots for adding in new capabilities (the alternative being, of course, to enhance those weaker enhancements). However, a lot of this depends on being able to update the UI in order to properly display what is actually happening. I'm finding that it is a lot easier to change the underlying mechanics then to update what gets displayed to the player. And it bugs me ... there's only so much "you just have to remember that this is different from vanilla" that a person can get away with. Looking at what it is that you want to do ... perhaps we should come up with some sort of mini-tool that would enable a modder to more easily manipulate these things. A lot of the changes you want don't seem super -difficult- but can be fairly time-consuming. Semi-automating that process would be really handy. And if EliotVU happens to read this the ability to export the embedded actionscript would be really handy for updating those pesky UIs (hint ^_^ ) Link to comment Share on other sites More sharing options...
Yzaxtol Posted March 19, 2013 Author Share Posted March 19, 2013 (edited) In my mod I also change the localisation files, atleast for english, describing the changes I've made somewhere in the game, hopefully where they will read it. The main thing I'm stumped on at the moment is changing the Item requirements (Corpses) I'm going to be making all the other changes on my mod and will release the HEX code so people can follow but modifying the Item requirement function to that extent is beyond me as I have no idea when the Cases start or finish, I generally just look for bytes immediately after 24, or 2C. :S Edited March 19, 2013 by Yzaxtol Link to comment Share on other sites More sharing options...
Yzaxtol Posted March 19, 2013 Author Share Posted March 19, 2013 (edited) Added UPK changes i've made... just need to tidy up the foundry projects with the corpses (sounds strange) if anyone is able to help I'd really appreciate it :biggrin: I've formatted the HEX code to be fairly readable if you compare it to the BuildFoundryItemCost code. 10 46 00 00 AB 1F 00 00 00 00 00 00 0E 46 00 00 00 00 00 00 00 00 00 00 10 46 00 00 00 00 00 00 86 02 00 00 3E 76 00 00 A2 0A 00 00 CE 06 00 00 07 E7 00 9A 00 10 46 00 002C 0A 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 95 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 06 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 14 16 06 9F 0A 07 CE 01 9A 00 10 46 00 002C 09 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 9D 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 04 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 14 16 06 9F 0A 07 B5 02 9A 00 10 46 00 002C 03 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 94 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 04 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 14 16 06 9F 0A 07 06 04 9A 00 10 46 00 002C 0B 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 93 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 02 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 9D 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 02 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 98 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 02 16 06 9F 0A 07 ED 04 9A 00 10 46 00 002C 0C 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 9C 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 02 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 14 16 06 9F 0A 07 6A 05 9A 00 10 46 00 002C 07 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 1E 16 06 9F 0A 07 E7 05 9A 00 10 46 00 002C 06 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 0F 16 06 9F 0A 07 64 06 9A 00 10 46 00 002C 05 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 93 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 04 16 06 9F 0A 07 4B 07 9A 00 10 46 00 002C 04 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 9D 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 04 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 14 16 06 9F 0A 07 31 08 9A 00 10 46 00 002C 02 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 58 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 02 00 26 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 14 16 06 9F 0A 07 AE 08 9A 00 10 46 00 002C 11 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C B1 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 03 16 06 9F 0A 07 2B 09 9A 00 10 46 00 002C 0D 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 05 16 06 9F 0A 07 A8 09 9A 00 10 46 00 002C 0E 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 19 16 06 9F 0A 07 25 0A 9A 00 10 46 00 002C 0F 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 32 16 06 9F 0A 07 9F 0A 9A 00 10 46 00 002C 12 16 55 35 24 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C AD 16 55 35 23 1E 00 00 28 1E 00 00 00 00 35 38 1E 00 00 44 1E 00 00 00 00 48 0F 46 00 00 03 00 2C 0F 16 04 0B 53 00 00 00 02 00 42 00 65 04 00 00 00 00 00 00 Edited March 19, 2013 by Yzaxtol Link to comment Share on other sites More sharing options...
anUser Posted March 20, 2013 Share Posted March 20, 2013 (edited) I really like the concept... it makes more sense, moreover many times I run out of sectoids if I've got to sell them early in the game... I wanted to re-do techs and foundry projects a bit too, and I'll definitively incorporate this into my game. I def can give you some guidance on how to change the code yourself (yesterday I managed to get jumps to work! yay! and found that switch cases follow the same pattern), but I can't post my code since it wouldn't work on your game. I guess the main difficulty lays in adjusting those lines with multiple items that now only require 1 and vice versa, so if I may suggest, you could try to change the order in which things appear to make use of current structure (ie, if tech110 has item1 and item2, and tech112 has only 1 item, and you want it the other way, instead of re-writting those two sentences just change the order in which they appear, so first tech112 with 1 item, then tech110 with 2 items. It's a theoretical example, I actually haven't gone deep through the code). I know it's not perfect but it's a bit more you can do without changing jumps and offsets (it's like if you change the shape of the sentences [not the content], you got to tell the game where some relevant sentences start, since their position has been moved, kind of). If you're interested in re-scripting there's tons of examples and useful stuff in this thread, or maybe some modder with the latest patch will mod it out since it's a cool idea. Btw, as it seems to me you're already familiar with stuff involving research, foundry projects, items, etc, could you please post those, or the class where they are defined? I'm asking 'cause I assume you've got them in a text file, if you don't then don't worry I'll search it myself edit: typo Edited March 20, 2013 by anUser Link to comment Share on other sites More sharing options...
Yzaxtol Posted March 20, 2013 Author Share Posted March 20, 2013 (edited) There's probably a really easy programmer way of finding these out, but I treated it like a massive sudoku puzzle :D XComStrategyGame.UPK XGTechTree.BuildFoundryTechs 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, XGItemtree . BuildItems function BuildItems(){m_iCurrentCategory = 1;//Starting Gear//Pistol(??)BuildItem(2, -1, -1, -1, 37);//Rifle(??)BuildItem(3, -1, -1, -1, 16);//Shotgun(??)BuildItem(4, -1, -1, -1, 54);//LMG(??)BuildItem(5, -1, -1, -1, 31);//Sniper Rifle(??)BuildItem(6, -1, -1, -1, 57);//Rocket Launcher(??)BuildItem(7, -1, -1, -1, 45);//Smoke Grenade(??)BuildItem(85, -1, -1, -1, 23);//Battle Scanner(??)BuildItem(86, -1, -1, -1, 56);//MedkitBuildItem(76, 25, 7, 5, 32);//Alien GrenadeBuildItem(88, -1, -1, -1, 2, 6);//Arc-ThrowerBuildItem(80, 10, 7, 5, 2, 8 );//Frag Grenade(???)BuildItem(99, -1, -1, -1, 17);//SCOPEBuildItem(81, 20, 7, 5, 9, 48);//Nano-Fiber VestBuildItem(82, 20, 7, 5, 10, 36);//Chitin PlatingBuildItem(79, 85, 7, 10, 47, 18);//Combat-StimsBuildItem(77, 50, 7, 10, 50, 151, 19);//Mind ShieldBuildItem(78, 150, 10, 25, 55, 34);//Skeleton KeyBuildItem(192, 25, 20, 20, 7, 15, 3, 55);//Laser PistolBuildItem(8, 10, 10, 7, 10, 19, 27);//Laser RifleBuildItem(9, 25, 15, 7, 12, 19, 28);//Scatter laserBuildItem(10, 30, 25, 7, 12, 20, 29);//Laser SniperBuildItem(12, 35, 25, 7, 12, 20, 30);//Heavy LaserBuildItem(11, 30, 25, 7, 12, 21, 26);//Plasma PistolBuildItem(13, 100, 10, 20, 10, 20, 22, 40);//Light Plasma RifleBuildItem(14, 125, 15, 20, 10, 20, 23, 42);//Plasma RifleBuildItem(15, 200, 20, 30, 10, 20, 24, 41);//Alloy CannonBuildItem(16, 200, 20, 50, 12, 25, 27, 43);//Heavy PlasmaBuildItem(17, 250, 30, 30, 10, 25, 25, 39);//Plasma SniperBuildItem(18, 250, 25, 30, 15, 25, 26, 44);//Blaster LauncherBuildItem(19, 275, 35, 40, 15, 40, 30, 38);m_iCurrentCategory = 2;//Kevlar Armor(???)BuildItem(57, -1, -1, -1, 12);//Carapace ArmorBuildItem(58, 25, 15, 10, 10, 14, 10);//Skeleton SuitBuildItem(59, 30, 10, 10, 15, 15, 14);//Titan ArmorBuildItem(60, 150, 10, 35, 10, 25, 16, 15);//Archangel ArmorBuildItem(61, 200, 16, 30, 14, 35, 18, 9);//Ghost ArmorBuildItem(62, 250, 20, 25, 14, 40, 17, 11);//Psi ArmorBuildItem(63, 400, 40, 20, 10, 30, 13, 13);m_iCurrentCategory = 3;//SHIVBuildItem(102, 50, 14, 5, 1, 49);//Alloy SHIVBuildItem(103, 100, 25, 14, 10, 14, 1, 50);//Hover SHIVBuildItem(104, 200, 30, 30, 14, 20, 5, 1, 51);//Interceptor(???)BuildItem(105, 40, -1, -1, 25);//FirestormBuildItem(106, 275, 40, 60, 21, 20, 5, 21);//Skyranger(???)BuildItem(107, -1, -1, -1, 66);//SatelliteBuildItem(108, 100, 20, 5, 46);//Small ScoutBuildItem(113, -1, -1, -1, 1, 52);//Large ScoutBuildItem(115, -1, -1, -1, 53);//AbductorBuildItem(116, -1, -1, -1, 65);//Supply BargeBuildItem(117, -1, -1, -1, 1, 49);//BattleshipBuildItem(118, -1, -1, -1, 50);//OverseerBuildItem(119, -1, -1, -1, 51);//Pheonix CannonBuildItem(123, 25, 7, 5, 11, 2);//Avalanche MissilesBuildItem(124, -1, -1, -1, 4);//Laser CannonBuildItem(125, 35, 25, 7, 10, 21, 3);//Plasma CannonBuildItem(126, 100, 20, 20, 10, 20, 28, 5);//EMP CannonBuildItem(127, 200, 20, 30, 10, 30, 33, 0);//Fusion LanceBuildItem(128, 150, 20, 30, 10, 35, 29, 1);//Aim UplinkBuildItem(135, 10, 0, 0, 0, 5, 43, 47);//Dodge ModuleBuildItem(133, 50, 0, 0, 0, 5, 44, 20);//Track BoostBuildItem(134, 20, 0, 0, 0, 10, 49, 58);m_iCurrentCategory = 5;//EleriumBuildItem(171, 3, 1, -1, -1, 14);//AlloyBuildItem(172, 2, 1, -1, -1, 36);//FragmentsBuildItem(173, 1, -1, -1, 0);//Outsider ShardBuildItem(191, -1, -1, -1, 40);//Power SourceBuildItem(179, 75, -1, -1, 44);//Nav ComputerBuildItem(177, 40, -1, -1, 43);//Alien Misc ItemsBuildItem(175, 10, -1, -1, 46);BuildItem(174, 17, -1, -1, 47);BuildItem(176, 10, -1, -1, 48);BuildItem(178, 25, -1, -1, 49);//Fusion CoreBuildItem(188, 125, -1, -1, 45);//Hyperwave BeaconBuildItem(180, -1, -1, -1, 193);//Etheral DeviceBuildItem(189, -1, -1, -1, 51);//Alien Damaged ItemsBuildItem(186, 30, -1, -1, 163);BuildItem(184, 20, -1, -1, 199);BuildItem(182, 5, -1, -1, 199);BuildItem(181, 5, -1, -1, 199);BuildItem(183, 5, -1, -1, 199);BuildItem(185, 10, -1, -1, 186);BuildItem(187, 45, -1, -1, 193);m_iCurrentCategory = 6;//CorpsesBuildItem(144, 5, -1, -1, 52);BuildItem(146, 5, -1, -1, 53);BuildItem(148, 5, -1, -1, 55);BuildItem(149, 5, -1, -1, 54);BuildItem(154, 5, -1, -1, 56);BuildItem(152, 7, -1, -1, 59);BuildItem(156, 10, -1, -1, 61);BuildItem(157, 2, -1, -1, 60);BuildItem(153, 15, -1, -1, 58);BuildItem(145, 10, -1, -1, 65);BuildItem(151, 5, -1, -1, 62);BuildItem(150, 8, -1, -1, 63);BuildItem(147, 6, -1, -1, 64);//CaptivesBuildItem(160, -1, -1, -1, 52);BuildItem(162, -1, -1, -1, 53);BuildItem(164, -1, -1, -1, 55);BuildItem(165, -1, -1, -1, 54);BuildItem(168, -1, -1, -1, 58);BuildItem(161, -1, -1, -1, 65);BuildItem(167, -1, -1, -1, 62);BuildItem(166, -1, -1, -1, 63);BuildItem(163, -1, -1, -1, 64);BalanceItems();} XGTechTree.BuildTechs 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(); ID. Name "Info"1. Xeno-Biology "Misc research starts here"2. Arc Thrower3. Outsider Shard4. Discover Psionic Soldier5. New Fighter Craft "Firestorm"6. Sectoid Commander Autopsy7. Hyperwave Communication8. Ethereal Device 9. Weapon Fragments "Misc research starts here"10. Alien Materials11. Experimental Warfare12. Elerium13. Psi Armor "Armors start here"14. Carapace Armor15. Skeleton Suit16. Titan Armor17. Ghost Armor18. Archangel Armor19. Beam Weapons "Laser weapons start here"20. Precision Lasers21. Heavy Lasers22. Plasma Pistol "Plasma weapons start here"23. Light Plasma Rifle24. Plasma Rifle25. Heavy Plasma26. Plasma Sniper27. Alloy Cannon28. Plasma Cannon29. Fusion Lance "UFO components start here"30. Guided Fusion Launcher31. Alien Nav Computer32. UFO Power Source33. EMP Cannon34. Interrogate Sectoid "Interrogations start here"35. Interrogate Floater36. Interrogate Muton37. Interrogate Sectoid Commander38. Interrogate Berserker39. Interrogate Thin Man40. Interrogate Heavy Floater41. Interrogate Muton Elite42. Interrogate Ethereal43. Sectoid Autopsy "Autopsies start here"44. Floater Autopsy45. Thin Man Autopsy46. Muton Autopsy47. Chryssalid Autopsy48. Zombie Autopsy49. Cyberdisc Autopsy50. Berserker Autopsy51. Heavy Floater Autopsy52. Muton Elite Autopsy53. Drone Autopsy54. Sectopod Autopsy55. Ethereal Autopsy} Edited March 20, 2013 by Yzaxtol Link to comment Share on other sites More sharing options...
Yzaxtol Posted March 20, 2013 Author Share Posted March 20, 2013 I F*ing hate this forum's edit bug Link to comment Share on other sites More sharing options...
Recommended Posts