Advertisement
Guest User

Untitled

a guest
Apr 3rd, 2019
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function GiveDukeReward(XComGameState NewGameState, XComGameState_Reward RewardState, optional StateObjectReference AuxRef, optional bool bOrder = false, optional int OrderHours = -1)
  2. {
  3.     local XComGameState_MissionSiteDukeMission      MissionState;
  4.     local XComGameState_WorldRegion                 RegionState;
  5.     local XComGameState_Reward                      MissionRewardState;
  6.     local X2RewardTemplate                          RewardTemplate;
  7.     local X2StrategyElementTemplateManager          StratMgr;
  8.     local X2MissionSourceTemplate                   MissionSource;
  9.     local array<XComGameState_Reward>               MissionRewards;
  10.     local XComGameState_CovertAction                ActionState;
  11.     local array<XComGameState_WorldRegion>          ContactRegions;
  12.     local XComGameState_HeadquartersResistance      ResHQ;
  13.  
  14.     ResHQ = class'UIUtilities_Strategy'.static.GetResistanceHQ();
  15.     StratMgr = class'X2StrategyElementTemplateManager'.static.GetStrategyElementTemplateManager();
  16.    
  17.     ActionState = XComGameState_CovertAction(`XCOMHISTORY.GetGameStateForObjectID(AuxRef.ObjectID));
  18.     RegionState = ActionState.GetWorldRegion();
  19.  
  20.     if(RegionState == none)
  21.     {
  22.         foreach `XCOMHistory.IterateByClassType(class'XComGameState_WorldRegion', RegionState)
  23.         {
  24.             ContactRegions.AddItem(RegionState);
  25.         }
  26.         RegionState = ContactRegions[`SYNC_RAND_STATIC(ContactRegions.Length)];
  27.     }
  28.  
  29.  
  30.     MissionRewards.Length = 0;
  31.  
  32.     // Add Intel Reward - I don't think Intel reward is necessary, but I dunno how to remove it without breaking mission source
  33.    
  34.     RewardTemplate = X2RewardTemplate(StratMgr.FindStrategyElementTemplate('Reward_Intel'));
  35.     MissionRewardState = RewardTemplate.CreateInstanceFromTemplate(NewGameState);
  36.     NewGameState.AddStateObject(MissionRewardState);
  37.     MissionRewardState.GenerateReward(NewGameState, , RegionState.GetReference());
  38.     MissionRewardState.Quantity = 18;   //  I can at least neuter the reward, though.
  39.     MissionRewards.AddItem(MissionRewardState);
  40.     // End of Intel Reward
  41.  
  42.     // Add Babe Rewards
  43.     RewardTemplate = X2RewardTemplate(StratMgr.FindStrategyElementTemplate('Reward_Duke_Babe_1'));
  44.     MissionRewardState = RewardTemplate.CreateInstanceFromTemplate(NewGameState);
  45.     MissionRewardState.GenerateReward(NewGameState, ResHQ.GetMissionResourceRewardScalar(MissionRewardState), RegionState.GetReference());
  46.     AddTacticalTagToRewardUnit(NewGameState, MissionRewardState, 'SoldierRewardA');
  47.     MissionRewards.AddItem(MissionRewardState);
  48.  
  49.     RewardTemplate = X2RewardTemplate(StratMgr.FindStrategyElementTemplate('Reward_Duke_Babe_2'));
  50.     MissionRewardState = RewardTemplate.CreateInstanceFromTemplate(NewGameState);
  51.     MissionRewardState.GenerateReward(NewGameState, ResHQ.GetMissionResourceRewardScalar(MissionRewardState), RegionState.GetReference());
  52.     AddTacticalTagToRewardUnit(NewGameState, MissionRewardState, 'SoldierRewardB');
  53.     MissionRewards.AddItem(MissionRewardState);
  54.     // End of Babe Rewards
  55.  
  56.     MissionState = XComGameState_MissionSiteDukeMission(NewGameState.CreateStateObject(class'XComGameState_MissionSiteDukeMission'));
  57.     NewGameState.AddStateObject(MissionState);
  58.     MissionSource = X2MissionSourceTemplate(StratMgr.FindStrategyElementTemplate('MissionSource_DukeMission'));
  59.     MissionState.BuildMission(MissionSource, RegionState.GetRandom2DLocationInRegion(), RegionState.GetReference(), MissionRewards);
  60.     //MissionState.ManualDifficultySetting =  MissionSource.GetMissionDifficultyFn(MissionState) + default.Difficulty_Mod;
  61.     MissionState.ResistanceFaction = ActionState.Faction;
  62.  
  63.     RewardState.RewardObjectReference = MissionState.GetReference();
  64.  
  65.     `XEVENTMGR.TriggerEvent('DukeMissionSpawned', , , NewGameState);
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement