001package com.fs.starfarer.api.impl.campaign.fleets; 002 003import java.util.Random; 004 005import org.lwjgl.util.vector.Vector2f; 006 007import com.fs.starfarer.api.campaign.econ.MarketAPI; 008import com.fs.starfarer.api.characters.PersonAPI; 009 010/** 011 * Parameters for generic fleet creation. 012 * Fleet point values are targets not hard limits. 013 * 014 * "Pts" are not fleet points 015 * 1/2/4/8 points = frigate/destroyer/cruiser/capital 016 * 017 * @author Alex Mosolov 018 * 019 * 020 * Copyright 2015 Fractal Softworks, LLC 021 */ 022public class FleetParams { 023 024 public Vector2f hyperspaceLocation; 025 public MarketAPI market; 026 public String factionId; 027 public String fleetType; 028 public float combatPts; 029 public float freighterPts; 030 public float tankerPts; 031 public float transportPts; 032 public float linerPts; 033 public float civilianPts; 034 public float utilityPts; 035 036 public float qualityBonus; 037 public float qualityOverride = -1f; 038 039 public float officerNumMult = 1f; 040 public int officerLevelBonus = 0; 041 public int levelLimit = 1000; 042 043 public PersonAPI commander; 044 public String factionIdForShipPicking; 045 public Random random = null; 046 public boolean withOfficers = true; 047 048 049 /** 050 * 0: fighter, 4: capital 051 */ 052 public int maxShipSize = 1000; 053 054 055 public FleetParams() { 056 } 057 058 public FleetParams(Vector2f hyperspaceLocation, MarketAPI market, 059 String factionId, String fleetType, float combatFP, 060 float freighterPts, float tankerPts, float transportPts, 061 float linerPts, float civilianPts, float utilityPts, 062 float qualityBonus, float qualityOverride) { 063 this.hyperspaceLocation = hyperspaceLocation; 064 this.market = market; 065 this.factionId = factionId; 066 this.fleetType = fleetType; 067 this.combatPts = combatFP; 068 this.freighterPts = freighterPts; 069 this.tankerPts = tankerPts; 070 this.transportPts = transportPts; 071 this.linerPts = linerPts; 072 this.civilianPts = civilianPts; 073 this.utilityPts = utilityPts; 074 this.qualityBonus = qualityBonus; 075 this.qualityOverride = qualityOverride; 076 } 077 078 079 public FleetParams(Vector2f hyperspaceLocation, MarketAPI market, 080 String factionId, String factionIdForShipPicking, String fleetType, float combatPts, 081 float freighterPts, float tankerPts, float transportPts, 082 float linerPts, float civilianPts, float utilityPts, 083 float qualityBonus, float qualityOverride, float officerNumMult, 084 int officerLevelBonus) { 085 super(); 086 this.hyperspaceLocation = hyperspaceLocation; 087 this.market = market; 088 this.factionId = factionId; 089 this.factionIdForShipPicking = factionIdForShipPicking; 090 this.fleetType = fleetType; 091 this.combatPts = combatPts; 092 this.freighterPts = freighterPts; 093 this.tankerPts = tankerPts; 094 this.transportPts = transportPts; 095 this.linerPts = linerPts; 096 this.civilianPts = civilianPts; 097 this.utilityPts = utilityPts; 098 this.qualityBonus = qualityBonus; 099 this.qualityOverride = qualityOverride; 100 this.officerNumMult = officerNumMult; 101 this.officerLevelBonus = officerLevelBonus; 102 } 103 104 public FleetParams(Vector2f hyperspaceLocation, MarketAPI market, 105 String factionId, String fleetType, float combatPts, 106 float freighterPts, float tankerPts, float transportPts, 107 float linerPts, float civilianPts, float utilityPts, 108 float qualityBonus, float qualityOverride, float officerNumMult, 109 int officerLevelBonus, PersonAPI commander, int levelLimit) { 110 super(); 111 this.hyperspaceLocation = hyperspaceLocation; 112 this.market = market; 113 this.factionId = factionId; 114 this.fleetType = fleetType; 115 this.combatPts = combatPts; 116 this.freighterPts = freighterPts; 117 this.tankerPts = tankerPts; 118 this.transportPts = transportPts; 119 this.linerPts = linerPts; 120 this.civilianPts = civilianPts; 121 this.utilityPts = utilityPts; 122 this.qualityBonus = qualityBonus; 123 this.qualityOverride = qualityOverride; 124 this.officerNumMult = officerNumMult; 125 this.officerLevelBonus = officerLevelBonus; 126 this.commander = commander; 127 this.levelLimit = levelLimit; 128 } 129 130 public float getTotalPts() { 131 return combatPts + freighterPts + tankerPts + transportPts + linerPts + civilianPts + utilityPts; 132 } 133} 134 135 136 137 138 139 140 141 142 143 144