Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function GiveDukeReward(XComGameState NewGameState, XComGameState_Reward RewardState, optional StateObjectReference AuxRef, optional bool bOrder = false, optional int OrderHours = -1)
- {
- local XComGameState_MissionSiteDukeMission MissionState;
- local XComGameState_WorldRegion RegionState;
- local XComGameState_Reward MissionRewardState;
- local X2RewardTemplate RewardTemplate;
- local X2StrategyElementTemplateManager StratMgr;
- local X2MissionSourceTemplate MissionSource;
- local array<XComGameState_Reward> MissionRewards;
- local XComGameState_CovertAction ActionState;
- local array<XComGameState_WorldRegion> ContactRegions;
- local XComGameState_HeadquartersResistance ResHQ;
- ResHQ = class'UIUtilities_Strategy'.static.GetResistanceHQ();
- StratMgr = class'X2StrategyElementTemplateManager'.static.GetStrategyElementTemplateManager();
- ActionState = XComGameState_CovertAction(`XCOMHISTORY.GetGameStateForObjectID(AuxRef.ObjectID));
- RegionState = ActionState.GetWorldRegion();
- if(RegionState == none)
- {
- foreach `XCOMHistory.IterateByClassType(class'XComGameState_WorldRegion', RegionState)
- {
- ContactRegions.AddItem(RegionState);
- }
- RegionState = ContactRegions[`SYNC_RAND_STATIC(ContactRegions.Length)];
- }
- MissionRewards.Length = 0;
- // Add Intel Reward - I don't think Intel reward is necessary, but I dunno how to remove it without breaking mission source
- RewardTemplate = X2RewardTemplate(StratMgr.FindStrategyElementTemplate('Reward_Intel'));
- MissionRewardState = RewardTemplate.CreateInstanceFromTemplate(NewGameState);
- NewGameState.AddStateObject(MissionRewardState);
- MissionRewardState.GenerateReward(NewGameState, , RegionState.GetReference());
- MissionRewardState.Quantity = 18; // I can at least neuter the reward, though.
- MissionRewards.AddItem(MissionRewardState);
- // End of Intel Reward
- // Add Babe Rewards
- RewardTemplate = X2RewardTemplate(StratMgr.FindStrategyElementTemplate('Reward_Duke_Babe_1'));
- MissionRewardState = RewardTemplate.CreateInstanceFromTemplate(NewGameState);
- MissionRewardState.GenerateReward(NewGameState, ResHQ.GetMissionResourceRewardScalar(MissionRewardState), RegionState.GetReference());
- AddTacticalTagToRewardUnit(NewGameState, MissionRewardState, 'SoldierRewardA');
- MissionRewards.AddItem(MissionRewardState);
- RewardTemplate = X2RewardTemplate(StratMgr.FindStrategyElementTemplate('Reward_Duke_Babe_2'));
- MissionRewardState = RewardTemplate.CreateInstanceFromTemplate(NewGameState);
- MissionRewardState.GenerateReward(NewGameState, ResHQ.GetMissionResourceRewardScalar(MissionRewardState), RegionState.GetReference());
- AddTacticalTagToRewardUnit(NewGameState, MissionRewardState, 'SoldierRewardB');
- MissionRewards.AddItem(MissionRewardState);
- // End of Babe Rewards
- MissionState = XComGameState_MissionSiteDukeMission(NewGameState.CreateStateObject(class'XComGameState_MissionSiteDukeMission'));
- NewGameState.AddStateObject(MissionState);
- MissionSource = X2MissionSourceTemplate(StratMgr.FindStrategyElementTemplate('MissionSource_DukeMission'));
- MissionState.BuildMission(MissionSource, RegionState.GetRandom2DLocationInRegion(), RegionState.GetReference(), MissionRewards);
- //MissionState.ManualDifficultySetting = MissionSource.GetMissionDifficultyFn(MissionState) + default.Difficulty_Mod;
- MissionState.ResistanceFaction = ActionState.Faction;
- RewardState.RewardObjectReference = MissionState.GetReference();
- `XEVENTMGR.TriggerEvent('DukeMissionSpawned', , , NewGameState);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement