001package com.fs.starfarer.api.impl.campaign.events;
002
003import java.util.Map;
004
005import com.fs.starfarer.api.Global;
006import com.fs.starfarer.api.campaign.BaseOnMessageDeliveryScript;
007import com.fs.starfarer.api.campaign.comm.CommMessageAPI;
008import com.fs.starfarer.api.campaign.comm.MessagePriority;
009import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActionEnvelope;
010import com.fs.starfarer.api.impl.campaign.CoreReputationPlugin.RepActions;
011
012
013public class InvestigationEventCommSniffer extends InvestigationEvent {
014
015        public InvestigationEventCommSniffer() {
016                super();
017        }
018
019        @Override
020        public void startEvent() {
021                if (faction == null || faction.isNeutralFaction()) {
022                        log.info("Aborting comm sniffer invesitgation on " + entity.getName() + ", null or neutral faction");
023                        endEvent();
024                }
025                
026                Global.getSector().getIntel().getCommSnifferLocations().remove(entity);
027                
028                InvestigationEventParams params = 
029                        new InvestigationEventParams("Comm sniffer investigation - " + entity.getName(), "start_comm_sniffer");
030                
031                params.warningPriority = MessagePriority.ENSURE_DELIVERY;
032                params.minInitialDelay = 0;
033                params.maxInitialDelay = 0f;
034                
035                float guiltMult = getPlayerRepGuiltMult(faction);
036                
037                InvestigationResult clear = new InvestigationResult(null, null);
038                InvestigationResult guilty = new InvestigationResult("player_guilty_comm_sniffer", MessagePriority.ENSURE_DELIVERY);
039                params.results.add(clear);
040                params.results.add(guilty);
041                
042                clear.weight = 100f;
043                guilty.weight = 25f * guiltMult;
044                
045                guilty.onDelivery = new BaseOnMessageDeliveryScript() {
046                        public void beforeDelivery(CommMessageAPI message) {
047                                Global.getSector().adjustPlayerReputation(
048                                                new RepActionEnvelope(RepActions.COMM_SNIFFER_INVESTIGATION_GUILTY, null, null, true), 
049                                                faction.getId());
050                        }
051                };
052                
053                setParam(params);
054                
055                super.startEvent();
056        }
057
058        @Override
059        public Map<String, String> getTokenReplacements() {
060                return super.getTokenReplacements();
061        }
062        
063}
064
065
066
067
068
069
070
071
072