Starsector API
Loading...
Searching...
No Matches
AICoreOfficerPluginImpl.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign;
2
3import java.util.Random;
4
5import com.fs.starfarer.api.Global;
6import com.fs.starfarer.api.campaign.AICoreOfficerPlugin;
7import com.fs.starfarer.api.campaign.econ.CommoditySpecAPI;
8import com.fs.starfarer.api.characters.FullName;
9import com.fs.starfarer.api.characters.FullName.Gender;
10import com.fs.starfarer.api.characters.PersonAPI;
11import com.fs.starfarer.api.impl.campaign.ids.Commodities;
12import com.fs.starfarer.api.impl.campaign.ids.Personalities;
13import com.fs.starfarer.api.impl.campaign.ids.Ranks;
14import com.fs.starfarer.api.impl.campaign.ids.Skills;
15
19public class AICoreOfficerPluginImpl extends BaseAICoreOfficerPluginImpl implements AICoreOfficerPlugin {
20
24// public static int OMEGA_POINTS = 140;
25// public static int ALPHA_POINTS = 70;
26// public static int BETA_POINTS = 50;
27// public static int GAMMA_POINTS = 30;
28 public static int OMEGA_POINTS = 0;
29 public static int ALPHA_POINTS = 0;
30 public static int BETA_POINTS = 0;
31 public static int GAMMA_POINTS = 0;
32
36 public static float OMEGA_MULT = 5;
37 public static float ALPHA_MULT = 4;
38 public static float BETA_MULT = 3;
39 public static float GAMMA_MULT = 2;
40
41 static {
42// if (BaseSkillEffectDescription.USE_RECOVERY_COST) {
43// OMEGA_POINTS = 20;
44// ALPHA_POINTS = 10;
45// BETA_POINTS = 7;
46// GAMMA_POINTS = 5;
47// }
48 }
49
50
51 public PersonAPI createPerson(String aiCoreId, String factionId, Random random) {
52 if (random == null) random = new Random();
53
54 PersonAPI person = Global.getFactory().createPerson();
55 person.setFaction(factionId);
56 person.setAICoreId(aiCoreId);
57
58 CommoditySpecAPI spec = Global.getSettings().getCommoditySpec(aiCoreId);
59 boolean alpha = Commodities.ALPHA_CORE.equals(aiCoreId);
60 boolean beta = Commodities.BETA_CORE.equals(aiCoreId);
61 boolean gamma = Commodities.GAMMA_CORE.equals(aiCoreId);
62 boolean omega = Commodities.OMEGA_CORE.equals(aiCoreId);
63
64 person.getStats().setSkipRefresh(true);
65
66 person.setName(new FullName(spec.getName(), "", Gender.ANY));
67 int points = 0;
68 float mult = 1f;
69 if (omega) { // assume it's not going to be integrated, no reason to do it - same as assuming it's always integrated
70 person.setPortraitSprite("graphics/portraits/characters/omega.png");
71 person.getStats().setLevel(9);
72 person.getStats().setSkillLevel(Skills.HELMSMANSHIP, 2);
73 person.getStats().setSkillLevel(Skills.TARGET_ANALYSIS, 2);
74 person.getStats().setSkillLevel(Skills.IMPACT_MITIGATION, 2);
75 //person.getStats().setSkillLevel(Skills.SHIELD_MODULATION, 2);
76 person.getStats().setSkillLevel(Skills.FIELD_MODULATION, 2);
77 //person.getStats().setSkillLevel(Skills.SYSTEMS_EXPERTISE, 2);
78 person.getStats().setSkillLevel(Skills.GUNNERY_IMPLANTS, 2);
79 //person.getStats().setSkillLevel(Skills.RELIABILITY_ENGINEERING, 2);
80 person.getStats().setSkillLevel(Skills.COMBAT_ENDURANCE, 2);
81 person.getStats().setSkillLevel(Skills.DAMAGE_CONTROL, 2);
82 person.getStats().setSkillLevel(Skills.POINT_DEFENSE, 2);
83 person.getStats().setSkillLevel(Skills.ENERGY_WEAPON_MASTERY, 2);
84 person.getStats().setSkillLevel(Skills.OMEGA_ECM, 2);
85 points = OMEGA_POINTS;
86 mult = OMEGA_MULT;
87 } else if (alpha) {
88 person.setPortraitSprite("graphics/portraits/portrait_ai2b.png");
89 person.getStats().setLevel(7);
90 person.getStats().setSkillLevel(Skills.HELMSMANSHIP, 2);
91 person.getStats().setSkillLevel(Skills.TARGET_ANALYSIS, 2);
92 person.getStats().setSkillLevel(Skills.IMPACT_MITIGATION, 2);
93 //person.getStats().setSkillLevel(Skills.SHIELD_MODULATION, 2);
94 person.getStats().setSkillLevel(Skills.FIELD_MODULATION, 2);
95 //person.getStats().setSkillLevel(Skills.SYSTEMS_EXPERTISE, 2);
96 person.getStats().setSkillLevel(Skills.GUNNERY_IMPLANTS, 2);
97 //person.getStats().setSkillLevel(Skills.RELIABILITY_ENGINEERING, 2);
98 person.getStats().setSkillLevel(Skills.COMBAT_ENDURANCE, 2);
99 person.getStats().setSkillLevel(Skills.DAMAGE_CONTROL, 2);
100 points = ALPHA_POINTS;
101 mult = ALPHA_MULT;
102 } else if (beta) {
103 person.setPortraitSprite("graphics/portraits/portrait_ai3b.png");
104 person.getStats().setLevel(5);
105 person.getStats().setSkillLevel(Skills.HELMSMANSHIP, 2);
106 person.getStats().setSkillLevel(Skills.TARGET_ANALYSIS, 2);
107 person.getStats().setSkillLevel(Skills.IMPACT_MITIGATION, 2);
108 person.getStats().setSkillLevel(Skills.GUNNERY_IMPLANTS, 2);
109 //person.getStats().setSkillLevel(Skills.RELIABILITY_ENGINEERING, 2);
110 person.getStats().setSkillLevel(Skills.COMBAT_ENDURANCE, 2);
111 points = BETA_POINTS;
112 mult = BETA_MULT;
113 } else if (gamma) {
114 person.setPortraitSprite("graphics/portraits/portrait_ai1b.png");
115 person.getStats().setLevel(3);
116 person.getStats().setSkillLevel(Skills.HELMSMANSHIP, 2);
117 person.getStats().setSkillLevel(Skills.IMPACT_MITIGATION, 2);
118 //person.getStats().setSkillLevel(Skills.RELIABILITY_ENGINEERING, 2);
119 person.getStats().setSkillLevel(Skills.COMBAT_ENDURANCE, 2);
120 points = GAMMA_POINTS;
121 mult = GAMMA_MULT;
122 }
123
124 if (points != 0) {
125 person.getMemoryWithoutUpdate().set(AUTOMATED_POINTS_VALUE, points);
126 }
127 person.getMemoryWithoutUpdate().set(AUTOMATED_POINTS_MULT, mult);
128
129 person.setPersonality(Personalities.RECKLESS);
130 person.setRankId(Ranks.SPACE_CAPTAIN);
131 person.setPostId(null);
132
133 person.getStats().setSkipRefresh(false);
134
135 return person;
136 }
137
138}
139
140
141
142
static SettingsAPI getSettings()
Definition Global.java:51
static FactoryAPI getFactory()
Definition Global.java:35
PersonAPI createPerson(String aiCoreId, String factionId, Random random)
CommoditySpecAPI getCommoditySpec(String commodityId)