001package com.fs.starfarer.api.impl.campaign.intel.events;
002
003import com.fs.starfarer.api.Global;
004import com.fs.starfarer.api.campaign.StarSystemAPI;
005import com.fs.starfarer.api.characters.PersonAPI;
006import com.fs.starfarer.api.impl.campaign.ids.MemFlags;
007import com.fs.starfarer.api.impl.campaign.ids.People;
008import com.fs.starfarer.api.impl.campaign.rulecmd.KantaCMD;
009import com.fs.starfarer.api.ui.TooltipMakerAPI;
010import com.fs.starfarer.api.ui.TooltipMakerAPI.TooltipCreator;
011import com.fs.starfarer.api.util.Range;
012
013public class KantasWrathPirateActivityCause2 extends BaseHostileActivityCause2 {
014
015        public static float MAX_MAG = 0.3f;
016        
017        public static float MAX_MAG_FOR_REL = 0.15f;
018        public static float MAX_MAG_FOR_BLUFFS = 0.15f;
019        public static float MAG_PER_BLUFF = 0.05f;
020        
021        public KantasWrathPirateActivityCause2(HostileActivityEventIntel intel) {
022                super(intel);
023        }
024
025        @Override
026        public TooltipCreator getTooltip() {
027                return new BaseFactorTooltip() {
028                        public void createTooltip(TooltipMakerAPI tooltip, boolean expanded, Object tooltipParam) {
029                                tooltip.addPara("Warlord Kanta, the feared pirate queen, is not pleased with you. Lesser "
030                                                + "pirates see attacking your interests as a way to curry favor with her.", 0f);
031                        }
032                };
033        }
034
035        public int getProgress() {
036                float mag = getMagnitudeContribution(null);
037                if (mag <= 0) return 0;
038                
039                mag /= MAX_MAG;
040                if (mag > 1f) mag = 1f;
041                
042                Range r = new Range("kantasWrathPoints");
043                return r.interpInt(mag);
044//              int progress = 5 + (int) Math.round(mag * 10f);
045//              return progress;
046        }
047        
048        public String getDesc() {
049                return "Kanta's wrath";
050        }       
051
052
053        public float getMagnitudeContribution(StarSystemAPI system) {
054                if (KantaCMD.playerHasProtection()) return 0f;
055                
056                PersonAPI kanta = People.getPerson(People.KANTA);
057                if (kanta == null) return 0f;
058                
059                float rep = kanta.getRelToPlayer().getRel();
060                
061                float mag = -1f * rep * MAX_MAG_FOR_REL;
062                
063                int bluffs = Global.getSector().getCharacterData().getMemoryWithoutUpdate().getInt(MemFlags.KANTA_BLUFFS);
064                
065                mag += MAG_PER_BLUFF * bluffs;
066                
067                if (mag > MAX_MAG) mag = MAX_MAG;
068
069                //mag = 0.6f;
070                mag = Math.round(mag * 100f) / 100f;
071                return mag;
072        }
073
074}