NOTE: This spec has been superseded by Armor Classes and Armor Limits

In 1.8 we plan on making armor mass more important, in order to add an extra dimension for trade-offs. The core idea is to have armor mass affect the ship's max. speed: heavy armor will slow down a ship, while light armor might allow it to go faster.

This will give the player the choice to trade off some speed to get more hit points, or vice versa.

In addition, the effect of armor mass on a ship will depend on the ship class. For example, heavy and slow ships will not be as affected, since armor is a smaller fraction of their total mass.

For the 6 Stars of the Pilgrim player ships, the effects will be as follows:

ARMOR MASS
(per segment)  EI500    SAPPHIRE WOLFEN   CONNIE   MANTCORE FREYR
--------------------------------------------------------------------
<= 1.5 tons    +.01c    +.02c             +.01c    +.02c    +.02c
<= 1.75        +.01c    +.01c             +.01c    +.02c    +.02c
<= 2.0         +.01c    +.01c             +.01c    +.02c    +.02c
<= 2.25        +.01c    +.01c             +.01c    +.02c    +.01c
<= 2.5         +.01c                      +.01c    +.02c    +.01c
<= 3.0                                             +.01c    +.01c
<= 3.5                                             +.01c
<= 4.0                  -.01c
<= 4.5                  -.01c
<= 5.0                  -.02c
<= 5.5                  -.02c
<= 6.0                  -.02c                               -.01c
<= 6.5                   N/A                                -.01c
<= 7.0                   N/A                                -.01c
<= 7.5                   N/A     -.01c                      -.01c
<= 8.0                   N/A     -.01c                      -.02c
<= 8.5                   N/A     -.01c                      -.02c
<= 9.0                   N/A     -.02c                      -.02c
<= 9.5                   N/A     -.02c                      -.02c
<= 10.0        -.01c     N/A     -.02c    -0.1c    -.01c    -.03c
<= 10.5        -.01c     N/A     -.03c    -0.1c    -.01c    -.03c
<= 11.0        -.01c     N/A     -.03c    -0.1c    -.01c    -.03c
<= 12.0        -.01c     N/A     -.03c    -0.1c    -.01c    -.03c
<= 13.0        -.01c     N/A      N/A     -0.1c    -.01c     N/A
<= 14.0        -.01c     N/A      N/A     -0.1c    -.01c     N/A
<= 15.0        -.02c     N/A      N/A     -0.2c    -.02c     N/A
<= 16.0        -.02c     N/A      N/A     -0.2c    -.02c     N/A
<= 17.0        -.02c     N/A      N/A     -0.2c    -.02c     N/A
<= 18.0        -.02c     N/A      N/A     -0.2c    -.02c     N/A
<= 19.0        -.02c     N/A      N/A     -0.2c    -.02c     N/A
<= 20.0        -.02c     N/A      N/A     -0.2c    -.02c     N/A

Ship Class Definitions

Armor's effect on a ship class is defined in the ship class. The following parameters control this behavior:

<ShipClass unid="..."
    maxSpeed=       "20"
    ...
    stdArmor=       "3000"
    maxArmor=       "6000"
    maxArmorSpeed=  "18"
    minArmorSpeed=  "22"
    />
...

The above is a partial definition for the Sapphire class. maxArmor= is the original parameter which controls the maximum mass of a single segment compatible with the ship. stdArmor= is a new parameter which defines the "standard" mass of a single segment. At the standard mass, the ship will travel at its defined maximum speed (set to 20 above).

maxArmorSpeed defines the ship's speed when the maximum armor mass is installed. For example, if we install 6 ton segments on a Sapphire its speed will be reduced to 18.

To calculate the ship's speed at any armor mass above stdArmor we use the following algorithm:

  1. For a given armor segment weighing mass (in kilograms):
  2. Compute massRange = maxArmor - stdArmor = 3000 (for the Sapphire)
  3. Compute speedRange = maxSpeed - maxArmorSpeed = 2
  4. Compute massPerSpeed = floor(massRange / (speedRange + 1)) = 1000
  5. Compute massInc = mass - stdArmor
  6. Compute speedDec = min(speedRange, floor(massInc / massPerSpeed))
  7. Subtract speedDec from maxSpeed

minArmorSpeed define's the ship's speed when installed armor is lighter than stdArmor. To calculate the ship's speed at any armor mass below stdArmor we use the following (similar) algorithm:

  1. For a given armor segment weighing mass (in kilograms):
  2. Compute massRange = floor(stdArmor / 2) = 1500 (for the Sapphire)
  3. Compute speedRange = minArmorSpeed - maxSpeed = 2
  4. Compute massPerSpeed = floor(massRange / speedRange) = 750
  5. Compute massDec = stdArmor - mass
  6. Compute speedInc = min(speedRanage, floor(massDec / massPerSpeed))
  7. Add speedInc to maxSpeed

In both cases, if not all armor segments are the same mass, we use the average mass of all segments.

Default Definitions

If a ship class specifies maxArmor= but none of the other parameters, then we assume the class is not affected by armor mass. This will generally be the case for all older player ships.

Ships over 1,000 tons of mass will also not be affected. Their armor is assumed to be only a fraction of their total mass.

For other ships, we will generate default values.