Starsector API
Loading...
Searching...
No Matches
BuffManagerAPI.java
Go to the documentation of this file.
1package com.fs.starfarer.api.campaign;
2
3import java.util.List;
4
5import com.fs.starfarer.api.fleet.FleetMemberAPI;
6
7public interface BuffManagerAPI {
8 public static interface Buff {
9 void apply(FleetMemberAPI member);
10 //void unapply(MutableShipStatsAPI stats);
11 String getId();
12 boolean isExpired();
13 void advance(float days);
14 }
15
16 public static class TempBuff implements Buff {
17 private Buff buff;
18 private float dur;
19 public TempBuff(Buff buff, float dur) {
20 this.buff = buff;
21 this.dur = dur;
22 }
23 public void advance(float days) {
24 dur -= days;
25 }
26 public void apply(FleetMemberAPI member) {
27 buff.apply(member);
28 }
29 public String getId() {
30 return buff.getId();
31 }
32 public boolean isExpired() {
33 return buff.isExpired() || dur <= 0;
34 }
35 }
36
37 Buff getBuff(String id);
38 void addBuff(Buff b);
39 void removeBuff(String id);
40
41
48 List<Buff> getBuffs();
49 void advance(float days);
50}
51
52
53
54