Just in case anyone was interested .
Some of the info below is no longer valid as of 2.7 (mainly, the player ship & fleet is no longer relevant). Updated info.
For most missions, the enemy fleet is created by something called the Opponent Balancing System (OBS).
OBS uses a 'points pool' to randomly generate the fleet. Each type of ship (or wing) selected to spawn costs a certain number of points, and is deducted from the pool. More ships are randomly allocated until all the points in the pool are used up.
The size of the points pool may be set explictly by the mission, but it's more often determined using the mission difficulty (as shown on the briefing screen) and the mission rank (normally your fight rank).
The initial point pool is based on the mission rank. This is then adjusted according to the mission difficulty. Depending on the difficulty, it may then be further modified to take into account some or all of the player's ships:
- Trivial or Very Easy - none.
- Easy - Personal ship.
- Average - Personal ship and nearby (<15km) ships.
- Hard, Very Hard and Impossible - All player ships in the sector.
More precisely:
Class points values
- M5 - 1
- M4 - 7
- M3 - 20
- M8 - 70
- M6 - 100
- M7 - 220
- M2 - 600
- M1 - 500
- M1 (support) - 500
- TS - 4
- TP - 3
- TM - 5
- TM (support) - 20
- TL - 125
- TL (support) - 75
- 0 - 2
- 1 - 2
- 2 - 3
- 3 - 3
- 4 - 4
- 5 - 6
- 6 - 7
- 7 - 10
- 8 - 13
- 9 - 17
- 10 - 22
- 11 - 29
- 12 - 38
- 13 - 49
- 14 - 64
- 15 - 84
- 16 - 109
- 17 - 143
- 18 - 186
- 19 - 243
- 20 - 318
- 21 - 416
- 22 - 544
- 23 - 711
- 24 - 930
- 25 - 1216
- 26 - 1589
- 27 - 2078
- 28 - 2718
- 29 - 3554
- 30 - 4647
- IP - Initial points pool
- PS - Class value of playership
- PCS - Total class value for close ships owned by player
- PTS - Total class value of all In Sector ships owned by player (I think)
- Sub-total
- Trivial = (IP+1)*random(9,14)
- Very Easy = (IP+1)*random(20,28 )
- Easy = ((IP*random(50,66))+(PS*100))
- Average = (IP+PS+PCS)*100
- Hard = ((IP+PS)*100)+(PTS*random(10,16))
- Very Hard = ((IP+PS)*100)+(PTS*random(25,33))
- Impossible = ((IP+PS)*100)+(PTS*random(55,67))
Figures taken from 2.0.
I'm not sure what the support stuff does.
Also, I'm not certain that hard and above use all the player ships or not. The code appears to be looking for all ships, but the variable is named sector ships:
Code: Select all
<find_ship includedocked="1" multiple="1" race="player" group="this.PlayerCloseShips">
<distance max="15km"/>
</find_ship>
<do_all exact="{group.object.count@this.PlayerCloseShip}" counter="CloseCount">
<set_value name="this.PlayerClosePoints" exact="{value@this.PlayerClosePoints}+{value@Constant {group.object.{counter@CloseCount}.class@this.PlayerCloseShips} Points}"/>
</do_all>
<!--Set the players sector fleet points-->
<find_ship includedocked="1" multiple="1" race="player" group="this.PlayerSectorShips"/>
<do_all exact="{group.object.count@this.PlayerSectorShips}" counter="SectorCount">
<set_value name="this.PlayerTotalPoints" operation="add" exact="{value@Constant {group.object.{counter@SectorCount}.class@this.PlayerSectorShips} Points}"/>
</do_all>
EDIT: The consensus seems to be that PTS is IS ships only.