001package com.fs.starfarer.api.util;
002
003import com.fs.starfarer.api.Global;
004import com.fs.starfarer.api.campaign.econ.MarketAPI;
005import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
006import com.fs.starfarer.api.impl.campaign.econ.impl.PopulationAndInfrastructure;
007
008public class OutpostStats {
009        public int outposts;
010        public int adminOutposts;
011        public int admins;
012        public int aiCoreOutposts;
013        public int maxOutposts;
014        public int maxAdmin;
015        public int penalty;
016        
017        public static OutpostStats get() {
018                OutpostStats result = new OutpostStats();
019                
020                MutableCharacterStatsAPI stats = Global.getSector().getCharacterData().getPerson().getStats();
021                
022                for (MarketAPI market : Global.getSector().getEconomy().getMarketsCopy()) {
023                        if (!market.isPlayerOwned()) continue;
024                        
025                        if (market.getAdmin().isPlayer() || market.getAdmin().isDefault()) {
026                                result.outposts++;
027                        } else if (!market.getAdmin().isAICore()) {
028                                result.adminOutposts++;
029                        }
030                        if (market.getAdmin().isAICore()) {
031                                result.aiCoreOutposts++;
032                        }
033                }
034                
035                result.maxOutposts = stats.getOutpostNumber().getModifiedInt();
036                result.maxAdmin = stats.getAdminNumber().getModifiedInt();
037                
038                result.penalty = PopulationAndInfrastructure.getMismanagementPenalty();
039                result.admins = Global.getSector().getCharacterData().getAdmins().size();
040                
041                return result;
042        }
043}
044