Starsector API
Loading...
Searching...
No Matches
MarketPostPersonFilter.java
Go to the documentation of this file.
1package com.fs.starfarer.api.characters;
2
3import com.fs.starfarer.api.Global;
4import com.fs.starfarer.api.campaign.econ.MarketAPI;
5import com.fs.starfarer.api.characters.ImportantPeopleAPI.PersonDataAPI;
6import com.fs.starfarer.api.characters.ImportantPeopleAPI.PersonFilter;
7
8public class MarketPostPersonFilter implements PersonFilter {
9
10 private final String marketId;
11 private final String [] postIds;
12 private final String checkoutReason;
13
14 public MarketPostPersonFilter(String marketId, String checkoutReason, String ... postIds) {
15 this.marketId = marketId;
16 this.checkoutReason = checkoutReason;
17 this.postIds = postIds;
18 }
19
20 public boolean accept(PersonDataAPI personData) {
21 if (!Global.getSector().getImportantPeople().canCheckOutPerson(personData.getPerson(), checkoutReason)) {
22 return false;
23 }
24
25 if (postIds != null) {
26 boolean postMatchFound = false;
27 for (String id : postIds) {
28 if (id.equals(personData.getPerson().getPostId())) {
29 postMatchFound = true;
30 }
31 }
32 if (!postMatchFound) return false;
33 }
34
35 MarketAPI market = personData.getLocation().getMarket();
36 if (market == null || !market.getId().equals(marketId)) return false;
37 return true;
38 }
39
40}
static SectorAPI getSector()
Definition Global.java:59
MarketPostPersonFilter(String marketId, String checkoutReason, String ... postIds)