16 public static class FleetStatsSnapshot
implements Cloneable {
17 private float fleetPoints;
18 private float cargoOnBoard;
19 private float cargoCapacity;
20 private float fuelOnBoard;
21 private float fuelCapacity;
22 private float numShips;
23 private float fleetSizeNum;
25 public void update() {
36 public FleetStatsSnapshot clone() {
38 return (FleetStatsSnapshot) super.clone();
39 }
catch (CloneNotSupportedException e) {
40 throw new RuntimeException(e);
44 public float getFleetPoints() {
47 public void setFleetPoints(
float fleetPoints) {
48 this.fleetPoints = fleetPoints;
50 public float getCargoOnBoard() {
53 public void setCargoOnBoard(
float cargoOnBoard) {
54 this.cargoOnBoard = cargoOnBoard;
56 public float getCargoCapacity() {
59 public void setCargoCapacity(
float cargoCapacity) {
60 this.cargoCapacity = cargoCapacity;
62 public float getFuelOnBoard() {
65 public void setFuelOnBoard(
float fuelOnBoard) {
66 this.fuelOnBoard = fuelOnBoard;
68 public float getFuelCapacity() {
71 public void setFuelCapacity(
float fuelCapacity) {
72 this.fuelCapacity = fuelCapacity;
74 public float getNumShips() {
77 public void setNumShips(
float numShips) {
78 this.numShips = numShips;
80 public float getFleetSizeNum() {
83 public void setFleetSizeNum(
float fleetSizeNum) {
84 this.fleetSizeNum = fleetSizeNum;
89 private Map<MarketAPI, Long> lastVisit =
new HashMap<MarketAPI, Long>();
90 private Map<SubmarketAPI, PlayerTradeDataForSubmarket> submarketTradeData =
new LinkedHashMap<SubmarketAPI, PlayerTradeDataForSubmarket>();
93 private FleetStatsSnapshot playerFleetStats =
new FleetStatsSnapshot();
96 if (profitabilityData ==
null) {
99 if (repChangeTracker ==
null) {
102 if (playerFleetStats ==
null) {
103 playerFleetStats =
new FleetStatsSnapshot();
110 List<SubmarketAPI>
remove =
new ArrayList<SubmarketAPI>();
115 if (market ==
null || market.
getSubmarket(data.getSubmarket().getSpecId()) ==
null ||
116 market.
getSubmarket(data.getSubmarket().getSpecId()) != data.getSubmarket()) {
117 remove.add(data.getSubmarket());
122 submarketTradeData.remove(sub);
125 List<MarketAPI> remove2 =
new ArrayList<MarketAPI>();
126 for (
MarketAPI curr : lastVisit.keySet()) {
127 if (curr.getPrimaryEntity() ==
null || !curr.getPrimaryEntity().isAlive()) {
132 lastVisit.remove(curr);
135 profitabilityData.
advance(days);
137 repChangeTracker.
advance(days);
139 playerFleetStats.update();
143 return repChangeTracker;
148 return profitabilityData;
153 lastVisit.put(market, timestamp);
157 Long timestamp = lastVisit.get(market);
158 if (timestamp ==
null)
return 10000f;
167 submarketTradeData.put(submarket, data);
174 return playerFleetStats;
178 return submarketTradeData;