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}