Though there is a difficulty setting for the AI's aim, there doesn't seem to be a way of limiting how many of a single ship spawn in a wave. It may be 4 one-man fighters (an easy encounter), but it may be 4 star destroyers (completely impossible). I propose a way of classifying blueprints so that they have a 'Threat Level (TL)', then using that difficulty to limit pirate waves. Pirate wave difficulty will scale to match the threat level of the ship being piloted; so fewer weapons make for fewer encounters while more weapons mean bigger enemy waves.
Block Categories:
Industrial:
Power generators, battery tanks, factory blocks, and docking ports.
Auxiliary:
Salvage computers and push, pull, power supply, and power drain weapons.
Defensive:
Shield blocks and hardened hulls.
Offensive:
Cannons, damage beams, missiles, explosives, and turret docks.
Mundane:
All other block types.
Sizes and Criteria:
The more blocks used on a ship the greater the difficulty in destroying them (usually).
Class 1: between 1 and 500 blocks.
Class 2: between 501 and 2,000 blocks.
Class 3: between 2,001 and 4,500 blocks.
Class 4: between 4,501 and 8,000 blocks.
Class 5: between 8,001 and 12,500 blocks.
Class X: between 1+(x-1)*(x-1)*500 and (x*x*500) blocks.
Ship/Station Classes and Criteria:
Now we can classify the ship based upon the ratio of the 5 categories of blocks used to build it. We ignore all of the mundane blocks, and focus on the Utility Weight, which is (Total # of Block) - (Mundane Blocks). So for reference, a Balanced Ship would have a utility weight of 25% Offensive, 25% Defensive, 25% Auxiliary, 25% Industrial.
Civilian/Recreation: TL-1
0% Offensive
0% Auxiliary
Any % Defensive
Any % Industrial
Example: a mundane transport vehicle
Freighter: TL-1
0% Offensive
<25% Auxiliary
Any % Defensive
Any % Industrial
Example: an asteroid miner or vehicle ferry
Auxiliary/Utility: TL-2
<25% Offensive
>25% Auxiliary
<25% Defensive
<25% Industrial
Example: a repair drone or power relay turret
Merchant: TL-3
<25% Offensive
<25% Auxiliary
>25% Defensive
<50% Industrial
Example: a transport freighter with a few defense turrets
Fighter: TL-4
>25% Offensive
<10% Auxiliary
Any % Defensive
Any % Industrial
Example: most starting vessels, or the common Isanth
Battleship: TL-5
>30% Offensive
<10% Auxiliary
>30% Defensive
Any % Industrial
Example: most flagships, or a well defended pirate fortress
The Threat Level Calculation:
TL = Size Class * (Ship Class * Ship Class) + (# of weapon modules / # of weapon computers) + (# of modules marked as outputs / # of weapon computers)
Bigger ships are harder, but their utility balance is the biggest factor. Then take into account roughly how much damage per second they'll be able to deal.
The Wave Spawn Calculation:
First, establish the total TL of the Target(s) being assaulted.
Second, determine difficulty of the wave (i.e., a number between -10 and 10)
Third, (Wave Difficulty) + (Total Target(s) Threat Level) = Total Wave Threat Level (TWTL)
Fourth, spawn a ship whose TL is less than the TWTL.
Fifth, if any TWTL remains spawn another ship whose TL is less than the remaining TWTL.
Repeat until all TWTL is used, or no blueprint matches the criteria.
---
Ship classes can then be displayed in the HUD when locked on. I.e. (Isanth-I: Class 1 Fighter). This will help players prioritize targets, or judge the relative difficulty of an enemy.
Block Categories:
Industrial:
Power generators, battery tanks, factory blocks, and docking ports.
Auxiliary:
Salvage computers and push, pull, power supply, and power drain weapons.
Defensive:
Shield blocks and hardened hulls.
Offensive:
Cannons, damage beams, missiles, explosives, and turret docks.
Mundane:
All other block types.
Sizes and Criteria:
The more blocks used on a ship the greater the difficulty in destroying them (usually).
Class 1: between 1 and 500 blocks.
Class 2: between 501 and 2,000 blocks.
Class 3: between 2,001 and 4,500 blocks.
Class 4: between 4,501 and 8,000 blocks.
Class 5: between 8,001 and 12,500 blocks.
Class X: between 1+(x-1)*(x-1)*500 and (x*x*500) blocks.
Ship/Station Classes and Criteria:
Now we can classify the ship based upon the ratio of the 5 categories of blocks used to build it. We ignore all of the mundane blocks, and focus on the Utility Weight, which is (Total # of Block) - (Mundane Blocks). So for reference, a Balanced Ship would have a utility weight of 25% Offensive, 25% Defensive, 25% Auxiliary, 25% Industrial.
Civilian/Recreation: TL-1
0% Offensive
0% Auxiliary
Any % Defensive
Any % Industrial
Example: a mundane transport vehicle
Freighter: TL-1
0% Offensive
<25% Auxiliary
Any % Defensive
Any % Industrial
Example: an asteroid miner or vehicle ferry
Auxiliary/Utility: TL-2
<25% Offensive
>25% Auxiliary
<25% Defensive
<25% Industrial
Example: a repair drone or power relay turret
Merchant: TL-3
<25% Offensive
<25% Auxiliary
>25% Defensive
<50% Industrial
Example: a transport freighter with a few defense turrets
Fighter: TL-4
>25% Offensive
<10% Auxiliary
Any % Defensive
Any % Industrial
Example: most starting vessels, or the common Isanth
Battleship: TL-5
>30% Offensive
<10% Auxiliary
>30% Defensive
Any % Industrial
Example: most flagships, or a well defended pirate fortress
The Threat Level Calculation:
TL = Size Class * (Ship Class * Ship Class) + (# of weapon modules / # of weapon computers) + (# of modules marked as outputs / # of weapon computers)
Bigger ships are harder, but their utility balance is the biggest factor. Then take into account roughly how much damage per second they'll be able to deal.
The Wave Spawn Calculation:
First, establish the total TL of the Target(s) being assaulted.
Second, determine difficulty of the wave (i.e., a number between -10 and 10)
Third, (Wave Difficulty) + (Total Target(s) Threat Level) = Total Wave Threat Level (TWTL)
Fourth, spawn a ship whose TL is less than the TWTL.
Fifth, if any TWTL remains spawn another ship whose TL is less than the remaining TWTL.
Repeat until all TWTL is used, or no blueprint matches the criteria.
---
Ship classes can then be displayed in the HUD when locked on. I.e. (Isanth-I: Class 1 Fighter). This will help players prioritize targets, or judge the relative difficulty of an enemy.