001package com.fs.starfarer.api.impl.campaign; 002 003import java.util.ArrayList; 004import java.util.List; 005 006import com.fs.starfarer.api.Global; 007import com.fs.starfarer.api.campaign.FactionAPI; 008import com.fs.starfarer.api.util.DelayedActionScript; 009 010public class DelayedBlueprintLearnScript extends DelayedActionScript { 011 012 public static float LEARNED_HULL_FREQUENCY = 0.1f; 013 014 protected List<String> fighters = new ArrayList<String>(); 015 protected List<String> weapons = new ArrayList<String>(); 016 protected List<String> ships = new ArrayList<String>(); 017 protected List<String> industries = new ArrayList<String>(); 018 019 protected String factionId; 020 021 public DelayedBlueprintLearnScript(String factionId) { 022 this(factionId, 30f); 023 } 024 025 public DelayedBlueprintLearnScript(String factionId, float daysLeft) { 026 super(daysLeft); 027 this.factionId = factionId; 028 } 029 030 @Override 031 public void doAction() { 032 FactionAPI faction = Global.getSector().getFaction(factionId); 033 if (faction != null) { 034 if (!ships.isEmpty()) { 035 faction.clearShipRoleCache(); 036 } 037 038 for (String id : ships) { 039 if (faction.knowsShip(id)) continue; 040 faction.addKnownShip(id, true); 041 faction.addUseWhenImportingShip(id); 042 faction.getHullFrequency().put(id, LEARNED_HULL_FREQUENCY); 043 } 044 for (String id : fighters) { 045 if (faction.knowsFighter(id)) continue; 046 faction.addKnownFighter(id, true); 047 } 048 for (String id : weapons) { 049 if (faction.knowsWeapon(id)) continue; 050 faction.addKnownWeapon(id, true); 051 } 052 for (String id : industries) { 053 if (faction.knowsIndustry(id)) continue; 054 faction.addKnownIndustry(id); 055 } 056 } 057 } 058 059 public List<String> getFighters() { 060 return fighters; 061 } 062 063 public List<String> getWeapons() { 064 return weapons; 065 } 066 067 public List<String> getShips() { 068 return ships; 069 } 070 071 public List<String> getIndustries() { 072 return industries; 073 } 074 075} 076 077 078