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