Fractal Softworks Forum

Please login or register.

Login with username, password and session length

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Histidine

Pages: 1 ... 6 7 [8] 9 10 ... 12
106
Setting the starting system (ngcSkipTutorialPicked in rules.csv) to Hybrasil and calling the following script from onNewGameAfterTimePass() causes the game to throw an NPE after the initial save:

Code: java
package data.scripts.world;

import com.fs.starfarer.api.Global;
import com.fs.starfarer.api.campaign.CampaignFleetAPI;
import com.fs.starfarer.api.campaign.SectorAPI;
import com.fs.starfarer.api.campaign.SectorEntityToken;
import org.lwjgl.util.vector.Vector2f;

public class StartingSystem {

public static void execute()
{
SectorAPI sector = Global.getSector();
if (Global.getSector().isInNewGameAdvance()) return;

// teleport player to start on top of the planet
SectorEntityToken entity = sector.getEntityById("culann");
CampaignFleetAPI playerFleet = sector.getPlayerFleet();
Vector2f loc = entity.getLocation();
playerFleet.setLocation(loc.x, loc.y);
}
}

Code
54447 [Thread-5] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.NullPointerException
java.lang.NullPointerException
at com.fs.starfarer.campaign.CustomCampaignEntity.render(Unknown Source)
at com.fs.starfarer.campaign.BaseCampaignEntity.render(Unknown Source)
at com.fs.graphics.LayeredRenderer.render(Unknown Source)
at com.fs.starfarer.campaign.BaseLocation.render(Unknown Source)
at com.fs.starfarer.campaign.CampaignEngine.render(Unknown Source)
at com.fs.starfarer.campaign.CampaignState.render(Unknown Source)
at com.fs.starfarer.BaseGameState.traverse(Unknown Source)
at com.fs.state.AppDriver.begin(Unknown Source)
at com.fs.starfarer.combat.CombatMain.main(Unknown Source)
at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
After restarting the application, the save can be loaded and played as normal.

The issue appears oddly specific to some planets. Among the ones I tried: it doesn't happen with Tartessus, Daedalon, Kazeron, Barad, Jangala or Gilead. It occurs with the Interstellar Imperium mod's Byzantium (a terran planet).
It also doesn't happen if the setLocation line is commented out.

107
Modding / Sustained Burn AI: erratic behaviour
« on: May 13, 2017, 08:29:34 AM »
I wrote a script for the AI fleets to use Sustained Burn, but it has a strange issue.

When the fleet is in a star system, the AI works as I expect it to.

When the fleet is in hyperspace, the following happens repeatedly:
  • Decide to use S Burn.
  • Activate S Burn.
  • Deactivate S Burn in the same frame or the next one, without the script telling it to.
  • Continue on course in normal burn for about half a second.
  • Decide to use S Burn.
  • Activate S Burn.
  • Deactivate S Burn in the same frame or the next one.
  • ...


Testing materials:
Spoiler
Mod
Test save
Script

(debugging messages appear in campaign UI if the player fleet is close enough to the involved AI fleet)
[close]

Alex, any ideas?

108
Even when paused or command channel is still open. Intentional?

109
Bug Reports & Support / [0.8a] Ally deploys zero-CR ship
« on: May 10, 2017, 01:04:22 AM »
Spoiler
[close]

It had plenty of other ships it could field instead and even if it didn't, it shouldn't have deployed the Venture. I think the enemy also does this sometimes.

Don't have a save handy unfortunately, but I could rig up a saved scenario that illustrates this if so needed.

110
When multiple fleets are on the same side in a battle, whether to apply the per-ship bonuses of Coordinated Maneuvers / Electronic Warfare level 1 is decided by the first fleet on that side. (The % effect caps may similarly be affected, I didn't test)
This means if you join an ongoing battle with a low-level ally fleet, you can fail to benefit from CM/EW even if you have the skill, which can be annoying or a serious disadvantage.

Either each fleet should check its own commander's skill, or the highest skill level found among the participating fleet commanders should be used for all fleets on that side.

111
Spoiler
So I'm refitting one of the Herons in The Last Hurrah:



But if I click on another ship, then click on the Heron again, it seems to revert its loadout to what it had before:



If I select another ship, the Heron displays the "X ordnance points remaining" message (and the Next w/ free OP button works). The message disappears again if I re-select the Heron.



The main mission display correctly reflects the original changes to the carrier's weapons, but not to the fighters (as seen in the Order of Battle box):



If I click on another mission, then on The Last Hurrah again, both the order of battle and the refit screen reflect the original changes.




[close]

(this is on Linux, with the saves folder symlinked to a folder on an NTFS drive)

112
Bug Reports & Support / [0.8a RC19] Restoring Luddic ships is free
« on: April 22, 2017, 05:44:32 AM »


First noticed this with a Kite, can reproduce using console-given Hound and Cerberus as well.

Normal D skins (kite_d, hound_d, cerberus_d) cost credits to restore as normal.

113
Every so often, some modder references a file somewhere (typically in a .json/.wpn/.ship/etc data file) where the file entry has a case mismatch with the name of the actual file. Windows (and Mac?) don't care, so our mod dev never notices and cheerfully publishes the mod.

Then some poor sap of a Linux user downloads the mod, it CTDs on startup when trying to load the asset(s) and they get to spend 2-5 minutes fixing it manually. Or worse: the error is in the jars section of mod_info, in which case it crashes without explaining why it can't find the class file (recent example). Multiply by every Linux player trying the mod and Torvalds kills a kitten each time this happens. I've managed to do a crash-causing typo myself once (despite dual booting Ubuntu/Win7).

Could we get something that validates file names on case sensitive filesystems, and throws an exception if it finds a mismatch?
(At least make it throw an exception on non-existent .jar references in modinfo)

114
When the player fleet is stationary in e.g. an asteroid belt, it starts holding position relative to the belt... even if it has a rules.csv Wait interaction with an object (like when installing a sniffer on a comm relay). This causes a small issue in Nexerelin when the player is mining an asteroid and it starts drifting away (potentially far away enough to break the interaction progress).

115
If ship X has incrased in-combat sensor range boost through a hullmod or shipsystem, it sees more enemy ships which count towards its peak performance timer countdown requirement. The other ships, not being able to see ship X, are not affected by it for PPT ticking. This creates an asymmetry in PPT loss that would not otherwise exist, and makes increased sensor range a hidden indirect nerf.

e.g. in the same scenario from two different points of view (both destroyers):


Perhaps the proximity distance for being counted as in combat should be based on unmodified sensor range, or an entirely separate value?

116
Back when Homo habilis walked the earth, there were some posts bringing up a couple of issues:

  • You have to fight one engagement round to defeat the enemy combat ships, then another to clean up the non-combat ships and other stragglers.
  • Solo ship play: Player fleet has one combat flagship and 24 Atlases. Player solos enemy fleets of 80 ships, none of whom ever think to attack the juicy Atlases while the player ship is occupied (because they can't).
    (I call this "the Megas problem")
  • And more recently: For non-combat freighters, cargo capacity and burn speed are pretty much the sole considerations. If you don't plan on deploying it in combat and don't run from battles, there's no point bothering with defense or armament.

This is a proposal to address the three issues. It also aims to introduce a new tactical problem: protecting your non-combat or damaged ships even when you're not running away.

Spoiler
The basics
If both sides choose to engage the other:

The map is tall. Really tall.

Spoiler

(open in new tab for full size)
[close]

Ships start in the start area (duh). When they retreat, they have to go through the retreat area all the way to the edge of the map before they can leave.

Objectives cannot spawn in the start or retreat areas, only the empty area between them.

Spoiler
[close]

Both sides pick the ships they want to deploy initially. Once this is done, all ships – including those not deployed – appear in the start area. Ships not deployed are inactive. They have shields and station-keeping thrusters (and maybe PD, if so desired), but otherwise cannot do anything else. Ships that stay inactive through the whole battle will not lose CR.

Spoiler
[close]

If one side decides it needs reinforcements, it can select an inactive ship and activate it. This might cost a command point if we wanted it to. The newly activated ship moves out to do its thing; it'll have the standard CR cost applied at the end of the battle.

For fun, activated ships (including those in the initial deployment) could burn drive in for a couple of seconds.

Spoiler
[close]

Flanking forces can threaten inactive ships. Activate a response force (a Hammerhead, in this case) as needed to protect your squishy freighters, and maybe the freighters themselves so they aren't just sitting ducks.
(This is why inactive ships still have their shields, so a couple of fast movers with strike weapons don't wreck everything)

Spoiler
[close]

When the full retreat order is sounded, ships (including inactive ones) turn and run towards their side of the map, just like the current implementation. Individual inactive ships can also be given a retreat order (the only order other than Activate they can receive). Once all ships flee or are destroyed, the battle ends (no separate pursuit scenario).

Retreating ships are activated, with corresponding CR costs. This is so the player can't just issue a full retreat order at start to protect their non-combat ships while their flagship solos the enemy fleet.

What if one side decides to flee from the start?
Use the current vanilla escape scenario.

Because escaping in the new combat scenario is probably easier than in the existing escape scenario, I'm thinking the escape scenario should be mandatory if one fleet is much smaller than the other.
(Conceptually, the pursuing frigates are able to flank and surround the enemy before the battle begins)

Alternative implementation
In case the escape scenario hax above is too undesirable:

  • A ship retreating without activation only incurs 25% of the usual CR cost (but will behave as if crash-mothballed).
  • Retreating from a combat scenario doesn't end the battle, the old engage again/retreat dialog comes up. This proposal may still be worthwhile, because you can kill most (maybe even all) of the enemy non-combat ships without having to play the escape scenario.
  • No mandatory escape scenario (only if one side actually chooses to flee in the dialog).
[close]


Yea or nay?

117
Suggestions / "Guest party member" ships
« on: September 23, 2016, 09:36:47 PM »
What?

Ships in the player fleet with the following properties:
  • Can't be refitted or have their officers (if any) changed
  • Can't be used as flagship in battle
  • Officers don't gain XP
  • May or may not pay for their own supply/fuel costs
  • May or may not have ally fleet-style AI (can't be given orders, decide when to retreat on their own, etc.)

Specific applications I'm thinking of:
  • Escort missions or rent-a-merc, without having to manage a separate fleet following the player around
  • Custom scenarios for missions/campaign quests where ally ships should not be commandable (case in point: Dire Straits)
  • A fast, powerful guest destroyer at start that leaves the player fleet after a certain level could be helpful for the early game difficulty problems

118
1: Setting a market for multiple entities (as seen in the following code) causes a market to be listed multiple times (presumably once per entity) in the list of nearby objects. This doesn't happen when using the economy json files (so Jangala + its station is unaffected).

Code: java
        //get all associated entities and associate it back to the market we've created
        if (null != connectedEntities) {
            for (SectorEntityToken entity : connectedEntities) {
                entity.setMarket(newMarket);
                entity.setFaction(factionID);
            }
        }



2) Gates leading to hyperspace show the "nearby" entities to the hyperspace-side exits. Feels pretty pointless since you can't usefully shorten the travel time by picking a different exit.

119
In the Tiandong Heavy Industries mod thread there is a discussion involving a user getting the Java heap space error in two different saves upon docking with a particular station (Fort Macau, near the player in the second save) and attempting to view the trade screen. (Ship buy/sell screen works fine, at least for me).
Other people (myself included) have reproduced the crash using the provided saves and mod list.
Given that the station and its market are have basically no unique code that anyone can think of (there is at least one item in rules.csv, but removing it didn't fix it), it's not clear why this would occur here specifically.

One
Two

I ran the NetBeans profiler on it, though I lack the knowledge to interpret the results.
Spoiler
Imgur album version

Before memleak
Snapshot taken while in the station interaction dialog's main menu
Spoiler


[close]

Midway through memleak
Call it a minute or so after triggering the bug by clicking the trade button.
Spoiler


HashMap class stacktraces:
Spoiler



(I think you get the idea)

[close]

Color class stacktraces:
Spoiler
[close]

campaign.ui.marketinfo.A class stacktraces
Spoiler
[close]

Fader class stacktraces:
Spoiler
[close]
[close]

After CtD with heap space error
Spoiler


[close]
[close]

120
Modding / Faction D&D alignments in the Modiverse
« on: July 16, 2016, 06:50:07 PM »
Something I did for fun, based on discussions with certain other modders.
(Note: Like the whole D&D alignment system in general, don't take too seriously.)
Spoiler

My comments on faction placement
Spoiler
Factions are a bit harder to place on the usual D&D alignment scheme compared to individuals (not that it was already very accurate for those), since two distinct factors are involved: the faction's internal policies, and what role it plays in the greater Sector. This complicates the lawful-chaotic axis in particular: for instance, Templars are internally very Lawful (strict hierarchical religious organization), but in the broader sector they act as a force for chaos (destroying everything, cannot be negotiated with) and so DR proposed placing them on the Chaotic side.

Good-evil still remains relatively simple: treat people within and without well, or not.
[close]

If you want your own faction added somewhere, or it's there and you think it should be somewhere else, shout!

Pages: 1 ... 6 7 [8] 9 10 ... 12