001package com.fs.starfarer.api.impl.campaign.econ; 002 003import com.fs.starfarer.api.Global; 004import com.fs.starfarer.api.campaign.econ.MarketAPI; 005import com.fs.starfarer.api.campaign.econ.MarketImmigrationModifier; 006import com.fs.starfarer.api.impl.campaign.population.PopulationComposition; 007 008 009 010/** 011 * NOT transient, tracks days active, and adds/removes itself as MarketImmigrationModifier 012 * if the deriving class implements that interface. Use sparingly since it'll add to savefile bloat 013 * if used across the board. 014 * 015 * @author Alex Mosolov 016 * 017 * Copyright 2017 Fractal Softworks, LLC 018 */ 019public class BaseMarketConditionPlugin2 extends BaseMarketConditionPlugin { 020 021 protected float daysActive = 0f; 022 @Override 023 public void advance(float amount) { 024 super.advance(amount); 025 float days = Global.getSector().getClock().convertToDays(amount); 026 daysActive += days; 027 } 028 029 public float getDaysActive() { 030 return daysActive; 031 } 032 033 public void setDaysActive(float daysActive) { 034 this.daysActive = daysActive; 035 } 036 037 public void apply(String id) { 038 if (this instanceof MarketImmigrationModifier) { 039 market.addTransientImmigrationModifier((MarketImmigrationModifier) this); 040 } 041 } 042 043 @Override 044 public boolean isTransient() { 045 return false; 046 } 047 048 public void unapply(String id) { 049 if (this instanceof MarketImmigrationModifier) { 050 market.removeTransientImmigrationModifier((MarketImmigrationModifier) this); 051 } 052 } 053 054 public void modifyIncoming(MarketAPI market, PopulationComposition incoming) { 055 } 056 057} 058 059 060 061 062