001package com.fs.starfarer.api.impl.campaign.missions.hub; 002 003import java.util.ArrayList; 004import java.util.LinkedHashMap; 005import java.util.LinkedHashSet; 006import java.util.List; 007import java.util.Map; 008 009import org.lwjgl.util.vector.Vector2f; 010 011import com.fs.starfarer.api.campaign.CampaignFleetAPI; 012import com.fs.starfarer.api.campaign.LocationAPI; 013import com.fs.starfarer.api.campaign.PlanetAPI; 014import com.fs.starfarer.api.campaign.SectorEntityToken; 015import com.fs.starfarer.api.campaign.StarSystemAPI; 016import com.fs.starfarer.api.campaign.econ.MarketAPI; 017import com.fs.starfarer.api.characters.PersonAPI; 018import com.fs.starfarer.api.impl.campaign.missions.hub.BaseHubMission.ConditionChecker; 019 020public class MissionTrigger { 021 022 public static class TriggerActionContext { 023 public HubMission mission; 024 public CampaignFleetAPI fleet; 025 public SectorEntityToken entity; 026 public SectorEntityToken token; 027 public PersonAPI person; 028 public MarketAPI market; 029 public PlanetAPI planet; 030 public StarSystemAPI system; 031 public int counter; 032 033 public LocationAPI containingLocation; 034 public Vector2f coordinates; 035 public SectorEntityToken jumpPoint; 036 037 public Map<String, Object> custom = new LinkedHashMap<String, Object>(); 038 public Object custom1; 039 public Object custom2; 040 public Object custom3; 041 042 public String patrolText; 043 public String travelText; 044 045 public boolean makeAllFleetFlagsPermanent = false; 046 047 public List<CampaignFleetAPI> allFleets = new ArrayList<CampaignFleetAPI>(); 048 049 public TriggerActionContext(HubMission mission) { 050 this.mission = mission; 051 } 052 053 } 054 055 public static interface TriggerAction { 056 void doAction(TriggerActionContext context); 057 } 058 059 060 /** 061 * Optional, null by default. 062 * Set by calling 063 * getCurrentTrigger().setId(id) 064 * After beginning a trigger. 065 */ 066 protected String id = null; 067 protected ConditionChecker condition; 068 protected LinkedHashSet<Object> stages = new LinkedHashSet<Object>(); 069 protected List<TriggerAction> actions = new ArrayList<TriggerAction>(); 070 071 public ConditionChecker getCondition() { 072 return condition; 073 } 074 public void setCondition(ConditionChecker condition) { 075 this.condition = condition; 076 } 077 public LinkedHashSet<Object> getStages() { 078 return stages; 079 } 080 public List<TriggerAction> getActions() { 081 return actions; 082 } 083 public String getId() { 084 return id; 085 } 086 public void setId(String id) { 087 this.id = id; 088 } 089}