001package com.fs.starfarer.api.plugins;
002
003import com.fs.starfarer.api.combat.MutableShipStatsAPI;
004import com.fs.starfarer.api.combat.ShipAPI;
005
006public interface ShipSystemStatsScript {
007        public static enum State {
008                IN,
009                ACTIVE,
010                OUT,
011                COOLDOWN,
012                IDLE;
013        }
014        
015        public static class StatusData {
016                public String text;
017                public boolean isDebuff;
018                public StatusData(String text, boolean isDebuff) {
019                        this.text = text;
020                        this.isDebuff = isDebuff;
021                }
022        }
023        
024        void apply(MutableShipStatsAPI stats, String id, State state, float effectLevel);
025        void unapply(MutableShipStatsAPI stats, String id);
026        
027        StatusData getStatusData(int index, State state, float effectLevel);
028        
029        float getActiveOverride(ShipAPI ship);
030        float getInOverride(ShipAPI ship);
031        float getOutOverride(ShipAPI ship);
032        
033        int getUsesOverride(ShipAPI ship);
034        float getRegenOverride(ShipAPI ship);
035        
036        String getDisplayNameOverride(State state, float effectLevel);
037}