Starsector API
Loading...
Searching...
No Matches
NGCAddDevStartingScript.java
Go to the documentation of this file.
1package com.fs.starfarer.api.impl.campaign.rulecmd;
2
3import java.util.List;
4import java.util.Map;
5
6import com.fs.starfarer.api.Global;
7import com.fs.starfarer.api.Script;
8import com.fs.starfarer.api.campaign.CampaignFleetAPI;
9import com.fs.starfarer.api.campaign.CargoAPI;
10import com.fs.starfarer.api.campaign.InteractionDialogAPI;
11import com.fs.starfarer.api.campaign.PlanetAPI;
12import com.fs.starfarer.api.campaign.StarSystemAPI;
13import com.fs.starfarer.api.campaign.rules.MemKeys;
14import com.fs.starfarer.api.campaign.rules.MemoryAPI;
15import com.fs.starfarer.api.characters.CharacterCreationData;
16import com.fs.starfarer.api.characters.PersonAPI;
17import com.fs.starfarer.api.fleet.FleetMemberAPI;
18import com.fs.starfarer.api.impl.campaign.ids.Commodities;
19import com.fs.starfarer.api.impl.campaign.ids.Factions;
20import com.fs.starfarer.api.impl.campaign.tutorial.TutorialMissionIntel;
21import com.fs.starfarer.api.util.Misc.Token;
22
29
30 public boolean execute(String ruleId, InteractionDialogAPI dialog, List<Token> params, Map<String, MemoryAPI> memoryMap) {
31 if (dialog == null) return false;
32
33 CharacterCreationData data = (CharacterCreationData) memoryMap.get(MemKeys.LOCAL).get("$characterData");
34 final MemoryAPI memory = memoryMap.get(MemKeys.LOCAL);
35 data.addScript(new Script() {
36 public void run() {
37
38 Global.getSector().getPlayerStats().addStoryPoints(100);
39
40 CampaignFleetAPI fleet = Global.getSector().getPlayerFleet();
41 fleet.getFleetData().addFleetMember("hammerhead_Balanced");
42 fleet.getFleetData().addFleetMember("tarsus_Standard");
43 fleet.getFleetData().addFleetMember("dram_Light");
44 // add crew, supplies, and fuel
45 int crew = 0;
46 int supplies = 0;
47 for (FleetMemberAPI member : fleet.getFleetData().getMembersListCopy()) {
48 crew += Math.ceil(member.getMinCrew() + (member.getMaxCrew() - member.getMinCrew()) * 0.5f);
49 supplies += member.getDeploymentCostSupplies() * 4f;
50 }
51
52 CargoAPI cargo = fleet.getCargo();
53 cargo.removeCrew(cargo.getCrew());
54 cargo.addCrew(crew);
55 cargo.addFuel(cargo.getMaxFuel() * 0.5f);
56
57 cargo.addCommodity(Commodities.ALPHA_CORE, 10);
58 cargo.addCommodity(Commodities.BETA_CORE, 10);
59 cargo.addCommodity(Commodities.GAMMA_CORE, 10);
60
61 cargo.addSupplies(cargo.getSpaceLeft());
62
63 fleet.getFleetData().ensureHasFlagship();
64
65 for (FleetMemberAPI member : fleet.getFleetData().getMembersListCopy()) {
66 float max = member.getRepairTracker().getMaxCR();
67 member.getRepairTracker().setCR(max);
68 }
69 fleet.getFleetData().setSyncNeeded();
70
71 StarSystemAPI system = Global.getSector().getStarSystem("galatia");
72 PlanetAPI ancyra = (PlanetAPI) system.getEntityById("ancyra");
73 PersonAPI mainContact = TutorialMissionIntel.createMainContact(ancyra);
74 PersonAPI jangalaContact = TutorialMissionIntel.getJangalaContact();
75
76 TutorialMissionIntel.endGalatiaPortionOfMission(true, false);
77
78 mainContact.getRelToPlayer().setRel(0.2f);
79 jangalaContact.getRelToPlayer().setRel(0.1f);
80 Global.getSector().getFaction(Factions.HEGEMONY).getRelToPlayer().setRel(0.15f);
81 }
82
83 });
84 return true;
85 }
86
87
88
89}
90
91
92
static SectorAPI getSector()
Definition Global.java:59
boolean execute(String ruleId, InteractionDialogAPI dialog, List< Token > params, Map< String, MemoryAPI > memoryMap)