001package com.fs.starfarer.api.impl.campaign.rulecmd; 002 003import java.util.List; 004import java.util.Map; 005 006import com.fs.starfarer.api.campaign.InteractionDialogAPI; 007import com.fs.starfarer.api.campaign.econ.MarketAPI; 008import com.fs.starfarer.api.campaign.rules.MemKeys; 009import com.fs.starfarer.api.campaign.rules.MemoryAPI; 010import com.fs.starfarer.api.util.Misc.Token; 011 012/** 013 * Of the local market's faction, if any. 014 * 015 * HasAttentionOfAuthorities 016 */ 017public class HasAttentionOfAuthorities extends BaseCommandPlugin { 018 019 020 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) { 021 022 if (dialog.getInteractionTarget() == null) return false; 023 024 MarketAPI market = dialog.getInteractionTarget().getMarket(); 025 if (market == null) return false;; 026 027 MemoryAPI entity = memoryMap.get(MemKeys.LOCAL); 028 if (memoryMap.containsKey(MemKeys.ENTITY)) { 029 entity = memoryMap.get(MemKeys.ENTITY); 030 } 031 032 if (entity.is("$tradeMode", "NONE")) { 033 return true; 034 } 035 036 // allowed to trade - either openly or snuck in - so we're good 037 return false; 038 039// MemoryAPI marketMem = market.getMemoryWithoutUpdate(); 040// if (marketMem.is("$playerHostileTimeout", true)) { 041// return true; 042// } 043 044// List<Token> innerParams = new ArrayList<Token>(); 045// innerParams.add(new Token(market.getFactionId(), TokenType.LITERAL)); 046// boolean hostileAware = new AnyNearbyFleetsHostileAndAware().execute(ruleId, dialog, innerParams, memoryMap); 047// 048// if (hostileAware) return true; 049// 050// CampaignFleetAPI player = Global.getSector().getPlayerFleet(); 051// boolean tOn = player.isTransponderOn(); 052// 053// FactionAPI faction = market.getFaction(); 054// boolean allowsTOffTrade = faction.getCustomBoolean(Factions.CUSTOM_ALLOWS_TRANSPONDER_OFF_TRADE); 055// boolean freePort = market.hasCondition(Conditions.FREE_PORT); 056// 057// RepLevel rep = faction.getRelationshipLevel(player.getFaction()); 058// 059// if (rep.isAtBest(RepLevel.INHOSPITABLE) && tOn && !allowsTOffTrade && !freePort) { 060// return true; 061// } 062 063 } 064} 065 066 067 068 069 070 071 072 073 074 075 076 077 078