Author Topic: Amram's FC Options and Interleaved Priority Queue demonstrator python script.  (Read 2461 times)

0 Members and 1 Guest are viewing this topic.

Offline amram (OP)

  • Lieutenant
  • *******
  • a
  • Posts: 154
  • Thanked: 79 times
The script is now ready to demo the concept as described here: http://aurora2.pentarch.org/index.php?topic=9841.msg112905#msg112905

It now also supports the concept I mentioned a few posts prior, here: http://aurora2.pentarch.org/index.php?topic=9841.msg112885#msg112885

It was written on windows with python 3.7, i make no promises about any other environments....

The main menu has 13 options,
1 toggles aurora firing order or interleaved priority queue
2-5 adjust demonstration display settings,
6 toggles min and maximum range bands
7 toggles the salvo size and salvo qty feature
8 toggles mixed ammunition or single type.
9 shows the current taskgroup as configured
10 allows editing the priorities of specific firecontrols
11 resets the taskgroup ships and FC's to default state
12 runs the demo
and 0 quits

user input should be reasonably sanitized, I didn't try too hard to sanitize input, so play nice....

After a completed demonstration, it prints off the remaining munitions stocks.

the firecontrol queue has lines like
Code: [Select]
DDG Cole mag: Viper: 197 pri: 3 FC: 2 Ready: 1 / 4 fc busy reloading 0swhich show the ship,ammunition remaining, current priority, FC number, how many launchers are ready, whether the FC is occupied because it has fired this cycle, if any launchers are reloading, and how long before one ore more launchers will be available.

salvos if printed display like:
Code: [Select]
TTI:  20
3x Vampire 0: 32.0kkm/s 661kkm, -> TG1 DDG Stout,  TTI: 20 sec
which indicates Time to Arrival, this is the incoming salvo grouping I indicated, which would be necessary for the salvo qty/size firing options to work well.  To be implemented.
it also has the missiles in the salvo, salvo name, velocity, range, its target, and a reprint of TTI, since the missiles print it themselves....blegh, its fine.

weapon fire is indicated with lines like
Code: [Select]
DDG Cole shoot FC2: Viper AMM 4 -> 3x Vampire 0: 32.0kkm/s 661kkm, -> TG1 DDG Stout,  TTI: 20 secwhich shows the shooter, which FC, what weapon, the target missile, which contains the information missiles self print.


The firing queue looks like this:
Code: [Select]
DDG Stout Taipan 17000k km  186 pri: 17  FC: 2 Ready: 4 / 4       
DDG Barry Taipan 17000k km  187 pri: 13  FC: 0 Ready: 4 / 4       
DDG Cole Taipan 17000k km  179 pri: 13  FC: 0 Ready: 4 / 4       
DDG Barry Taipan 17000k km  187 pri: 13  FC: 1 Ready: 4 / 4       
DDG Cole Taipan 17000k km  179 pri: 13  FC: 1 Ready: 4 / 4       
DDG Mitscher Taipan 17000k km  178 pri: 13  FC: 1 Ready: 4 / 4       
DDG Stout Taipan 17000k km  186 pri: 13  FC: 1 Ready: 4 / 4       
DDG Barry Taipan 17000k km  187 pri: 13  FC: 2 Ready: 4 / 4       
DDG Mitscher Taipan 17000k km  178 pri:  5  FC: 0 Ready: 4 / 4       
DDG Stout Taipan 17000k km  186 pri:  5  FC: 0 Ready: 4 / 4       
DDG Cole Taipan 17000k km  179 pri:  5  FC: 2 Ready: 4 / 4       
DDG Mitscher Taipan 17000k km  178 pri:  5  FC: 2 Ready: 4 / 4

it shows only the currently loaded weapon for each FC
It also properly sorts them when inserted, resolving the backwards preference it had previously.

There are two main modes of operation, it has aurora style, in which it completely ignores prioroties and does not interleave the firecontrols.  It will use all the firecontrols on one ship before moving on to the next, and every increment that an FC is available, it will always use that same ship first.  The second is interleaved round robin, as I described previously.  Do compare the results.

You can explore adjusting priorities.  Larger numbers mean a ship is more likely to stay at the front of the queue.  The current advancement is 2, so every increment that a FC doesn't get to fire, it increases its priority by 2, and the queue is resorted before an increment begins.  This causes unused FC's to rise in priority until they are used, at which point they reset to their default priority.

You can coerce a ship to remain at the front of the queue, and empty itself out as quickly as it can by making its FC priorities high enough that no other ship will overtake them anytime soon, or the others' FC's low enough, same difference.

likewise you can allow a ship to conserve its ammo by reducing its FC's priorities, or boosting the others higher.

The task group is assumed to have a PD gun defence of 4 salvos, 8 missiles per salvo, so if salvo/qty is enabled, it will ignore up to 4 salvos, with up to 8 missiles each, and will kill any additional salvos, or any salvo larger than that.

min/max range bands is really only relevant with mixed ammunition, it won't hurt anything, if mixed ammunition is not on, the only missile assigned has the full range as its range band anyways.  For mixed ammunition, the range bands do not overlap, each missile handles its own upper limit range until the a shorter reaching missile can reach the target.

Salvos have been increased in speed to 300kkm/s, just to accelerate the entire demonstration process.

the updated file is pd demo2.zip

Thoughts?

Feel free to report any bugs or broken code,
« Last Edit: February 28, 2019, 02:38:33 AM by amram »
 
The following users thanked this post: JakeLoustone, Peroox

Offline amram (OP)

  • Lieutenant
  • *******
  • a
  • Posts: 154
  • Thanked: 79 times
updated the script, now also supports the other posts feature request concept.

i've ignored the offensive side of the feature request, as the behaviour is little different, you're firing on ships instead of missiles, using asm's instead of amm's, and have two new restrictions, TCS min/max for restricting what targets are valid.

anyways.  Thats that unless anyone has feedback towards the concept that should be implemented/altered.
 
The following users thanked this post: JakeLoustone