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