Fractal Softworks Forum

Please login or register.

Login with username, password and session length
Advanced search  

News:

Starsector 0.97a is out! (02/02/24); New blog post: Simulator Enhancements (03/13/24)

Pages: 1 2 3 [4] 5 6 ... 197

Author Topic: [0.8a] Starsector+ 3.7.0  (Read 1325222 times)

HELMUT

  • Admiral
  • *****
  • Posts: 1363
    • View Profile
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.4.1
« Reply #45 on: February 26, 2014, 04:28:46 PM »

I found something weird lately. When you start a battle, their's always some random huge silent explosion at the beginning somewhere on the map with the flash lingering for several seconds. Not gamebreaking but still strange.
Logged

Nanao-kun

  • Admiral
  • *****
  • Posts: 829
    • View Profile
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.4.1
« Reply #46 on: February 26, 2014, 07:18:15 PM »

I found something weird lately. When you start a battle, their's always some random huge silent explosion at the beginning somewhere on the map with the flash lingering for several seconds. Not gamebreaking but still strange.
I think that's a leftover from a previous battle due to the extra effects for disabled ships.
Logged

Dark.Revenant

  • Admiral
  • *****
  • Posts: 2806
    • View Profile
    • Sc2Mafia
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.4.1
« Reply #47 on: February 27, 2014, 05:20:18 AM »

That's fixed in the next version.

Speaking of, the next version will have four new fighter wings, two new weapons, and a whole bunch of improvements to AI fleets.  I'll likely be using a modified version of Uomoz' variant randomizer.
« Last Edit: February 27, 2014, 07:42:01 PM by Dark.Revenant »
Logged

Dark.Revenant

  • Admiral
  • *****
  • Posts: 2806
    • View Profile
    • Sc2Mafia
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #48 on: March 02, 2014, 04:21:41 AM »

Major update!

I haven't added the variant randomization, so that'll be in 0.6.
Logged

TimeDiver

  • Captain
  • ****
  • Posts: 345
    • View Profile
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #49 on: March 02, 2014, 09:28:19 PM »

Well, now. One hell of an update, all things considered. The four additional fighter wings and two newly-added weapons are... entertaining, to be sure.

Looks like the component scripts got one heck of an overhaul, though. And perhaps may lead to unintended hilarity (on my PC, only) as follows:

On a lark, I'd ended up modding a number of other mods' various '_SpawnPoint.java' files to implement Stasector+'s brand of leveling (to quite amusing results) for v0.4.1; took some degree of editing to get them updated for v0.5, but they compiled... and seem to work as intended.

No clue on how to properly implement the 'populate' routine from 'FleetManager.java' for other mods though, so I have the suspicion that any newly spawned (modded) fleets are completely lacking in supplies, fuel, crew, marines, and so on...

...unless, by omitting the following lines (I ended up merging quite a few lines from 'FleetManager.java' into 'LevelUpper.java', then renamed the latter/all appropriate references), I managed to avoid that potential source of face-palming:

Code
		data.clear();
fleet.getCargo().clear();
fleet.getCargo().addSupplies(1f);
fleet.getCommanderStats().getLogistics().unmodify();

Well, here's to crossing my fingers on nothing too horrific going down in the long-term. *knocks on wood*
« Last Edit: March 02, 2014, 09:37:38 PM by TimeDiver »
Logged

Dark.Revenant

  • Admiral
  • *****
  • Posts: 2806
    • View Profile
    • Sc2Mafia
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #50 on: March 03, 2014, 12:34:55 AM »

You don't implement Populate, you call it.  For example, when generating the Lion's Guard:

Code
	private static void guard(CampaignFleetAPI fleet)
{
fleet.setName("Lion's Guard");
fleet.getCommanderStats().addXP((long)((float)Math.random() * 600000f + 200000f));
LevelUpper.levelUp(fleet.getCommander(), 2, 0, 3);
FleetManager.populate(fleet, "guard",
(float)Math.random()*0.1f + 0.8f, // logistics rating
(float)Math.random()*0f + 0.1f, // logistics rating range
(float)Math.random()*20f + 30f, // supply days
(float)Math.random()*20f + 40f, // fuel ly
(float)Math.random()*0.2f + 0f, // crew %
(float)Math.random()*0.1f + 0f); // marines %
LevelUpper.levelCrew(fleet,
(float)Math.random()*0.25f + 0f,
(float)Math.random()*0.5f + 0.25f,
(float)Math.random()*0.5f + 0.25f,
(float)Math.random()*0.5f + 0.25f);
}

Anyway, messing with those lines will cause problems for vanilla fleets that I've modded since it will include duplicates.  I suggest adding a conditional statement there or rearranging the code to avoid that issue.  The FleetManager is designed such that either a fleet uses all (or most) of its features or none of it, so as to maintain maximum compatibility.
« Last Edit: March 03, 2014, 12:38:48 AM by Dark.Revenant »
Logged

kazi

  • Admiral
  • *****
  • Posts: 714
    • View Profile
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.3.2
« Reply #51 on: March 03, 2014, 01:10:34 AM »

The way the modding API works, that's impossible.  Starsector+ is incompatible with mods that change the core JSON files.  I don't know why Mayorate edits the Hegemony faction files, but it does.  A mod that doesn't edit Corvus shouldn't be messing with the core files, in my opinion.

To answer this, some mods edit faction files so that they can have their ships added to the vanilla factions, or they are used so that they can make a custom fleet (in the Mayorate's case it is so that they can have a Hegemony fleet invade their system for lore reasons).

From that error, I'm guessing that the Mayorate system file is attempting to call a fleet from the hegemony.faction file and not finding it. The easiest way to fix this would be to add in fleets named "heg_scout", "heg_flotilla", "heg_patrol2", and "invasion" to whatever you are using to spawn fleets (just so that the Rasht.gen file can call them without an error).

But yeah, the purpose of that edit to the core files was so that I could create Hegemony fleets of small and medium-large strength. The vanilla Hegemony fleets come in two flavors: Hegemony patrol and SDF steamroller. There really wasn't any in-between or low-end fleets for you to fight against so I had to make some to give a bit more variety (fighting the same fleets over and over again got a bit boring, plus it gave players a way to play the early game and fight factions besides just the pirates). I'm pretty sure the Junk Pirates mod makes a similar modification for the same reasons.

I can attempt to fix this on my end (making the Hegemony raiders in Rasht into a separate faction would be the easiest way of doing this, although it could be a bit weird if players are hostile to one but not the other), although I think it would be a little "cleaner" if you added those four fleets in somewhere for compatibility.

Also if my mod is giving people crashes, post in the Mayorate mod thread or PM me directly so I can do my best to fix them.
Logged

TimeDiver

  • Captain
  • ****
  • Posts: 345
    • View Profile
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #52 on: March 03, 2014, 02:07:41 AM »

You don't implement Populate, you call it.  For example, when generating the Lion's Guard:

*snip Java code*

Anyway, messing with those lines will cause problems for vanilla fleets that I've modded since it will include duplicates.  I suggest adding a conditional statement there or rearranging the code to avoid that issue.  The FleetManager is designed such that either a fleet uses all (or most) of its features or none of it, so as to maintain maximum compatibility.

Er, yeah... that was very poor choice of terminology on my part, there.

What I meant to say, is that I have little idea as to what appropriate numerical values to use for mods, when calling the Populate routine; determining EXP amount and aptitude prioritization were, by comparison, much more straightforward (re: just a lot of copy/pasting b/w the various '_Spawn.java' files, with minor tweaks here and there).

More to the point, I separated the leveling mechanism entirely from 'FleetManager.java' into a stand-alone file, that can be called independently of the Starsector+ implementation (e.g., enabling leveling for normally-unsupported mods in Uomoz's Sector for instance, without enabling SS+ and borking both mods to hell and back).

Ah hell, here's your original code that I butchered together, for said separated leveling mechanism:

Code
package data.scripts.world.SSEPlus;

import com.fs.starfarer.api.campaign.CampaignFleetAPI;
import com.fs.starfarer.api.campaign.CargoAPI;
import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
import com.fs.starfarer.api.characters.PersonAPI;
import com.fs.starfarer.api.fleet.FleetMemberType;
import com.fs.starfarer.api.fleet.FleetMemberAPI;
import java.util.*;

public final class LevelUpperX {

public static final Map allSkills;
private static final Random rng = new Random();

static {
Map allSkillsTemp = new HashMap();
allSkillsTemp.put("combat",
createSkillList(new String[] {
"missile_specialization", "ordnance_expert", "damage_control", "target_analysis", "evasive_action", "helmsmanship", "flux_modulation"
})
);
allSkillsTemp.put("leadership",
createSkillList(new String[] {
//"advanced_tactics", "command_experience", "fleet_logistics", "small_unit_tactics", "wing_command", "logistical_oversight"
"advanced_tactics", "command_experience", "fleet_logistics"
})
);
allSkillsTemp.put("technology",
createSkillList(new String[] {
"gunnery_implants", "applied_physics", "flux_dynamics", "computer_systems", "construction", "mechanical_engineering", "field_repairs", "navigation"
})
);
allSkills = Collections.unmodifiableMap(allSkillsTemp);
}

private LevelUpperX() {}

private static List createSkillList(String[] skills) {
return Collections.unmodifiableList(Arrays.asList(skills));
}

public static String getRandomSkill(String aptitude) {
List tmp = (List) allSkills.get(aptitude);
return (String) tmp.get(rng.nextInt(tmp.size()));
}

public static void levelUp(PersonAPI commander, int combat, int leadership, int technology) {
MutableCharacterStatsAPI stats = commander.getStats();
int x = (int)stats.getAptitudeLevel("combat") + (int)stats.getAptitudeLevel("leadership") + (int)stats.getAptitudeLevel("technology");

while (stats.getAptitudePoints() > 0f) {
x++;
if (stats.getAptitudeLevel("combat") == 10 && stats.getAptitudeLevel("leadership") == 10 && stats.getAptitudeLevel("technology") == 10) {
break;
}
if (stats.getAptitudeLevel("combat") == 10 && combat > 0) {
combat = 0;
if (stats.getAptitudeLevel("leadership") < 10) {
leadership++;
}
if (stats.getAptitudeLevel("technology") < 10) {
technology++;
}
}
if (stats.getAptitudeLevel("leadership") == 10 && leadership > 0) {
leadership = 0;
if (stats.getAptitudeLevel("combat") < 10) {
combat++;
}
if (stats.getAptitudeLevel("technology") < 10) {
technology++;
}
}
if (stats.getAptitudeLevel("technology") == 10 && technology > 0) {
technology = 0;
if (stats.getAptitudeLevel("leadership") < 10) {
leadership++;
}
if (stats.getAptitudeLevel("combat") < 10) {
combat++;
}
}
if (x > 0 && x <= combat) {
stats.increaseAptitude("combat");
stats.addAptitudePoints(-1);
} else if (x > combat && x <= combat+leadership) {
stats.increaseAptitude("leadership");
stats.addAptitudePoints(-1);
} else if (x > combat+leadership && x <= combat+leadership+technology) {
stats.increaseAptitude("technology");
stats.addAptitudePoints(-1);
} else {
x -= combat+leadership+technology+1;
}
}

while (stats.getSkillPoints() > 0f) {
if ((int)stats.getSkillLevel("fleet_logistics") < (int)stats.getAptitudeLevel("leadership")) {
stats.increaseSkill("fleet_logistics");
stats.addSkillPoints(-1);
} else if ((int)stats.getSkillLevel("mechanical_engineering") < (int)stats.getAptitudeLevel("technology")) {
stats.increaseSkill("mechanical_engineering");
stats.addSkillPoints(-1);
} else if ((int)stats.getSkillLevel("computer_systems") < (int)stats.getAptitudeLevel("technology")) {
stats.increaseSkill("computer_systems");
stats.addSkillPoints(-1);
// } else if ((int)stats.getSkillLevel("wing_command") < (int)(stats.getAptitudeLevel("leadership")*0.75f)) {
// stats.increaseSkill("wing_command");
// stats.addSkillPoints(-1);
} else if ((int)stats.getSkillLevel("missile_specialization") < (int)(stats.getAptitudeLevel("combat")*0.75f)) {
stats.increaseSkill("missile_specialization");
stats.addSkillPoints(-1);
} else if ((int)stats.getSkillLevel("applied_physics") < (int)(stats.getAptitudeLevel("technology")*0.5f)) {
stats.increaseSkill("applied_physics");
stats.addSkillPoints(-1);
} else if ((int)stats.getSkillLevel("construction") < (int)(stats.getAptitudeLevel("technology")*0.5f)) {
stats.increaseSkill("construction");
stats.addSkillPoints(-1);
} else if ((int)stats.getSkillLevel("flux_dynamics") < (int)(stats.getAptitudeLevel("technology")*0.5f)) {
stats.increaseSkill("flux_dynamics");
stats.addSkillPoints(-1);
} else {
float rand = (float) Math.random() * 3f;
String aptitude;
if (rand >= 0f && rand < 1f) {
aptitude = "combat";
} else if (rand >= 1f && rand < 2f) {
aptitude = "leadership";
} else {
aptitude = "technology";
}
String skill = getRandomSkill(aptitude);
if ((int)stats.getSkillLevel(skill) < (int)stats.getAptitudeLevel(aptitude)) {
stats.increaseSkill(skill);
stats.addSkillPoints(-1);
}
}
}

String levelNote = (int)stats.getAptitudeLevel("combat") + "/" + (int)stats.getAptitudeLevel("leadership") + "/" + (int)stats.getAptitudeLevel("technology");

if (stats.getLevel() >= 1 && stats.getLevel() <= 5) {
commander.setRank("Junior Captain (" + levelNote + ")");
} else if (stats.getLevel() >= 6 && stats.getLevel() <= 10) {
commander.setRank("Captain (" + levelNote + ")");
} else if (stats.getLevel() >= 11 && stats.getLevel() <= 15) {
commander.setRank("Senior Captain (" + levelNote + ")");
} else if (stats.getLevel() >= 16 && stats.getLevel() <= 20) {
commander.setRank("Lt. Commander (" + levelNote + ")");
} else if (stats.getLevel() >= 21 && stats.getLevel() <= 25) {
commander.setRank("Commander (" + levelNote + ")");
} else if (stats.getLevel() >= 26 && stats.getLevel() <= 30) {
commander.setRank("Fleet Commander (" + levelNote + ")");
} else if (stats.getLevel() >= 31 && stats.getLevel() <= 40) {
commander.setRank("Rear Admiral (" + levelNote + ")");
} else if (stats.getLevel() >= 41 && stats.getLevel() <= 50) {
commander.setRank("Admiral (" + levelNote + ")");
} else if (stats.getLevel() >= 51 && stats.getLevel() <= 60) {
commander.setRank("Fleet Marshall (" + levelNote + ")");
} else {
commander.setRank("Supreme Commander (" + levelNote + ")");
}
}

public static void levelCrew(CampaignFleetAPI fleet, float green, float regular, float veteran, float elite) {
float eliteCrew = elite;
float veteranCrew = veteran;
float regularCrew = regular;
float greenCrew = green;
eliteCrew = eliteCrew / (greenCrew+regularCrew+veteranCrew+eliteCrew);
veteranCrew = veteranCrew / (greenCrew+regularCrew+veteranCrew+eliteCrew);
regularCrew = regularCrew / (greenCrew+regularCrew+veteranCrew+eliteCrew);
greenCrew = greenCrew / (greenCrew+regularCrew+veteranCrew+eliteCrew);
int totalCrew = fleet.getCargo().getCrew(CargoAPI.CrewXPLevel.REGULAR);
fleet.getCargo().removeCrew(CargoAPI.CrewXPLevel.REGULAR, (int)((float)totalCrew*(eliteCrew+veteranCrew+greenCrew)));
fleet.getCargo().addCrew(CargoAPI.CrewXPLevel.ELITE, (int)((float)totalCrew*eliteCrew));
fleet.getCargo().addCrew(CargoAPI.CrewXPLevel.VETERAN, (int)((float)totalCrew*veteranCrew));
fleet.getCargo().addCrew(CargoAPI.CrewXPLevel.GREEN, (int)((float)totalCrew*greenCrew));

fleet.setName(fleet.getName() + " [" + (int)fleet.getCommander().getStats().getLevel() + "]");

if (fleet.getFleetData().getMembersListCopy().size() > 0) {
List members = fleet.getFleetData().getMembersListCopy();
List sort = new ArrayList();
Iterator iter = members.iterator();
FleetMemberAPI ship;
while (iter.hasNext()) {
ship = (FleetMemberAPI) iter.next();
ship.getRepairTracker().setCR(ship.getRepairTracker().getMaxCR());
if (sort.size() > 0) {
Iterator iter2 = sort.iterator();
FleetMemberAPI ship2;
int i = 0;
while (iter2.hasNext()) {
ship2 = (FleetMemberAPI) iter2.next();
if (compare(ship, ship2)) {
break;
} else {
i++;
}
}
sort.add(i, ship);
} else {
sort.add(ship);
}
}
if (sort.size() > 0) {
iter = sort.iterator();
while (iter.hasNext()) {
ship = (FleetMemberAPI) iter.next();
fleet.getFleetData().removeFleetMember(ship);
fleet.getFleetData().addFleetMember(ship);
}
}
FleetMemberAPI flagship = (FleetMemberAPI)fleet.getFleetData().getMembersInPriorityOrder().get(0);
for (int i = 0; i < fleet.getFleetData().getMembersInPriorityOrder().size() - 1; i++) {
if (flagship.isFighterWing() == true) {
flagship = (FleetMemberAPI)fleet.getFleetData().getMembersInPriorityOrder().get(i + 1);
}
}
flagship.setFlagship(true);
}
}

private static boolean compare(FleetMemberAPI ship1, FleetMemberAPI ship2) {
if (ship1.isCivilian() == false) {
if (ship2.isCivilian() == true) {
return true;
}
} else {
if (ship2.isCivilian() == false) {
return false;
}
}
if (ship1.isFighterWing() == false) {
if (ship2.isFighterWing() == true) {
return true;
}
} else {
if (ship2.isFighterWing() == false) {
return false;
}
}
if (ship1.isFrigate() == false) {
if (ship2.isFrigate() == true) {
return true;
}
} else {
if (ship2.isFrigate() == false) {
return false;
}
}
if (ship1.isDestroyer() == false) {
if (ship2.isDestroyer() == true) {
return true;
}
} else {
if (ship2.isDestroyer() == false) {
return false;
}
}
if (ship1.isCruiser() == false) {
if (ship2.isCruiser() == true) {
return true;
}
} else {
if (ship2.isCruiser() == false) {
return false;
}
}
if (ship1.isCapital() == false) {
if (ship2.isCapital() == true) {
return true;
}
} else {
if (ship2.isCapital() == false) {
return false;
}
}
if (ship1.getFleetPointCost() > ship2.getFleetPointCost()) {
return true;
} else if (ship1.getFleetPointCost() < ship2.getFleetPointCost()) {
return false;
}
if (ship1.getRepairTracker().isLogisticalPriority() == true) {
if (ship2.getRepairTracker().isLogisticalPriority() == false) {
return true;
}
} else {
if (ship2.getRepairTracker().isLogisticalPriority() == true) {
return false;
}
}
if (ship1.getSpecId().compareTo(ship2.getSpecId()) <= 0) {
return true;
} else {
return false;
}
}

}

Note that the above example comments out SS+'s three added skills, and re-enables the Navigation skill in their place.

Then add the following (example) lines to a mod's _Spawn.java file(s) (including the appropriate 'import' statements):

Code
import com.fs.starfarer.api.campaign.CargoAPI;
import com.fs.starfarer.api.characters.PersonAPI;
import com.fs.starfarer.api.characters.MutableCharacterStatsAPI;
import com.fs.starfarer.api.fleet.FleetMemberAPI;
import data.scripts.world.SSEPlus.LevelUpperX;
import java.util.*;

...

fleet.getCommanderStats().setAptitudePoints(3);
fleet.getCommanderStats().setSkillPoints(9);
fleet.getCommanderStats().addXP((long)((float)Math.random() * 600000f + 200000f));
LevelUpperX.levelUp(fleet.getCommander(), 2, 0, 3);
LevelUpperX.levelCrew(fleet,
(float)Math.random()*0.25f + 0f,
(float)Math.random()*0.5f + 0.25f,
(float)Math.random()*0.5f + 0.25f,
(float)Math.random()*0.5f + 0.25f);

Having typed all that, my worry is that by avoiding calling the Populate routine, any mod-based fleets that are spawned using my bastardized version of your leveling code, will do so with low-to-zero-quantity supply/fuel/crew/marine count(s)...

...unless, by omitting several specific lines from 'FleetManager.java''s 'createFleet' routine (specifically, lines #158-161) I avert that issue altogether, as I (poorly) attempted to request clarification in my previous post.
« Last Edit: March 03, 2014, 02:52:01 AM by TimeDiver »
Logged

Dark.Revenant

  • Admiral
  • *****
  • Posts: 2806
    • View Profile
    • Sc2Mafia
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.3.2
« Reply #53 on: March 03, 2014, 02:52:30 AM »

The way the modding API works, that's impossible.  Starsector+ is incompatible with mods that change the core JSON files.  I don't know why Mayorate edits the Hegemony faction files, but it does.  A mod that doesn't edit Corvus shouldn't be messing with the core files, in my opinion.

To answer this, some mods edit faction files so that they can have their ships added to the vanilla factions, or they are used so that they can make a custom fleet (in the Mayorate's case it is so that they can have a Hegemony fleet invade their system for lore reasons).

From that error, I'm guessing that the Mayorate system file is attempting to call a fleet from the hegemony.faction file and not finding it. The easiest way to fix this would be to add in fleets named "heg_scout", "heg_flotilla", "heg_patrol2", and "invasion" to whatever you are using to spawn fleets (just so that the Rasht.gen file can call them without an error).

But yeah, the purpose of that edit to the core files was so that I could create Hegemony fleets of small and medium-large strength. The vanilla Hegemony fleets come in two flavors: Hegemony patrol and SDF steamroller. There really wasn't any in-between or low-end fleets for you to fight against so I had to make some to give a bit more variety (fighting the same fleets over and over again got a bit boring, plus it gave players a way to play the early game and fight factions besides just the pirates). I'm pretty sure the Junk Pirates mod makes a similar modification for the same reasons.

I can attempt to fix this on my end (making the Hegemony raiders in Rasht into a separate faction would be the easiest way of doing this, although it could be a bit weird if players are hostile to one but not the other), although I think it would be a little "cleaner" if you added those four fleets in somewhere for compatibility.

Also if my mod is giving people crashes, post in the Mayorate mod thread or PM me directly so I can do my best to fix them.

Since SS+ uses a completely separate spawning system it should never have faction conflicts from now on; you don't need to do anything on your end unless you edit Corvus or Askonia.


@TimeDiver
There are comments explaining what each of the values do.  Choosing the values and balancing them is not as easy since fleet size will depend on the commander's skills.  You can avoid using Populate but you have to make sure those pieces of code are not run if you do that.  Maybe move them to the front of the Populate function instead of just commenting them out, so you don't break compatibility with the fleets I hardcoded.
Logged

HELMUT

  • Admiral
  • *****
  • Posts: 1363
    • View Profile
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #54 on: March 03, 2014, 11:50:51 AM »

Haven't played the last version, however i found some vanilla things that i think should be fixed.

First is the Buffalo, this ship is worthless in every single aspects compared to the Tarsus. The only thing it can do better is the fuel per light year consumption, 1.25 compared to 2.2 for the Tarsus. Also 5 logistic points against 6 for the Tarsus.

I think it definitely need something to make it at least remotely useful. My idea would be to increase its burn speed to 6 (from 5) and lower the logistic cost to 2 or 3. It would still be useless but would finally provide an eventual alternative to the Tarsus.

Something else i found with some ships that use missiles. The autofire setting for missiles is set on, which means they will go trigger happy at the beginning of the fight and waste all of their missiles.

Also:

Quote
I'll probably buff the cargo capacity of the Condor and raise the logistics cost of the Gemini.

For the weapons, the Thumper is useless right now. If you want frag damage, the dual flak cannon can do the job much better and will also take care of missiles and fighters. The AI also have trouble dealing with the long charge-up of the Thumper, its slow turn rate don't help either. My idea would be to decrease a bit the charge up delay and turn speed, also perhaps increase the ROF and range to make it a bit more viable assault weapon.
Logged

Dark.Revenant

  • Admiral
  • *****
  • Posts: 2806
    • View Profile
    • Sc2Mafia
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #55 on: March 03, 2014, 02:55:48 PM »

Haven't played the last version, however i found some vanilla things that i think should be fixed.

First is the Buffalo, this ship is worthless in every single aspects compared to the Tarsus. The only thing it can do better is the fuel per light year consumption, 1.25 compared to 2.2 for the Tarsus. Also 5 logistic points against 6 for the Tarsus.

I think it definitely need something to make it at least remotely useful. My idea would be to increase its burn speed to 6 (from 5) and lower the logistic cost to 2 or 3. It would still be useless but would finally provide an eventual alternative to the Tarsus.

Something else i found with some ships that use missiles. The autofire setting for missiles is set on, which means they will go trigger happy at the beginning of the fight and waste all of their missiles.

For the weapons, the Thumper is useless right now. If you want frag damage, the dual flak cannon can do the job much better and will also take care of missiles and fighters. The AI also have trouble dealing with the long charge-up of the Thumper, its slow turn rate don't help either. My idea would be to decrease a bit the charge up delay and turn speed, also perhaps increase the ROF and range to make it a bit more viable assault weapon.

In SS+, the Tarsus and the Buffalo have the same amount of cargo capacity, but the Buffalo costs fewer logistics (1.6 vs. the Tarsus' 2.3) and has a better fuel range.  The Tarsus' sole saving grace is more OP and better weapons (the Buffalo has the worst weapons layout in the entire game not counting unarmed ships), which allows it to be more useful in combat.  So the Buffalo is more efficient and the Tarsus is more dangerous on the off chance you have to actually use it in battle.

That autofire issue is a holdover from that Vanilla Addon mod and is a pain in the ass to fix.  It'll get done eventually.

I'll try some buffs to the Thumper.
Logged

HELMUT

  • Admiral
  • *****
  • Posts: 1363
    • View Profile
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #56 on: March 03, 2014, 03:14:05 PM »

The Tarsus OPs give it the chance to mount the unstable injector hullmod (+1 burn speed) plus cargo and fuel expansion. The Buffalo can either mount the expansions or the injector but not both.

On top of that, the Tarsus is cheaper than the Buffalo, with more fuel and crew capacity.
Logged

Dark.Revenant

  • Admiral
  • *****
  • Posts: 2806
    • View Profile
    • Sc2Mafia
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #57 on: March 03, 2014, 04:03:31 PM »

The Tarsus OPs give it the chance to mount the unstable injector hullmod (+1 burn speed) plus cargo and fuel expansion. The Buffalo can either mount the expansions or the injector but not both.

On top of that, the Tarsus is cheaper than the Buffalo, with more fuel and crew capacity.

Even with bonus cargo, the Buffalo is still the more efficient freighter, having 375 cargo per logistics point WITHOUT the cargo expansion.  The Tarsus, even WITH the cargo expansion, is only 300 per logistics point.  In terms of carrying capacity the Buffalo is simply better.  Only the Atlas has better efficiency, and that comes at the cost of burn speed.
Logged

ckk185

  • Ensign
  • *
  • Posts: 1
    • View Profile
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #58 on: March 04, 2014, 04:41:33 AM »

The new fighters and some of the ships don't spawn at all, not to mention some of the weapons.
Logged

Dark.Revenant

  • Admiral
  • *****
  • Posts: 2806
    • View Profile
    • Sc2Mafia
Re: [0.6.2a] Starsector+ Vanilla Enhancement Mod 0.5
« Reply #59 on: March 04, 2014, 06:42:46 AM »

The new fighters and some of the ships don't spawn at all, not to mention some of the weapons.
That seems odd.  Some of the weapons/ships are a bit uncommon and are difficult to find (like the Lightning Gun or Inferno MIRV Launcher) but you should be able to find all of the fighters.  The Claymore and Halberd are used by the Hegemony, Independents, and Sindrian Diktat; the Sentinel is used by Independents but mostly the Sindrian Diktat, and Claws are used by Independents and Tri-Tachyon.  Plus, they appear in the stations by default.

I will be making the new weapons easier to find in the next version, though.
Logged
Pages: 1 2 3 [4] 5 6 ... 197