Starsector API
Loading...
Searching...
No Matches
Hypercognition.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.skills;
2
3import com.fs.starfarer.api.campaign.econ.MarketAPI;
4import com.fs.starfarer.api.characters.MarketSkillEffect;
5import com.fs.starfarer.api.impl.campaign.ids.Stats;
6
7public class Hypercognition {
8
9 public static float ACCESS = 0.1f;
10 public static float FLEET_SIZE = 20f;
11 public static int DEFEND_BONUS = 50;
12 public static float STABILITY_BONUS = 1;
13
14
15 public static class Level1 implements MarketSkillEffect {
16 public void apply(MarketAPI market, String id, float level) {
17 market.getAccessibilityMod().modifyFlat(id, ACCESS, "Hypercognition");
18 }
19
20 public void unapply(MarketAPI market, String id) {
21 market.getAccessibilityMod().unmodifyFlat(id);
22 }
23
24 public String getEffectDescription(float level) {
25 return "+" + (int)Math.round(ACCESS * 100f) + "% accessibility";
26 }
27
28 public String getEffectPerLevelDescription() {
29 return null;
30 }
31
32 public ScopeDescription getScopeDescription() {
33 return ScopeDescription.GOVERNED_OUTPOST;
34 }
35 }
36
37 public static class Level2 implements MarketSkillEffect {
38 public void apply(MarketAPI market, String id, float level) {
39 market.getStats().getDynamic().getMod(Stats.COMBAT_FLEET_SIZE_MULT).modifyFlat(id, FLEET_SIZE / 100f, "Hypercognition");
40 }
41
42 public void unapply(MarketAPI market, String id) {
43 market.getStats().getDynamic().getMod(Stats.COMBAT_FLEET_SIZE_MULT).unmodifyFlat(id);
44 }
45
46 public String getEffectDescription(float level) {
47 //return "" + (int)Math.round(FLEET_SIZE) + "% larger fleets";
48 return "+" + (int)Math.round(FLEET_SIZE) + "% fleet size";
49 }
50
51 public String getEffectPerLevelDescription() {
52 return null;
53 }
54
55 public ScopeDescription getScopeDescription() {
56 return ScopeDescription.GOVERNED_OUTPOST;
57 }
58 }
59
60 public static class Level3 implements MarketSkillEffect {
61 public void apply(MarketAPI market, String id, float level) {
62 market.getStats().getDynamic().getMod(Stats.GROUND_DEFENSES_MOD).modifyMult(id, 1f + DEFEND_BONUS * 0.01f, "Hypercognition");
63 }
64
65 public void unapply(MarketAPI market, String id) {
66 //market.getStats().getDynamic().getMod(Stats.GROUND_DEFENSES_MOD).unmodifyPercent(id);
67 market.getStats().getDynamic().getMod(Stats.GROUND_DEFENSES_MOD).unmodifyMult(id);
68 }
69
70 public String getEffectDescription(float level) {
71 return "+" + (int)(DEFEND_BONUS) + "% effectiveness of ground defenses";
72 }
73
74 public String getEffectPerLevelDescription() {
75 return null;
76 }
77
78 public ScopeDescription getScopeDescription() {
79 return ScopeDescription.GOVERNED_OUTPOST;
80 }
81 }
82
83 public static class Level4 implements MarketSkillEffect {
84 public void apply(MarketAPI market, String id, float level) {
85 market.getStability().modifyFlat(id, STABILITY_BONUS, "Hypercognition");
86 }
87
88 public void unapply(MarketAPI market, String id) {
89 market.getStability().unmodifyFlat(id);
90 }
91
92 public String getEffectDescription(float level) {
93 return "+" + (int)STABILITY_BONUS + " stability";
94 }
95
96 public String getEffectPerLevelDescription() {
97 return null;
98 }
99
100 public ScopeDescription getScopeDescription() {
101 return ScopeDescription.GOVERNED_OUTPOST;
102 }
103 }
104}
105
106