001package com.fs.starfarer.api.impl.campaign.tutorial; 002 003import com.fs.starfarer.api.EveryFrameScript; 004import com.fs.starfarer.api.Global; 005import com.fs.starfarer.api.campaign.FactionAPI; 006import com.fs.starfarer.api.campaign.econ.CommodityOnMarketAPI; 007import com.fs.starfarer.api.campaign.econ.MarketAPI; 008import com.fs.starfarer.api.campaign.econ.MarketDemandAPI; 009import com.fs.starfarer.api.impl.campaign.ids.Commodities; 010import com.fs.starfarer.api.util.IntervalUtil; 011 012public class GalatiaMarketScript implements EveryFrameScript { 013 014 protected MarketAPI market; 015 protected IntervalUtil interval = new IntervalUtil(15f, 25f); 016 017 public GalatiaMarketScript(MarketAPI market) { 018 this.market = market; 019 020 FactionAPI faction = market.getFaction(); 021 market.getTariff().modifyFlat("default_tariff", faction.getTariffFraction()); 022 023 updateCommodities(); 024 } 025 026 Object readResolve() { 027 market.updatePrices(); 028 return this; 029 } 030 031 public void advance(float amount) { 032 float days = Global.getSector().getClock().convertToDays(amount); 033 interval.advance(days); 034 if (!interval.intervalElapsed()) return; 035 036 updateCommodities(); 037 } 038 039 protected void updateCommodities() { 040 for (CommodityOnMarketAPI com : market.getAllCommodities()) { 041 //com.setStockpile(com.getSupplyValue()); 042 com.setStockpile(200); 043 } 044 045 for (MarketDemandAPI demand : market.getDemandData().getDemandList()) { 046 CommodityOnMarketAPI com = market.getCommodityData(demand.getBaseCommodity().getId()); 047 com.addToStockpile(demand.getDemandValue()); 048 } 049 050 CommodityOnMarketAPI supplies = market.getCommodityData(Commodities.SUPPLIES); 051 supplies.addToStockpile(100f + 100f * (float) Math.random()); 052 053 CommodityOnMarketAPI fuel = market.getCommodityData(Commodities.FUEL); 054 fuel.addToStockpile(100f + 100f * (float) Math.random()); 055 056 //Global.getSector().getEconomy().updateStabilityAndPriceMult(market); 057 market.updatePrices(); 058 } 059 060 public boolean isDone() { 061 return market.isInEconomy(); 062 } 063 064 public boolean runWhilePaused() { 065 return false; 066 } 067 068} 069 070 071 072 073 074 075 076