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