001package com.fs.starfarer.api.combat;
002
003import java.util.List;
004
005public interface BattleObjectiveEffect {
006        
007        public static class ShipStatusItem {
008                private String title;
009                private String description;
010                private boolean isDebuff;
011                private Object key = null;
012                public ShipStatusItem(String title, String description, boolean isDebuff) {
013                        this.title = title;
014                        this.description = description;
015                        this.isDebuff = isDebuff;
016                }
017                public String getTitle() {
018                        return title;
019                }
020                public void setTitle(String title) {
021                        this.title = title;
022                }
023                public String getDescription() {
024                        return description;
025                }
026                public void setDescription(String description) {
027                        this.description = description;
028                }
029                public boolean isDebuff() {
030                        return isDebuff;
031                }
032                public void setDebuff(boolean isDebuff) {
033                        this.isDebuff = isDebuff;
034                }
035                public Object getKey() {
036                        return key;
037                }
038                public void setKey(Object key) {
039                        this.key = key;
040                }
041        }
042        
043        void init(CombatEngineAPI engine, BattleObjectiveAPI objective);
044        
045        /**
046         * Apply/unapply effects here.
047         * @param amount
048         */
049        void advance(float amount);
050        
051        /**
052         * Must return null if this objective has no effect on the passed in ship.
053         * @param ship
054         * @return
055         */
056        List<ShipStatusItem> getStatusItemsFor(ShipAPI ship);
057        String getLongDescription();
058
059        int getBonusDeploymentPoints();
060}
061
062
063