1package com.fs.starfarer.api.combat;
3import java.util.Iterator;
4import java.util.LinkedHashMap;
14 public static class TemporaryStatMod {
17 public TemporaryStatMod(
float timeRemaining, String source) {
18 this.timeRemaining = timeRemaining;
23 private LinkedHashMap<String, TemporaryStatMod> tempMods =
new LinkedHashMap<String, TemporaryStatMod>();
41 if (tempMods !=
null &&
getMods().isEmpty()) {
49 TemporaryStatMod mod =
getMods().remove(source);
50 if (mod ==
null)
return;
55 private TemporaryStatMod getMod(String source,
float durInDays) {
56 TemporaryStatMod mod =
getMods().get(source);
58 mod =
new TemporaryStatMod(durInDays, source);
61 mod.timeRemaining = durInDays;
66 getMod(source, durInDays);
70 getMod(source, durInDays);
74 getMod(source, durInDays);
78 getMod(source, durInDays);
82 getMod(source, durInDays);
86 public Map<String, TemporaryStatMod>
getMods() {
87 if (tempMods ==
null) {
88 tempMods =
new LinkedHashMap<String, TemporaryStatMod>();
92 public boolean hasMod(String source) {
93 return getMods().containsKey(source);
97 if (tempMods ==
null ||
getMods().isEmpty())
return;
99 Iterator<TemporaryStatMod> iter =
getMods().values().iterator();
100 while (iter.hasNext()) {
101 TemporaryStatMod mod = iter.next();
102 mod.timeRemaining -= days;
103 if (mod.timeRemaining <= 0) {
void addTemporaryModPercent(float durInDays, String source, float value)
MutableStatWithTempMods(float base)
Map< String, TemporaryStatMod > getMods()
void addTemporaryModFlat(float durInDays, String source, String desc, float value)
void addTemporaryModMult(float durInDays, String source, String desc, float value)
void addTemporaryModFlat(float durInDays, String source, float value)
void removeTemporaryMod(String source)
void addTemporaryModPercent(float durInDays, String source, String desc, float value)
boolean hasMod(String source)
void modifyFlat(String source, float value)
void modifyPercent(String source, float value)
void modifyMult(String source, float value)