Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MOD_NAME=Customize Annette's and Furies' Psi Perks
- AUTHOR=hawkeye2777
- DESCRIPTION=Customize which psi perks the furies and Annette get upon receiving them as reward soldiers. By default, the tier 2 psi perk distribution is unchanged (a 50/50 chance of getting psi inspire or distortion field; Annette only), and the tier 1 psi perk distribution for both Annette and the Furies is changed to a 50%, 25%, or 25% chance for mindfray, neural feedback, or regen biofield respectively.
- UPK_FILE=XComStrategyGame.upk
- OBJECT=XGFundingCouncil.GiveCustomSoldier:AUTO
- ALIAS=Mindfray:2C <%b 68>
- ALIAS=NeuralFeedback:2C <%b 29>
- ALIAS=RegenBiofield:2C <%b 149>
- ALIAS=PsiInspiration:2C <%b 70>
- ALIAS=DistortionField:2C <%b 146>
- // Rand(2) == 0 ? <!Mindfray> : (Rand(2) == 0 ? <!NeuralFeedback> : <!RegenBiofield>)
- ALIAS=RandT1PsiPerk:45 9A A7 2C 02 16 25 16 [@] ( <!Mindfray> ) [@] ( 45 9A A7 2C 02 16 25 16 [@] ( <!NeuralFeedback> ) [@] ( <!RegenBiofield> ) )
- // Rand(2) == 0 ? <!PsiInspiration> : <!DistortionField>
- ALIAS=RandT2PsiPerk:45 9A A7 2C 02 16 25 16 [@] ( <!PsiInspiration> ) [@] ( <!DistortionField> )
- /********* CUSTOMIZING PSI PERK DISTRIBUTION **********/
- // If you want to make it so that one particular psi perk is always given, change
- // `<!RandT1PsiPerk>` below to the perk of your choice. For example, if you wanted
- // to guarantee that all of the furies got mindfray, you would change `<!RandT1PsiPerk>` to `<!Mindfray>`.
- //
- // A full list of possible swaps:
- // <!Mindfray> // Mindfray (Tier 1)
- // <!NeuralFeedback> // Neural Feedback (Tier 1)
- // <!RegenBiofield> // Regen Biofield (Tier 1)
- // <!PsiInspiration> // Psi Inspire (Tier 2 - Annette only)
- // <!DistortionField> // Distortion Field (Tier 2 - Annette only)
- // <!RandT1PsiPerk> // Mod Default (50/25/25 chance of MF/NF/RB respectively)
- // <!RandT2PsiPerk> // Mod Default (50/50 chance of PI/DF respectively)
- //
- // Make sure you only swap out a T1 perk with another T1 psi perk (same with T2), or you'll likely run into problems.
- // Annette Durand (4 HP, 58 aim, 53 will)
- ALIAS=AnnetteT1Psi : <!RandT1PsiPerk>
- ALIAS=AnnetteT2Psi : <!RandT2PsiPerk>
- // Matthew "Alecto" Hawkins (4 HP, 70 aim, 51 will)
- ALIAS=AlectoT1Psi : <!RandT1PsiPerk>
- // Said "Megaera" Tariq (3 HP, 64 aim, 53 will)
- ALIAS=MegaeraT1Psi : <!RandT1PsiPerk>
- // Fatima "Tisiphone" Tariq (5 HP, 60 aim, 51 will)
- ALIAS=TisiphoneT1Psi : <!RandT1PsiPerk>
- /********** END CUSTOMIZABLE SECTION **********/
- [REPLACEMENT_CODE] // Mostly generated by ./HexToPseudoCode
- 0F 00 <.Soldier> 19 1B <BARRACKS> 16 [@] <XGFacility_Barracks.CreateSoldier.ReturnValue> 00 ( 1B <CreateSoldier> 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.soldierClass> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier> 38 3A 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.SoldierRank> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier> 38 3A 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.Country> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier> 4A 16 )
- 0F 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.kAppearance> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.Appearance> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier>
- 0F 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strFirstName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.firstName> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier>
- 0F 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strLastName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.lastName> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier>
- 0F 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strNickName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.NickName> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier>
- 0F 1A 25 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.aStats> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.HP> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier>
- 0F 1A 26 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.aStats> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.Aim> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier>
- 0F 1A 2C 07 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.aStats> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.Will> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier>
- 07 [@label_0x02ED] 2D 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.bPsiGift> <@TFundingCouncilRewardSoldier> 00 00 48 <.CustomSoldier>
- 14 19 00 <.Soldier> [@] <XGStrategySoldier.bForcePsiGift> 00 ( 2D 01 <XGStrategySoldier.bForcePsiGift> ) 27
- [#label_0x02ED]
- 07 [@label_0x0449] 9A 35 <XComGame.XGTacticalGameCoreNativeBase.TAppearance.iHead> <XComGame.XGTacticalGameCoreNativeBase.TAppearance> 00 00 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.Appearance> <@TFundingCouncilRewardSoldier> 00 01 48 <.CustomSoldier> 1D <%i 308> 16
- 0F 1A 2C 03 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.aStats> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 2C 0D
- 0F 19 00 <.Soldier> [@] <XGStrategySoldier.m_iTurnsOut> 00 ( 01 <XGStrategySoldier.m_iTurnsOut> ) 90 2C 14 A7 2C 00 16 16
- 19 00 <.Soldier> [@] <NullRef> 00 ( 1B <SetStatus> 24 08 4A 16 )
- [#label_0x0449]
- 07 [@label_0x05D3] 9A 35 <XComGame.XGTacticalGameCoreNativeBase.TAppearance.iHead> <XComGame.XGTacticalGameCoreNativeBase.TAppearance> 00 00 35 <XGFundingCouncil.TFundingCouncilRewardSoldier.Appearance> <@TFundingCouncilRewardSoldier> 00 01 48 <.CustomSoldier> 1D <%i 420> 16
- 14 2D 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.bHasPsiGift> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 27
- 0F 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.iPsiRank> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 2C 02
- 0F 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.iPsiXP> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 19 1B <TACTICAL> 16 [@] <XComGame.XGTacticalGameCore.GetPsiXPRequired.ReturnValue> 00 ( 1B <GetPsiXPRequired> 2C 02 16 )
- 0F 1A 2C 03 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.aStats> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 2C 0D
- 19 00 <.Soldier> [@] <NullRef> 00 ( 1B <GivePerk> <!AnnetteT1Psi> 16 )
- 19 00 <.Soldier> [@] <NullRef> 00 ( 1B <GivePerk> <!AnnetteT2Psi> 16 )
- [#label_0x05D3]
- 07 [@label_0x0780] 84 84 7A 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strNickName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 1F <%t "Tisiphone"> 16 18 [@] ( 7A 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strNickName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 1F <%t "Megaera"> 16 16 ) 18 [@] ( 7A 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strNickName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 1F <%t "Alecto"> 16 16 )
- 14 2D 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.bHasPsiGift> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 27
- 0F 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.iPsiRank> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 2C 01
- 0F 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.iPsiXP> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 19 1B <TACTICAL> 16 [@] <XComGame.XGTacticalGameCore.GetPsiXPRequired.ReturnValue> 00 ( 1B <GetPsiXPRequired> 2C 01 16 )
- // if (Soldier.m_kSoldier.strNickName == "Alecto")
- 07 [@labelA] 7A 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strNickName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 1F <%t "Alecto"> 16
- 19 00 <.Soldier> [@] <NullRef> 00 ( 1B <GivePerk> <!AlectoT1Psi> 16 )
- [#labelA]
- // if (Soldier.m_kSoldier.strNickName == "Megaera")
- 07 [@labelB] 7A 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strNickName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 1F <%t "Megaera"> 16
- 19 00 <.Soldier> [@] <NullRef> 00 ( 1B <GivePerk> <!MegaeraT1Psi> 16 )
- [#labelB]
- // if (Soldier.m_kSoldier.strNickName == "Tisiphone")
- 07 [@label_0x0780] 7A 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strNickName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 1F <%t "Tisiphone"> 16
- 19 00 <.Soldier> [@] <NullRef> 00 ( 1B <GivePerk> <!TisiphoneT1Psi> 16 )
- [#label_0x0780]
- 07 [@label_0x07FA] 7A 35 <XComGame.XGTacticalGameCoreNativeBase.TSoldier.strNickName> <XComGame.XGTacticalGameCoreNativeBase.TSoldier> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kSoldier> 00 ( 01 <XGStrategySoldier.m_kSoldier> ) 1F <%t "The General"> 16
- 0F 1A 2C 03 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.aStats> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 2C 0D
- [#label_0x07FA]
- 07 [@label_0x085E] 1B <IsOptionEnabled> 24 0B 16
- A1 1A 26 35 <XComGame.XGTacticalGameCoreNativeBase.TCharacter.aStats> <XComGame.XGTacticalGameCoreNativeBase.TCharacter> 00 01 19 00 <.Soldier> [@] <XGStrategySoldier.m_kChar> 00 ( 01 <XGStrategySoldier.m_kChar> ) 38 44 12 20 <XComGame.XGTacticalGameCore> [@] <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> 00 ( 02 <XComGame.XGTacticalGameCoreNativeBase.ABDUCTION_REWARD_SCI> ) 16
- [#label_0x085E]
- 04 0B
- 53
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement