1package com.fs.starfarer.api.impl.campaign.intel.bar.events.historian;
3import java.util.HashSet;
5import java.util.Random;
8import com.fs.starfarer.api.campaign.PlanetAPI;
9import com.fs.starfarer.api.campaign.SectorEntityToken;
10import com.fs.starfarer.api.impl.campaign.intel.bar.events.historian.HistorianData.HistorianOffer;
11import com.fs.starfarer.api.util.WeightedRandomPicker;
28 public HistorianOffer
createOffer(Random random, List<HistorianOffer> soFar) {
31 SectorEntityToken entity =
pickEntity(random,
false);
34 if (planet !=
null) entity = planet;
40 if (entity ==
null)
return null;
42 WeightedRandomPicker<String> picker =
new WeightedRandomPicker<String>(random);
44 Set<String> already =
new HashSet<String>();
45 for (HistorianOffer offer : soFar) {
47 if (
id !=
null) already.add(
id);
59 if (already.contains(
id))
continue;
69 String data = picker.pick();
70 if (data ==
null)
return null;
SectorEntityToken pickEntity(Random random, boolean allowDerelict)
PlanetAPI pickUnexploredRuins(Random random)
static SectorEntityToken createEntity(Random random)
void setFrequency(float frequency)
HistorianOffer createOffer(Random random, List< HistorianOffer > soFar)
abstract String getAlreadyUsedIdFromOffer(HistorianOffer offer)
abstract String getIdForSpec(Object spec)
abstract List< Object > getAllSpecs()
abstract BaseHistorianOfferWithLocation createOffer(SectorEntityToken entity, String data)
String getBlueprintIdFromOfferId(String offerId)
abstract boolean playerKnowsSpecAlready(String id)
float getRarityForSpec(Object spec)
String getOfferId(BaseHistorianOffer offer)
abstract Set< String > getTagsForSpec(Object spec)
BlueprintOfferCreator(float frequency)
float getProbabilityRuins()
static HistorianData getInstance()
Set< String > getGivenOffers()
float getWeightForTags(Set< String > tags)