Armor.tbl

From FreeSpace Wiki
Revision as of 12:07, 13 December 2011 by MjnMixael (talk | contribs) (Revision fix)
Jump to: navigation, search
This feature requires SCP

Revision information.....

FSO Revision: 5707
Note: Please update the version when the page is updated. If your edit had nothing to do with new code entries then please do not edit the version


The armor table stores data on FS2's as-of-now-simplistic armor system. It lets you define different damage types per armor. The reason for defining different damage types per armor is that armor may be damaged more/less by certain types of weapons. For example, a fire-retardant suit may offer excellent protection against a flamethrower but virtually none against bullets.

It's important to note that the cumbersome +Calculation/+Value system used for defining calculations will, in the future, be deprecated in favor of a more efficient scripting system. However, the current system will be kept for backwards compatibility if any mods or campaigns choose to make use of the table.

Please note that the spelling armour.tbl is currently not supported.

General Format

  • Armor table consist of several individual armor entries
  • Each armor entry begins with #Armor Type and ends with #End

Table Options

$Name:

  • Defines the name of the used armor type. Same name must be used in the ships.tbl entry for armor to function.


$Damage Type:

  • Defines the name for the damage type that is used to define the armor type/damage type pairs. Same name must be used in the weapons.tbl entry for the armor to function.
  • For the armor to have any function calculations must be assigned to each of the used damage types.
  • Multiple calculation for each of the damage types are possible
  • Calculations are performed in the listed order


+Calculation:

  • Defines the used calculation type


+Value:

  • Defines the value used for the defined calculation.


+Shield Piercing Percentage:

FS2 Open, 3.6.12:
  • After the last calculation & value pair
  • Defines the percentage of damage the shield armor type is set to leak through.
  • Syntax: Float, value from 0 to 1

+Weapon Piercing Effect Start Limit:

FS2 Open, 3.6.12:
  • Defines the percentage of hull integrity at which weapon piercing effects are started
  • Syntax: Float, value from 0 to 100

+Weapon Piercing Type:

FS2 Open, 3.6.12:
  • Defines the piercing type to use
  • Syntax: String, options are "none, "default", and "retail".

$Flags:

FS2 Open, 3.6.12:
  • After the last damage type of this armor
  • Defines the flags - if any - affecting the armor
  • Syntax: ( String )
    • Allowed flags:
      • "ignore subsystem armor", if set for hull armor forces game to use hull armor against all damage to hull regardless of subsystem armor


Calculations

FS2 Open 3.6.10:
  • Additive
    • Adds the +Value: to the damage value
  • Multiplicative
    • Multiplies the damage value with +Value:
  • Exponential
    • Damage value is raised to the power '+Value:'
  • Exponential base
    • +Value: is raised to the power 'damage value'
  • Cutoff
    • If the current damage value is lower than the specified amount, the damage value is set to 0.
  • Reverse cutoff
    • If the current damage value is greater than the specified amount, the damage value is set to 0.
  • Instant cutoff
    • If the current damage value is less than the specified amount, the damage value is set to 0 and the calculation series is instantly ended (So no matter what you have afterwards, the weapon will do no damage)
  • Instant reverse cutoff
    • if the current damage value is greater than the specified amount, the damage value is set to 0 and the calculation series is instantly ended.

Example

armor.tbl

#Armor Type
$Name: Reflective
;;This armor is made up of some kind of reflective material,
;;that deflects 1/4 of the energy from laser weapons back into space.
;;However, it is somewhat more fragile than typical hull materials,
;;and takes 1/3 more damage from weapons that use physical projectiles.

$Damage Type: Laser
   +Calculation: Multiplicative
   +Value: 0.75

$Damage Type: Kinetic
   +Calculation: Multiplicative
   +Value: 1.33
#End


As you can see above, "Reflective" armor is dealt only 75% of the damage from laser weapons, but 133% of the damage from kinetic weapons. However, in order to activate the armor system, you must assign the armor type to the ships you want it to apply to, and damage types to the weapons you wish to use.

The Thoth fighter seems like a good choice for this armor. Its speed and maneuverability give it the ability to evade missiles, and many direct-fire weapons are energy based. So, to give it this armor, you would add "$Armor Type:" to ships.tbl, under the "Thoth" entry:

ships.tbl

$Hitpoints:             200
$Armor Type:            Reflective
$Flags:                 ( "player_ship" "fighter" "in tech database")


At this point, the Thoth will be equipped with Reflective armor. However, it will have no effect unlesss it is hit by a weapon with a "$Damage Type" that is defined in armor.tbl, under the "Reflective" armor entry. Otherwise, Freespace 2 would have no idea how to take into account the defined damage types.

So, in the interests of time, here's how you would assign the "Laser" damage type to the Subach HL-7, and the "Kinetic" damage type to the Rockeye.

Under the Subach entry, you would add "$Damage Type" like so:

weapons.tbl

$Damage:          15
$Damage Type:           Laser
$Armor Factor:          0.9


Under the Rockeye entry, you would add "$Damage Type" like this:

weapons.tbl

$Damage:          45
$Damage Type:           Kinetic
$Armor Factor:          0.1


Now, if you were to start FreeSpace 2 with these modifications, you would find that the Thoth would take 3/4 as much damage from the Subach HL-7, 1/3 more damage from the Rockeye, but normal damage from everything else. All other ships, not being equipped with any kind of armor, would also be dealt normal damage from all weapons, including the Rockeye and the Subach.