001package com.fs.starfarer.api.impl.campaign.missions.academy; 002 003import org.lwjgl.util.vector.Vector2f; 004 005import com.fs.starfarer.api.EveryFrameScript; 006import com.fs.starfarer.api.Global; 007import com.fs.starfarer.api.campaign.FactionAPI.ShipPickMode; 008import com.fs.starfarer.api.impl.campaign.ids.Factions; 009import com.fs.starfarer.api.impl.campaign.ids.FleetTypes; 010import com.fs.starfarer.api.impl.campaign.ids.People; 011import com.fs.starfarer.api.impl.campaign.missions.DelayedFleetEncounter; 012import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetQuality; 013import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.FleetSize; 014import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerNum; 015import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.OfficerQuality; 016import com.fs.starfarer.api.impl.campaign.missions.hub.HubMissionWithTriggers.SetMemoryValueAfterDelay; 017import com.fs.starfarer.api.util.Misc; 018 019public class GAPZPostEncounters implements EveryFrameScript { 020 021 public static boolean debug = false; 022 public static String id = "gaPZ"; 023 024 public static void init() { 025 //debug = true; 026 027 float cottonDelay = 30f + (float) Math.random() * 30f; 028 if (debug) cottonDelay = 0f; 029 SetMemoryValueAfterDelay action = new SetMemoryValueAfterDelay(cottonDelay, 030 Global.getSector().getMemoryWithoutUpdate(), "$gaPZ_brotherCottonEncounter", true); 031 action.doAction(null); 032 033 034 { 035 DelayedFleetEncounter e = new DelayedFleetEncounter(Misc.getRandom(Misc.genRandomSeed(), 0), id); 036 if (debug) { 037 e.setDelayNone(); 038 } else { 039 e.setDelayShort(); 040 } 041 e.setLocationCoreOnly(true, Factions.HEGEMONY); 042 e.setEncounterFromSomewhereInSystem(); 043 e.setRequireFactionPresence(Factions.HEGEMONY); 044 e.setDoNotAbortWhenPlayerFleetTooStrong(); 045 046 e.beginCreate(); 047 e.triggerCreateFleet(FleetSize.HUGE, FleetQuality.VERY_HIGH, Factions.HEGEMONY, FleetTypes.TASK_FORCE, new Vector2f()); 048 e.setFleetSource("coatl", "chicomoztoc"); 049 050 e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER); 051 e.triggerSetFleetFlag("$gaPZ_hegemony"); 052 e.triggerSetStandardAggroInterceptFlags(); 053 e.triggerFleetMakeImportantPermanent(null); 054 e.triggerFleetAddDefeatTriggerPermanent("GAPZGoAwayTrigger"); 055 e.endCreate(); 056 } 057 058 { 059 DelayedFleetEncounter e = new DelayedFleetEncounter(Misc.getRandom(Misc.genRandomSeed(), 0), id); 060 if (debug) { 061 e.setDelayNone(); 062 } else { 063 e.setDelayShort(); 064 } 065 e.setLocationCoreOnly(true, Factions.TRITACHYON); 066 e.setEncounterFromSomewhereInSystem(); 067 e.setRequireFactionPresence(Factions.TRITACHYON); 068 e.setDoNotAbortWhenPlayerFleetTooStrong(); 069 070 e.beginCreate(); 071 e.triggerCreateFleet(FleetSize.VERY_LARGE, FleetQuality.SMOD_1, Factions.TRITACHYON, FleetTypes.TASK_FORCE, new Vector2f()); 072 e.setFleetSource("culann", "eochu_bres"); 073 074 e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER); 075 e.triggerSetFleetFlag("$gaPZ_tritachyon"); 076 e.triggerSetStandardAggroInterceptFlags(); 077 e.triggerFleetMakeImportantPermanent(null); 078 e.triggerFleetAddDefeatTriggerPermanent("GAPZGoAwayTrigger"); 079 e.endCreate(); 080 } 081 082 { 083 DelayedFleetEncounter e = new DelayedFleetEncounter(Misc.getRandom(Misc.genRandomSeed(), 0), id); 084 if (debug) { 085 e.setDelayNone(); 086 } else { 087 e.setDelayShort(); 088 } 089 String factionId = Factions.LUDDIC_CHURCH; 090 e.setLocationCoreOnly(true, factionId); 091 e.setEncounterFromSomewhereInSystem(); 092 e.setRequireFactionPresence(factionId); 093 e.setDoNotAbortWhenPlayerFleetTooStrong(); 094 095 e.beginCreate(); 096 e.triggerCreateFleet(FleetSize.LARGE, FleetQuality.HIGHER, factionId, FleetTypes.TASK_FORCE, new Vector2f()); 097 e.setFleetSource("baetis"); 098 099 e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.DEFAULT); 100 e.triggerSetFleetFlag("$gaPZ_luddic_church"); 101 e.triggerFleetAllowLongPursuit(); 102 e.triggerSetFleetAlwaysPursue(); 103 e.triggerOrderFleetInterceptPlayer(); 104 e.triggerMakeFleetAllowDisengage(); 105 e.triggerOrderFleetMaybeEBurn(); 106 e.triggerFleetMakeImportantPermanent(null); 107 e.triggerFleetAddDefeatTriggerPermanent("GAPZGoAwayTrigger"); 108 e.endCreate(); 109 } 110 111 { 112 DelayedFleetEncounter e = new DelayedFleetEncounter(Misc.getRandom(Misc.genRandomSeed(), 0), id); 113 if (debug) { 114 e.setDelayNone(); 115 } else { 116 e.setDelayShort(); 117 } 118 String factionId = Factions.PERSEAN; 119 e.setLocationCoreOnly(true, factionId); 120 e.setEncounterFromSomewhereInSystem(); 121 e.setRequireFactionPresence(factionId); 122 e.setDoNotAbortWhenPlayerFleetTooStrong(); 123 124 e.beginCreate(); 125 e.triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.HIGHER, factionId, FleetTypes.PATROL_MEDIUM, new Vector2f()); 126 e.triggerSetFleetFaction(Factions.PERSEAN); 127 e.triggerSetFleetCommander(People.getPerson(People.SIYAVONG)); 128 //e.triggerSet 129 e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER); 130 e.triggerMakeNonHostile(); 131 e.triggerFleetAllowLongPursuit(); 132 e.triggerSetFleetAlwaysPursue(); 133 e.triggerOrderFleetInterceptPlayer(); 134 e.triggerMakeFleetAllowDisengage(); 135 e.triggerOrderFleetMaybeEBurn(); 136 137 e.setFleetSource("kazeron"); 138 139 e.triggerSetFleetFlag("$gaPZ_persean"); 140 e.triggerSetStandardAggroInterceptFlags(); 141 e.triggerFleetMakeImportantPermanent(null); 142 e.triggerFleetAddDefeatTriggerPermanent("GAPZGoAwayTrigger"); 143 e.endCreate(); 144 } 145 146 { 147 DelayedFleetEncounter e = new DelayedFleetEncounter(Misc.getRandom(Misc.genRandomSeed(), 0), id); 148 if (debug) { 149 e.setDelayNone(); 150 } else { 151 e.setDelayShort(); 152 } 153 154 String factionId = Factions.DIKTAT; 155 e.setLocationCoreOnly(true, factionId); 156 e.setEncounterFromSomewhereInSystem(); 157 e.setRequireFactionPresence(factionId); 158 e.setDoNotAbortWhenPlayerFleetTooStrong(); 159 160 e.beginCreate(); 161 e.triggerCreateFleet(FleetSize.HUGE, FleetQuality.SMOD_1, Factions.LIONS_GUARD, FleetTypes.PATROL_LARGE, new Vector2f()); 162 e.setFleetSource("sindria"); 163 e.triggerSetFleetFaction(factionId); 164 e.triggerFleetSetShipPickMode(ShipPickMode.PRIORITY_THEN_ALL); 165 e.triggerFleetSetNoFactionInName(); 166 e.triggerMakeNoRepImpact(); 167 168 e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER); 169 e.triggerSetFleetFlag("$gaPZ_diktat"); 170 e.triggerSetStandardAggroInterceptFlags(); 171 e.triggerFleetMakeImportantPermanent(null); 172 e.triggerFleetAddDefeatTriggerPermanent("GAPZGoAwayTrigger"); 173 e.endCreate(); 174 } 175 } 176 177 public static DelayedFleetEncounter createSecondDiktatEncounter() { 178 { 179 DelayedFleetEncounter e = new DelayedFleetEncounter(Misc.getRandom(Misc.genRandomSeed(), 0), id); 180 if (debug) { 181 e.setDelayNone(); 182 } else { 183 e.setDelay(10, 15); 184 } 185 186 String factionId = Factions.DIKTAT; 187 e.setLocationCoreOnly(true, factionId); 188 e.setEncounterFromSomewhereInSystem(); 189 e.setRequireFactionPresence(factionId); 190 e.setDoNotAbortWhenPlayerFleetTooStrong(); 191 192 e.beginCreate(); 193 e.triggerCreateFleet(FleetSize.MEDIUM, FleetQuality.DEFAULT, Factions.DIKTAT, FleetTypes.INSPECTION_FLEET, new Vector2f()); 194 e.setFleetSource("sindria"); 195 e.triggerSetFleetFaction(factionId); 196 //e.triggerFleetSetShipPickMode(ShipPickMode.PRIORITY_THEN_ALL); 197 //e.triggerFleetSetNoFactionInName(); 198 //e.triggerSetFleetOfficers(OfficerNum.MORE, OfficerQuality.HIGHER); 199 e.triggerSetFleetFlag("$gaPZ_diktatSecond"); 200 //e.triggerSetStandardAggroInterceptFlags(); 201 e.triggerFleetAllowLongPursuit(); 202 e.triggerSetFleetAlwaysPursue(); 203 e.triggerOrderFleetInterceptPlayer(); 204 e.triggerOrderFleetMaybeEBurn(); 205 e.triggerFleetMakeImportantPermanent(null); 206 e.triggerFleetAddDefeatTriggerPermanent("GAPZGoAwayTrigger"); 207 e.endCreate(); 208 209 return e; 210 } 211 } 212 213 public void advance(float amount) { 214 215 } 216 217 public boolean isDone() { 218 return false; 219 } 220 221 public boolean runWhilePaused() { 222 return false; 223 } 224 225}