Difference between revisions of "Cabal Common Library Doc OXPStrength"

From Elite Wiki
m (part IV)
m (part V)
Line 14: Line 14:
 
* Mass (v1.7.1)
 
* Mass (v1.7.1)
 
* MaxEnergy
 
* MaxEnergy
  +
* MaxPitch (v1.7.1)
  +
* MaxRoll (v1.7.1)
 
* MaxSpeed
 
* MaxSpeed
 
* MaxThrust
 
* MaxThrust
Line 21: Line 23:
 
* Subent laser
 
* Subent laser
 
* Turrets
 
* Turrets
 
   
 
== Functions ==
 
== Functions ==

Revision as of 22:41, 7 February 2013

Overview

This is the main class for the OXPStrength with its members and part of the Cabal_Common_Library.

It is a helper tool specially for mission OXPs to check the environment and helps to determine the players strength. The script is meant for OXP developers only.

The underlaying API calculates a checksum (coef) for entities. This checksum can be gathered by scripts for specific entities (Player and NPCs). Factors are:

  • Accuracy (v1.7.1)
  • Distance to the hotspots (MainStation,WP and lanes WP,WS,PS)
  • Equipment
  • Escorts / Defense ships
  • Laser
  • Mass (v1.7.1)
  • MaxEnergy
  • MaxPitch (v1.7.1)
  • MaxRoll (v1.7.1)
  • MaxSpeed
  • MaxThrust
  • Missiles
  • PrimaryRole
  • ShieldRechargeRates
  • Subent laser
  • Turrets

Functions

All profiled times are only for gathering infos for a fully equipped player ship.

checkPower()

worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkPower(entity,logging);
Profiler
Native 0.001295s
Extension 0.000488s
JS 0.000807s

Checks entities and returns the gathered coefficient. This is the main entry point for OXPs.

For NPCs the standard range is <200, but OXP entities can have a lot higher value based on their settings. Playerships are treated different and are getting higher values. A standard Cobra MkIII has a value of ~100 in the beginning and gets up to <500 if fully equipped with standard weaponry, missiles and other standard equipment. The Boa Class Cruiser has even if little bit more.

Parameters:

entity
Entity. If specified only this entity will be checked, otherwise all entities in the system (except the player).
Optional.
logging
Boolean. If true a verbose lits will be logged to Latest.log. This is useful while writing OXPs.
Optional.

Returns:

coef
Number. Calculated coefficient.
If entity was specified the value for this specific entity, otherwise the highest gathered coefficient in the system.


checkEQs()

worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkEQs(entity);
Profiler
Native 0.000423s
Extension 0.000032s
JS 0.000083s

Returns weighted value of installed equipment.

Paramerters:

entity
Entity.

Returns:

value
Number. Summed value for all installed equipment.
Every equipment adds based on tokens
  • 35 - naval, military, jammer, laser
  • 30 - energy, shield, boost, cloak
  • 25 - turret, missile, mine
  • 20 - hide, eeu, rack
  • 10 - ecm, target


checkMissiles()

worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkMissiles(entity);
Profiler
Native 0.000168s
Extension 0.000064s
JS 0.000124s

Returns weighted value of pylon mounted weapons.

Parameters:

entity
Entity.

Returns:

value
Number. Summed value for all mounted pylons.
Every pylon mounted missile or mine adds based on tokens
  • 5 - naval, boost, military, cascade
  • 4 - harpoon, intercept, nuke, law, frag, bomb
  • 3 - mine, stun, override, jammer, drone, guard, field
  • 2 - hard, ecm, rack, launcher, ams
  • 1 - otherwise


checkSpaceLane()

worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkSpaceLane(entity);
Profiler
Native 0.000550s
Extension 0.000260s
JS 0.000545s

Returns array with distances to the main station, witchpoint and lanes (witchpoint->planet, planet->sun, witchpoint->sun). In interstellar space or nova systems all distances will be zero.

Parameters:

entity
Entity.

Returns:

array
Array with the format [ID,distMS,distWP,distLWP,distLPS,distLWS].
ID is
  • -1 for interstellar space.
  • 0 for standard systems if at least one of the distances < 50000.
  • 1 for nova systems.
  • 2 for standard systems if none of the distances < 50000.


checkWeapons()

worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkWeapons(entity);
Profiler
Native 0.000176s
Extension 0.000067s
JS 0.000152s

Returns array with values for weapons in standard weapon slots (forward, aft, port, starboard).

Parameters:

entity
Entity.

Returns:

array
Array with the format [number of slots, sum, typestring]. typestring is concatenated string of sum (e.g. "5311").
sum is the sum of all weapons
  • 1 - Pulse Laser
  • 3 - Beam Laser
  • 4 - Mining Laser, Twin Plasma Cannon
  • 5 - Military Laser
  • 8 - Thargoid Laser


checkSubWeapons()

worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkSubWeapons(entity);
Profiler
Native 0.000180s
Extension 0.000077s
JS 0.000132s

Returns array with values for weapons in subEntites.

Parameters:

entity
Entity.

Returns:

array
Array with the format [Number of Turrets, Number of slots, sum, typestring]. typestring is concatenated string of sum, but exclusive turrets (e.g. "1111").


Properties

CCL_OXPStrength

The script can set a property to be used for strong entities.

worldScripts.Cabal_Common_OXPStrength.CCL_OXPStrength = 5;

Main purpose is to prevent the spawning by the populator. OXPs can use it in condition scripts. Default is 9.

Suggested classes:

  • 1 = coef < 100
  • 2 = coef < 200 - This is the default threshold for native Oolite NPCs if logging is used.
  • 3 = coef < 300
  • 4 = coef < 400
  • 5 = coef < 600
  • 6 = coef < 900
  • 7 = coef < 1000
  • 8 = coef < 3000
  • 9 = otherwise, default setting for .CCL_OXPStrength.


scriptInfo

ccl_missionShip

Missionships can also use a script_info key to indicate that this entity has to be handled with care by other scripts.

script_info = {ccl_missionShip = true;}