public override void Run(RunPayload payload) { Main.LogDebug("[EndCombatTrigger] Setting up trigger"); EncounterLayerData encounterData = MissionControl.Instance.EncounterLayerData; SmartTriggerResponse trigger = new SmartTriggerResponse(); trigger.inputMessage = onMessage; trigger.designName = $"End combat on '{onMessage}'"; trigger.conditionalbox = new EncounterConditionalBox(conditional); DesignResult result = null; if (type == EndCombatType.RETREAT) { result = ScriptableObject.CreateInstance <EndCombatRetreatResult>(); } else { // Fallback to the only end combat we currently have - Retreat result = ScriptableObject.CreateInstance <EndCombatRetreatResult>(); } trigger.resultList.contentsBox.Add(new EncounterResultBox(result)); encounterData.responseGroup.triggerList.Add(trigger); }
public override void Run(RunPayload payload) { Main.LogDebug("[ChunkTrigger] Setting up trigger"); EncounterLayerData encounterData = MissionControl.Instance.EncounterLayerData; SmartTriggerResponse trigger = new SmartTriggerResponse(); trigger.inputMessage = onMessage; trigger.designName = $"Initiate chunk on {(MessageTypes)onMessage}"; trigger.conditionalbox = new EncounterConditionalBox(conditional); PositionRegionResult positionRegionResult = ScriptableObject.CreateInstance <PositionRegionResult>(); positionRegionResult.RegionName = "Region_Withdraw"; FailObjectivesResult failObjectivesResult = ScriptableObject.CreateInstance <FailObjectivesResult>(); failObjectivesResult.ObjectiveNameWhiteList.Add("Objective_Withdraw"); HACK_ActivateChunkResult activateChunkResult = ScriptableObject.CreateInstance <HACK_ActivateChunkResult>(); EncounterChunkRef encounterChunkRef = new EncounterChunkRef(); encounterChunkRef.EncounterObjectGuid = chunkGuid; activateChunkResult.encounterChunk = encounterChunkRef; trigger.resultList.contentsBox.Add(new EncounterResultBox(positionRegionResult)); trigger.resultList.contentsBox.Add(new EncounterResultBox(failObjectivesResult)); trigger.resultList.contentsBox.Add(new EncounterResultBox(activateChunkResult)); encounterData.responseGroup.triggerList.Add(trigger); }
public static bool Prefix(SmartTriggerResponse __instance) { if (MissionControl.Instance.AllowMissionControl() && !MissionControl.Instance.IsMCLoadingFinished) { Main.LogDebug("[SmartTriggerResponse.Evaluate] MC is running so this is a pathfinder check. Ignoring so not to trigger regions."); return(false); } return(true); }
public override void Run(RunPayload payload) { Main.LogDebug($"[GenericTrigger] Setting up trigger '{this.name}'"); EncounterLayerData encounterData = MissionControl.Instance.EncounterLayerData; SmartTriggerResponse trigger = new SmartTriggerResponse(); trigger.inputMessage = onMessage; trigger.designName = $"{description} on {onMessage}"; trigger.conditionalbox = new EncounterConditionalBox(conditional); trigger.resultList.contentsBox = this.results; encounterData.responseGroup.triggerList.Add(trigger); }
public override void Run(RunPayload payload) { Main.LogDebug("[DialogTrigger] Setting up trigger"); EncounterLayerData encounterData = MissionControl.Instance.EncounterLayerData; SmartTriggerResponse triggerDialogue = new SmartTriggerResponse(); triggerDialogue.inputMessage = onMessage; triggerDialogue.designName = $"Initiate dialogue on {triggerDialogue}"; triggerDialogue.conditionalbox = new EncounterConditionalBox(conditional); DialogResult dialogueResult = ScriptableObject.CreateInstance <DialogResult>(); dialogueResult.dialogueRef.EncounterObjectGuid = dialogueGuid; dialogueResult.isInterrupt = this.isInterrupt; triggerDialogue.resultList.contentsBox.Add(new EncounterResultBox(dialogueResult)); encounterData.responseGroup.triggerList.Add(triggerDialogue); }
public override void Run(RunPayload payload) { Main.LogDebug("[ShowObjectiveTrigger] Setting up trigger"); EncounterLayerData encounterData = MissionControl.Instance.EncounterLayerData; SmartTriggerResponse trigger = new SmartTriggerResponse(); trigger.inputMessage = onMessage; trigger.designName = $"Show objective on {onMessage}"; trigger.conditionalbox = new EncounterConditionalBox(conditional); ShowObjectiveResult showObjectiveResult = ScriptableObject.CreateInstance <ShowObjectiveResult>(); showObjectiveResult.ObjectiveGuid = this.objectiveGuid; showObjectiveResult.IsContractObjective = this.isContractObjective; trigger.resultList.contentsBox.Add(new EncounterResultBox(showObjectiveResult)); encounterData.responseGroup.triggerList.Add(trigger); }
public override void Run(RunPayload payload) { Main.LogDebug("[IssueFollowLanceOrderTrigger] Setting up trigger"); EncounterLayerData encounterData = MissionControl.Instance.EncounterLayerData; SmartTriggerResponse onEncounterLoadIssueOrder = new SmartTriggerResponse(); onEncounterLoadIssueOrder.inputMessage = MessageCenterMessageType.OnEncounterBegin; onEncounterLoadIssueOrder.designName = "Issue Follow Lance AI order on Encounter Start"; onEncounterLoadIssueOrder.conditionalbox = new EncounterConditionalBox(ScriptableObject.CreateInstance <AlwaysTrueConditional>()); FollowLanceOrder followOrder = new FollowLanceOrder(); followOrder.TargetEncounterTags.AddRange(this.targetTags); IssueCustomAIOrderResult issueOrder = ScriptableObject.CreateInstance <IssueCustomAIOrderResult>(); issueOrder.issueAIOrderTo = this.receiverType; issueOrder.requiredReceiverTags.AddRange(this.receiverTags); issueOrder.aiOrder = followOrder; onEncounterLoadIssueOrder.resultList.contentsBox.Add(new EncounterResultBox(issueOrder)); encounterData.responseGroup.triggerList.Add(onEncounterLoadIssueOrder); }