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 - SafariJohn

Pages: 1 [2] 3 4 ... 14
16
In an EveryFrameCombatPlugin subclass I have a Kotlin lateinit variable for the CombatEngineAPI which is set to the engine parameter of the init() method. I am getting a crash on new game at the end of the initial save because the variable has not been initialized. Most logical cause I can see is the class's advance() method is being called before its init() method.

I can just code around this case, but I can imagine this causing strange issues elsewhere.


EDIT:
Stacktrace
31229 [Thread-3] INFO  com.fs.starfarer.loading.scripts.B  - Loading class: kotlin.reflect.KVisibility
31238 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 4
31238 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 6
31437 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 6B
31439 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [campaign.xml] to [campaign.xml.bak]
31439 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [descriptor.xml] to [descriptor.xml.bak]
31439 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [campaign.xml.inprogress] to [campaign.xml]
31440 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Renaming [descriptor.xml.inprogress] to [descriptor.xml]
31441 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 7
31441 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Saving stage 8
31441 [Thread-3] INFO  com.fs.starfarer.campaign.save.CampaignGameManager  - Finished saving
31467 [Thread-3] INFO  com.fs.starfarer.loading.scripts.B  - Loading class: java.lang.StackTraceElement
31524 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain  - kotlin.UninitializedPropertyAccessException: lateinit property engine has not been initialized
kotlin.UninitializedPropertyAccessException: lateinit property engine has not been initialized
   at roiderUnion.combat.TrackerSpeedBoost.advance(TrackerSpeedBoost.kt:28)
   at com.fs.starfarer.title.Object.L$Oo.o00000(Unknown Source)
   at com.fs.starfarer.combat.A.new.o00000(Unknown Source)
   at com.fs.starfarer.combat.CombatEngine.advanceInner(Unknown Source)
   at com.fs.starfarer.combat.CombatEngine.advance(Unknown Source)
   at com.fs.starfarer.title.TitleScreenState.advance(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.o00000(Unknown Source)
   at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
   at java.lang.Thread.run(Unknown Source)
[close]

17
Suggestions / Pursuit-Style Raid Battles
« on: February 16, 2023, 07:58:56 PM »
I suggest adding raid battles to the game because it will liven up assassinations (person bounties) and peaceful trading.
The way to do it is by basing them on pursuit battles.

Mockup
[close]
Breakdown:
- both raider and defender can only retreat at the top of the screen

- raider's slowest ship must be faster than defender's slowest ship (by Burn speed)
- raider must deploy all
- raider can deploy frigates on sides
- raider must deploy one or more of the defender's ships
  - must be slower than raider's slowest
  - uses defender's DP

Defender's Initial Deployment
[close]
- defender's initial deploy can only use ships faster than the raider's slowest
- defender's later reinforcements deploy from the bottom of the map


Unlike normal battles, the raider can win by escaping after destroying enough of the defender's ships the raider chose to deploy. Both sides can salvage in this case, albeit reduced from normal. The raider can only recover their own ships.


I think this would improve the game's challenge by encouraging smaller fleets that sacrifice combat power for speed. Combat freighters would be more valuable and the stat stick ships might even be seen more than once in a blue moon.

18
Suggestions / Sinister Weapons
« on: February 15, 2023, 05:14:28 AM »
It would be nice to have built-in support for mirroring weapons.



I would like to see:
- .weapon boolean (default false) for leftMirror
- .weapon boolean (default false) for rightMirror (because sometimes you draw a left-handed weapon)

- enum for weapon mounts (default AUTO) that specifies their mirroring (for when the ship does not conform to simple left/right side - forwards/backwards facing)
  - AUTO, RIGHT_FORWARDS, LEFT_FORWARDS, RIGHT_BACKWARDS, LEFT_BACKWARDS

19
Suggestions / Disabled Ship = Escape Pods, not Boom
« on: January 22, 2023, 03:59:06 PM »
I suggest when a ship is disabled it spews out escape pods/shuttles instead of exploding.

Pods flying out from under a ship and fading down like missiles should be about as flashy as an explosion. If capitals are too big for that to suffice, disabling all the weapons (along with the engines per usual) should make up the difference.

20
Suggestions / Simplify Missile Autoreloader
« on: December 28, 2022, 03:00:54 PM »
There is an interesting upcoming hullmod called Missile Autoloader (https://twitter.com/amosolov/status/1607515951469330432) It is intended to buff small missile weapons, particularly ships with only one or two of them.

I think that is a nice idea, but the implementation could be simpler. I suggest making it a flat or percent based ammo increase and count every slot that can mount small missiles.

Quote
A combat rated autoloader provides additional ammo to small missile weapons, with a greater benefit for ships with fewer slots for them.

Does not affect weapons that do not use ammo or already regenerate ammo. The number of extra missiles is not affected by skills or hullmods that increase missile weapon ammo capacity.

---Bonus Ammo---

Determined by ship size and its number of small missile, synergy, composite, universal, and medium missile slots, both filled and empty. Having fewer slots simplifies the task and increases the amount of extra ammo.

*table like in link, but with equivalent percent or flat ammo increases*

21
Bug Reports & Support (modded) / Entropy Amplifier AI Bugs
« on: October 05, 2022, 06:36:11 AM »
I did a copy of Entropy Amplifier with doubled range and the entropyamplifier AI seemed to think it still had vanilla range. It would not use it even though it was well within range. If I am right, this would also happen with vanilla EA when used with System Expertise.

Other bug is, if the player ship is on autopilot, Entropy Amplifier will frequently target fighters over bigger ships.

22
Suggestions / Active Flare Launcher Should be Used Earlier
« on: September 15, 2022, 04:10:17 AM »
Active flares are a good system, but the AI holds off using it until missiles are right on top of them. It would work a lot better if they used it at longer range.

Frankly, active flares should almost be spammed any time a missile might be launched. It is not like it costs anything.

23
Suggestions / Carrier AI for Support and 0-Range Wings
« on: September 08, 2022, 01:34:31 PM »
Could carrier AI send support wings with greater than 0 range out to escort allies again?

Also, if all fighter wings' range is modified to 0, can the carrier AI please keep them on regroup?

24
Bug Reports & Support (modded) / Cruiser with Module Loses PPT to Frigate
« on: September 04, 2022, 12:53:11 PM »
Seems like the "minor enemy presence" state does not happen for ships with modules.

25
User sandweed on Discord reported this error which appears to say something other than a number was used as a weight in a WeightedRandomPicker, but the Roider code section listed could not possibly do that. I have no idea what is going on.

Quote
3873856 [Thread-3] ERROR com.fs.starfarer.combat.CombatMain  - java.lang.ClassCastException: 
 5  cannot be cast to java.lang.Flo
java.lang.ClassCastException: 
 5  cannot be cast to java.lang.Flo
    at com.fs.starfarer.api.util.WeightedRandomPicker.pick(WeightedRandomPicker.java:183)
    at scripts.campaign.fleets.expeditions.Roider_TechExpeditionFleetRouteManager.pick TargetSystem(Roider_TechExpeditionFleetRouteManager.java:466)
    at scripts.campaign.fleets.expeditions.Roider_TechExpeditionFleetRouteManager.adva nce(Roider_TechExpeditionFleetRouteManager.java:119)
    at com.fs.starfarer.campaign.CampaignEngine.advance(Unknown Source)
    at com.fs.starfarer.campaign.CampaignState.advance(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.o00000(Unknown Source)
    at com.fs.starfarer.StarfarerLauncher$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:748)

Code: java
public static StarSystemAPI pickTargetSystem() {
    WeightedRandomPicker<StarSystemAPI> picker = new WeightedRandomPicker<>();

    for (StarSystemAPI system : Global.getSector().getStarSystems()) {
        if (Global.getSector().getPlayerFleet().getContainingLocation() == system) continue;
        if (system.getJumpPoints().isEmpty()) continue;
        if (!system.isProcgen()) continue;
        if (!system.hasTag(Tags.THEME_REMNANT)) continue;
        if (system.hasTag(Tags.THEME_HIDDEN)) continue;
        if (!Global.getSector().getEconomy().getMarkets(system).isEmpty()) continue;
        if (system.getType() != StarSystemGenerator.StarSystemType.NEBULA
                    && system.getStar() == null) continue;

        picker.add(system, getVeryApproximateSalvageValue(system) + 1); // getVeryApproximateSalvageValue() returns a float
    }

    StarSystemAPI pick = picker.pick(); // Line 466
    if (pick != null) return pick;

    // ... etc.

26
Suggestions / Halve Maintenance Cost if BP is Known
« on: July 31, 2022, 05:57:56 AM »
To encourage using your own ships and discourage using captured enemy ships (without penalizing rare one-off ships like Ziggurat), I suggest halving the supplies per month of ships that you have the BP for.

This would also incentivize using civilian ships early on because most of their BPs are already known.

Another aspect I think would be beneficial is it would make it easier for new players to manage their supplies.


Only thing is I am not sure how to explain this bonus. Maybe add a new "BP Known" line to ship stat cards with a tooltip?

27
Suggestions / More PPT Status Icons
« on: July 04, 2022, 10:25:56 AM »
All the combat status messages for PPT on the left side of the screen show the same icon. I suggest adding more icons for different cases.

For example:
- PPT ticking down vs holding steady
- degrading CR
- danger of malfunctions
- danger of critical malfunctions

Color changes would also help.

28
Suggestions / Add Sound to Transmitter Trap
« on: May 25, 2022, 02:17:35 PM »
The Transmitter Trap salvage special should play the Distress Call sound when it activates.

29
Suggestions / Torus Battle Map
« on: May 22, 2022, 10:51:28 AM »
To remove corners from the battle map and the problems they cause, I suggest that the map be made toroidal - i.e. go off any side, come back on the opposite side.

30
I added a normal hullmod as a non-s-mod built-in via ShipVariantAPI.addPermaMod("hullmodId", false). Everything seems fine, but when the s-mod build-in menu is opened, the perma mod can be de-permafied. Even if the player doesn't interact with the mod, it is still de-permafied when they close the build-in menu.

Pages: 1 [2] 3 4 ... 14