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 ... 8

Author Topic: [0.97a] Officer Extension (0.6.6)  (Read 112515 times)

float

  • Commander
  • ***
  • Posts: 245
    • View Profile
[0.97a] Officer Extension (0.6.6)
« on: January 26, 2022, 10:26:20 PM »

Officer Extension
 

Overhauls the officer selection dialog, adding additional features:


Features:

Manage more officers
  • Manage as many officers as you'd like. Hire new officers regardless of how many are currently under your command.
  • The 8 officer limit (10 with officer management) still applies -- however, it only applies to officers in command of a ship. Officers not in command of a ship do not count toward your officer limit.
[close]

Suspend officers
  • Suspend officers in your fleet for an upfront fee equal to twelve times their monthly salary.
  • Suspended officers cannot be assigned to any ship and must be paid 10% of their standard salary.
  • Suspended officers can be reinstated at any time for no cost.
  • Does not apply to mercenaries or AI cores.
Screenshot
[close]
[close]

Demote officers
  • Select skill icons directly from an officer’s skills panel to prime them for removal. Then remove those skills by demoting that officer. This causes the officer to lose levels equal to the number of skills forgotten.
  • Demoting an officer requires a story point and grants 100% bonus experience.
  • Officers cannot be demoted below level 1.
  • Does not apply to mercenaries or AI cores.
Screenshot

[close]
[close]

Additional menu options
  • Undo your most recent assignments. This may fail if you suspend, dismiss, or fully integrate officers or AI cores beforehand.
  • Filter officers by skills or by custom user-defined tags. Officers that don't have the selected skills or tags will be hidden from the selection panel.
  • Sort officers, which will sort officers in your fleet in the following order: unassigned mercenaries, assigned mercenaries, unassigned non-mercenary officers, assigned non-mercenary officers, suspended officers. Officers in the same category are sorted by level, followed by name.
Screenshot
[close]
[close]

Miscellaneous QoL
Sorts officer payroll in the income tab by pay, followed by officer name for officers with equal pay. This applies to suspended officers as well.

Screenshot
[close]

Upon interacting with another fleet, displays that fleet's commander's combat skills, including fleet-wide skills.

Screenshot
[close]

Level 7 cryopod officers will maintain their maximum level and number of elite skills even if you demote them or remove their elite skills via the retrain option. Like normal officers, they can no longer be retrained if they have fewer than their maximum allowed number of elite skills.
[close]

Additional notes:

Show

  • Safe to add to or remove from an existing save file.
  • Inspiration to modify the core UI directly (rather than making yet another rule-based interaction dialog or possibly a new intel tab) derived from andylizi's Planet Search and Dialog Minimap mods.
[close]

Version history:

Show
0.6.6: Here
0.6.5: Here
0.6.4: Here
0.6.3: Here
0.6.2: Here
0.6.1:
- Fixed issue where zip folder was empty
- Tentative fix for bug when FleetEncounterContext is different from 0.97a-RC11 version, should improve flexibility for different Starsector versions
0.6.0:
- Suspended officers no longer count for battle bonus XP calculation
- Officer promotion candidate intel event is no longer locked when vanilla officer cap is reached
- No longer uses a custom officer level-up plugin, instead sets max level and max elite skills values in the officer's local memory
- Added handling for "unremovable" skills via tag "officerextension_unremovable"
- Disabled demotion if officer is not leveled up
- Tentative fix for possible NPE when getOtherSideCombined is null
0.5.0:
- Just update Starsector version to 0.96a-RC6 and make sure nothing broke as a result
0.4.3:
- Reset game pause state on load
- Fix NoSuchMethodException issue on Linux machines
0.4.2:
- Add a field for persistent tags for filtering officers in the mod settings. Persistent tags will always be shown before any other custom-defined tags and will be shown even if you don't have any officers with that tag.
- Change all getMemory to getMemoryWithoutUpdate. This should fix crash bugs for officers with empty rank, post, name, etc.
0.4.1:
- Overhaul the "edit tags" feature. Now allows you to add tags individually as well as select from a list of all custom-defined tags.
- Add filters for personality and the "exceptional sleeper pod" status
- Allow filtering for elite versions of skills
- Sorting now takes number of elite skills into account
0.4.0:
- Change officer count so that only assigned officers count against your limit
- Add undo, filter, sort features in the selection menu
- Allow hiring of officers regardless of current number in fleet
- Allow special cryopod officers to regain lost levels and elite skills
- Suspending an officer now costs 12x their monthly salary (up from 10x). Suspended officers receive 10% pay (down from 25%).
- More detailed revisions in README
0.3.1:
- Added two new configurable settings: SP cost to demote officers, and whether the fleet commander skills panel should be split between personal and admiral skills.
- The fleet commander skills display will now display info for the enemy fleet in an ongoing battle, regardless of which fleet you clicked on.
- Renamed the "forget" buttons to "demote"
- Fixed an issue with the ReflectionEnabledClassLoader where it wasn't checking for findLoadedClass before calling findClass
- Various typo fixes and clarifications
0.3.0: initial release
[close]
« Last Edit: March 10, 2024, 09:29:49 AM by float »
Logged

Jaghaimo

  • Admiral
  • *****
  • Posts: 661
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers
« Reply #1 on: January 27, 2022, 02:37:24 AM »

Wish you released it yesterday. Had been finding so many officers in a pod (4 in 2 systems) that I kept on dismissing my normal level 1 ones (early game).

Fantastic thing.
Logged

Ruddygreat

  • Admiral
  • *****
  • Posts: 524
  • Seals :^)
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers
« Reply #2 on: January 27, 2022, 06:31:42 AM »

ooooohhhhhhh, fancy!
I'll definitely download this, if only for the admiral skill overview

shoi

  • Admiral
  • *****
  • Posts: 649
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers
« Reply #3 on: January 27, 2022, 09:45:28 AM »

the admiral skill list is a great addition
Logged

SCC

  • Admiral
  • *****
  • Posts: 4112
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers
« Reply #4 on: January 27, 2022, 10:09:39 AM »

Would it be possible to make enemy commander's combat skills and fleetwide skills show up in separate tabels, or to make demoting an officer not cost story points?

float

  • Commander
  • ***
  • Posts: 245
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #5 on: January 27, 2022, 02:53:37 PM »

@Jaghaimo, Ruddygreat, shoi:
Thanks for the positive feedback!

Would it be possible to make enemy commander's combat skills and fleetwide skills show up in separate tabels, or to make demoting an officer not cost story points?

Funnily enough, I did have a version where the commander's combat and admiral skills were separated, but I didn't like that the "combat-related skills" text panel showed up twice, so I got rid of it. I added a setting for that now.

And in the original version, demoting officers cost nothing, suspending officers cost nothing, and reinstating officers cost a story point. When I playtested with those settings, I found demotion to actually be very powerful, especially in the late game where it's not too much of a hassle to grind back lost officer levels -- they basically become free rerolls at that point. I then found that the suspension feature wasn't really useful when you could just "reroll" officer skills. So yeah, that's why I decided to switch it up to the current system. Regardless, I added a setting for the number of story points demoting an officer should cost. It defaults to 1 for the reason I just mentioned, but you can set it to 0 in the mod settings, if you'd like.
Logged

Sundog

  • Admiral
  • *****
  • Posts: 1723
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #6 on: January 27, 2022, 05:02:42 PM »

This is great! I was working on something similar, but I don't think it would've turned out as well as this. Wholesale replacement of the officer gui was the right call for sure. Well done!

Jaghaimo

  • Admiral
  • *****
  • Posts: 661
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #7 on: January 28, 2022, 04:23:22 AM »

Since we demote officers (level down), could you also replace vanilla text of "Level up!" with "Promote"?

Also suspend officer while neat for cost management (let's suspend unused ones until I need them later on), is weak from officers-over-limit QoL point: need to suspend weakest to sub it with the "weakest" one.

What I'd love you (actually vanilla) to do would be: only active officers (assigned to ships) count towards the "Officers: X/Y" count. So I can have 20 unsuspended ones (paying full wage), but can only assign 8 (or 10 with skills) at the given time.

Then there's this awkward thing with being able to retrain officers from a pod, but not officers that has been given elite skills (button is greyed out, could be replaced by "retrain" instead.

Finally, even if the above is not possible or done, it would be neat for suspended (and if the above is done, also unassigned) officers to learn a fraction of XP (they technically observe battles from inside the ship) - think of internship behaviour :)

Cheers!
« Last Edit: January 28, 2022, 05:33:18 AM by Jaghaimo »
Logged

float

  • Commander
  • ***
  • Posts: 245
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #8 on: January 28, 2022, 11:06:19 AM »

This is great! I was working on something similar, but I don't think it would've turned out as well as this. Wholesale replacement of the officer gui was the right call for sure. Well done!

Thank you!

What I'd love you (actually vanilla) to do would be: only active officers (assigned to ships) count towards the "Officers: X/Y" count. So I can have 20 unsuspended ones (paying full wage), but can only assign 8 (or 10 with skills) at the given time.
Cheers!

Isn’t this functionally identical to if suspending officers were free? Since you could suspend every officer and only reinstate the ones that you wanted to put on ships. If the issue is that suspending officers costs too much, you can change it in the settings, but I do think there should be some cost associated with it. Maybe it’s a little too high right now — I could tone it down.

I think to do it the way you suggested would require a complete rewrite of the officer selection dialog. The main issue being that the first 8 (or 10) panels in the list are the only assignable ones, and this check seems to be recalculated every frame (the obfuscated officer panel class has an unobfuscated isPastMax method that is probably getting called every frame). I could extend the officer panel class with my own implementation and overwrite the isPastMax method, but the class name is obfuscated, so I would have extend it at runtime in order to avoid using the obfuscated name. Since there’s no way to dynamically extend classes at runtime (barring bytecode manipulation, but I really don’t think packaging something like bytebuddy with a mod would be a great idea), for now setting the suspension cost to 0 will have to do.

Then there's this awkward thing with being able to retrain officers from a pod, but not officers that has been given elite skills (button is greyed out, could be replaced by "retrain" instead.
Cheers!

I don’t understand this, could you elaborate, possibly with a screenshot? What button is greyed out?

Finally, even if the above is not possible or done, it would be neat for suspended (and if the above is done, also unassigned) officers to learn a fraction of XP (they technically observe battles from inside the ship) - think of internship behaviour :)

Interesting idea, though in the first scenario it would be odd for suspended officers to gain XP but unassigned officers not to. And unassigned officers (in fact, even assigned officers, if their ship doesn’t get deployed) not getting XP is just part of the base game behavior, which I don’t want to stray too far from.

Thank you for all the feedback!
« Last Edit: January 28, 2022, 11:13:37 AM by this_is_a_username »
Logged

Jaghaimo

  • Admiral
  • *****
  • Posts: 661
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #9 on: January 29, 2022, 12:38:12 PM »

Suspending vs changed logic:

- Suspending would be used to reduce long term cost of unused officers. Say you found several level 5/7 pod officers that you have no immediate use - suspend for now, maybe use later.
- Changing logic of officers count would only be used to swap an active officer with a bottom list officer (that's currently "over the limit"). All it really needs is to be able to drag an officer over the limit to be above the officer that's unassigned. Yes, this is currently possible with "unassign -> suspend -> assign new one", but the added QoL here would be doing it in bulk. Personally, I don't mind credit cost, but to pay a story point for that is too much.

Don't sweat too much, I'll make a mod for myself that lets me drop my extra officers at any colony (they will never disappear, and will just need rehire - I will call it furlough scheme).


Officers from a pod:
 
Normal officers have "Make skills elite" button that costs story point. Officers from a pod (both level 5 and 7) come with Elite skill(s), and can be retrained at will (instead of "Make skills elite" they have "Retrain" button in its place).

Now what I would expect vanilla to do (and it doesn't) is when I make a skill elite on a normal officer - for that button to disappear and "Retrain" button to be shown. Instead, we have greyed out "Make skills elite".

It is slightly more complex than that, as you can pick skills that will increase the number of Elite skills available (so that button could become usable again). Perhaps replace location of "Mentor" with retrain (only becomes active when you have at least one Elite skill)?


Suspended / officers over limit gaining XP:

They are all on board (assuming as a crew) of some ships (flagship?). Flavour wise they could be performing some duties, say comms officer, navigation officer, and thus gaining a bit of XP. This is wanted in order so that we can level up a "second set" of officers, as sometimes you may want to play with different fleets (SO fleet, carrier heavy, low tech derelict fleet), and would like to avoid cheating via Console Commands.
Logged

float

  • Commander
  • ***
  • Posts: 245
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #10 on: January 29, 2022, 01:15:25 PM »

Suspending vs changed logic:
- Changing logic of officers count would only be used to swap an active officer with a bottom list officer (that's currently "over the limit"). All it really needs is to be able to drag an officer over the limit to be above the officer that's unassigned. Yes, this is currently possible with "unassign -> suspend -> assign new one", but the added QoL here would be doing it in bulk. Personally, I don't mind credit cost, but to pay a story point for that is too much.

I agree this isn't ideal, but there is no story point cost -- it only costs credits to suspend an officer, whereas demoting an officer (reducing their skills) costs a story point. Now that you mention this behavior, though, it *is* a bit odd and annoying. I've been looking at andylizi's mods and found out that he was able to extend an obfuscated class by extending a dummy class instead and modifying the bytecode specifically for the extended class's name at runtime prior to loading the class, which is really clever. I could do something like that, though I feel like I'd want to get his permission because it's definitely not something that I would have thought of on my own.

Although, if I do implement your suggestion, I have the feeling that suspending officers will just be useless, since I don't think officers' salary is high enough to really care about suspending them, especially when you have colonies churning out hundreds of thousands of credits a month...

Now what I would expect vanilla to do (and it doesn't) is when I make a skill elite on a normal officer - for that button to disappear and "Retrain" button to be shown. Instead, we have greyed out "Make skills elite".

You're probably encountering this because vanilla only allows max level officers to be retrained. Officers from a pod are max level when you get them so they can be immediately retrained. Normal officers, in addition to needing to be max level, must also have all available elite skills before they can be retrained. If both criteria are met, the the "make skills elite" button turns into a "retrain" button. I don't mind the max level requirement, but the elite skills requirement is imo just bad because it means that if you have cybernetic augmentation and officer training, you need to spend 4 story points on an officer before you can retrain them (which itself costs yet another story point).
Logged

Jaghaimo

  • Admiral
  • *****
  • Posts: 661
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #11 on: January 29, 2022, 02:00:10 PM »

Thanks for explaining in details. This is actually my first 0.95.1a play through (yes, I mod too much) so wasn't aware of exact ins and outs :)
Logged

Ruddygreat

  • Admiral
  • *****
  • Posts: 524
  • Seals :^)
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #12 on: January 29, 2022, 04:53:23 PM »

where does the "demote" button show up?
i've got an officer to level 5, but they've only got the options to suspend / dismiss / retrain

Spoiler
[close]

could this have anything to do w/ adding the mod to an ongoing save?

float

  • Commander
  • ***
  • Posts: 245
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #13 on: January 29, 2022, 06:50:55 PM »

where does the "demote" button show up?
i've got an officer to level 5, but they've only got the options to suspend / dismiss / retrain

Spoiler
[close]

could this have anything to do w/ adding the mod to an ongoing save?

Click on a skill icon to prime it for removal (it will become translucent). If at least one skill is primed for removal, and the officer isn’t capable of leveling up, the suspend button should change into a demote button.
Logged

Ruddygreat

  • Admiral
  • *****
  • Posts: 524
  • Seals :^)
    • View Profile
Re: [0.95.1a] Officer Extension -- suspend and demote officers (0.3.1)
« Reply #14 on: January 30, 2022, 05:43:55 AM »


<my post>


Click on a skill icon to prime it for removal (it will become translucent). If at least one skill is primed for removal, and the officer isn’t capable of leveling up, the suspend button should change into a demote button.

ooooohohhhhhhhhhhhhh, that's cool as hell (and I never would've guessed it)
you should update the "demote officers" section of the op with that, the way it's laid out implies to me that there'll be a demote button that pops up a similar thing to the vanilla "retrain" menu
Pages: [1] 2 3 ... 8