34 super.advance(amount);
42 if (source.getMarket() !=
null && source.getMarket().isInEconomy()) {
43 source.setFaction(Factions.INDEPENDENT);
44 source.getMarket().setFactionId(Factions.INDEPENDENT);
46 if (source.getMarket().getCommDirectory() !=
null &&
47 source.getMarket().getCommDirectory().getEntriesCopy() !=
null) {
48 for (CommDirectoryEntryAPI entry : source.getMarket().getCommDirectory().getEntriesCopy()) {
49 if (entry.getType() == EntryType.PERSON && entry.getEntryData() instanceof PersonAPI) {
50 PersonAPI p = (PersonAPI) entry.getEntryData();
51 p.setFaction(Factions.INDEPENDENT);
57 if (source.getMarket() !=
null && source.getMarket().getSubmarket(Submarkets.SUBMARKET_OPEN) !=
null) {
58 source.getMarket().getSubmarket(Submarkets.SUBMARKET_OPEN).setFaction(ind);
70 if (source ==
null)
return null;
73 WeightedRandomPicker<String> picker1 =
new WeightedRandomPicker<String>();
74 picker1.add(
"cerberus_d_Standard");
75 picker1.add(
"hound_d_Standard");
76 picker1.add(
"kite_pirates_Raider");
79 WeightedRandomPicker<String> picker2 =
new WeightedRandomPicker<String>();
80 picker2.add(
"hammerhead_d_CS");
81 picker2.add(
"enforcer_d_Strike");
82 picker2.add(
"sunder_d_Assault");
83 picker2.add(
"buffalo2_FS");
84 picker2.add(
"condor_Support");
85 picker2.add(
"condor_Attack");
88 fleet.getFleetData().addFleetMember(picker1.pick());
89 fleet.getFleetData().addFleetMember(picker1.pick());
90 if ((
float) Math.random() > 0.5f) fleet.getFleetData().addFleetMember(picker1.pick());
91 fleet.getFleetData().addFleetMember(picker2.pick());
92 if ((
float) Math.random() > 0.5f) fleet.getFleetData().addFleetMember(picker2.pick());
94 fleet.getFleetData().sort();
96 LocationAPI location = source.getContainingLocation();
97 location.addEntity(fleet);
98 fleet.setLocation(source.getLocation().x, source.getLocation().y);
101 WeightedRandomPicker<MarketAPI> marketPicker =
new WeightedRandomPicker<MarketAPI>();
102 for (MarketAPI market :
Global.
getSector().getEconomy().getMarketsCopy()) {
103 if (market == source)
continue;
104 if (market.isHidden())
continue;
105 if (Factions.PIRATES.equals(market.getFactionId())) {
106 float dist = Misc.getDistance(source.getLocationInHyperspace(), market.getLocationInHyperspace());
107 float w = Math.max(1000f, 50000f - dist);
108 marketPicker.add(market, w);
112 MarketAPI market = marketPicker.pick();
113 if (market !=
null) {
114 fleet.addAssignment(FleetAssignment.RAID_SYSTEM, ((StarSystemAPI)source.getContainingLocation()).getCenter(), 40f);
115 Misc.giveStandardReturnAssignments(fleet, market.getPrimaryEntity(),
"heading to",
false);
117 fleet.addAssignment(FleetAssignment.RAID_SYSTEM, ((StarSystemAPI)source.getContainingLocation()).getCenter(), 100f);
118 Misc.giveStandardReturnToSourceAssignments(fleet,
false);
126 CampaignFleetAPI fleet = FleetFactoryV3.createEmptyFleet(Factions.PIRATES, FleetTypes.MERC_SCOUT,
null);
129 fleet.setNoFactionInName(!withFaction);
131 fleet.removeAbility(Abilities.INTERDICTION_PULSE);
133 fleet.getStats().getFleetwideMaxBurnMod().modifyMult(
"tutorial", 0.6f);
136 fleet.getMemoryWithoutUpdate().set(MemFlags.MEMORY_KEY_PIRATE,
true);
137 fleet.getMemoryWithoutUpdate().set(MemFlags.MEMORY_KEY_NO_JUMP,
true);
138 fleet.getMemoryWithoutUpdate().set(
"$rogueMiner",
true);
140 fleet.getMemoryWithoutUpdate().set(MemFlags.FLEET_NO_MILITARY_RESPONSE,
true);
149 WeightedRandomPicker<String> picker1 =
new WeightedRandomPicker<String>();
150 picker1.add(
"cerberus_d_Standard");
151 picker1.add(
"hound_d_Standard");
152 picker1.add(
"kite_pirates_Raider");
153 picker1.add(
"shepherd_Frontier");
155 WeightedRandomPicker<String> picker2 =
new WeightedRandomPicker<String>();
156 picker2.add(
"hammerhead_d_CS");
157 picker2.add(
"enforcer_d_Strike");
158 picker2.add(
"sunder_d_Assault");
159 picker2.add(
"buffalo2_FS");
162 fleet.getFleetData().addFleetMember(picker1.pick());
163 if (stronger) fleet.getFleetData().addFleetMember(picker1.pick());
164 if ((
float) Math.random() > 0.5f) fleet.getFleetData().addFleetMember(picker1.pick());
165 fleet.getFleetData().addFleetMember(picker2.pick());
167 fleet.getFleetData().sort();