Difference between revisions of "Cabal Common Library Doc OXPStrength"

From Elite Wiki
m (part II)
m (part III)
Line 69: Line 69:
  
 
'''Returns:'''
 
'''Returns:'''
:;array:Array with the format [number of slots,sum,typestring]. typestring is concatenated string of sum (e.g. "5311").
+
:;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
 
::sum is the sum of all weapons
 
:::* 1 - Pulse Laser
 
:::* 1 - Pulse Laser
Line 76: Line 76:
 
:::* 5 - Military Laser
 
:::* 5 - Military Laser
 
:::* 8 - Thargoid Laser
 
:::* 8 - Thargoid Laser
 +
 +
 +
=== checkSubWeapons() ===
 +
{{CodeEx|codeex=worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkSubWeapons(entity); }}
 +
{{CodeExTime|native=0.000180|extension=0.000077|js=0.000132}}
 +
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").
 +
 +
* See [[#checkWeapons()|checkWeapons()]]
 +
 +
 +
=== checkMissiles() ===
 +
{{CodeEx|codeex=worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkMissiles(entity); }}
 +
{{CodeExTime|native=0.000168|extension=0.000064|js=0.000124}}
 +
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
  
  

Revision as of 13:42, 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
  • MaxSpeed
  • MaxThrust
  • Missiles
  • PrimaryRole
  • ShieldRechargeRates
  • Subent laser
  • Turrets


Functions

checkPower()

worldScripts.Cabal_Common_OXPStrength.checkOXPStrength.checkPower(entity,logging);

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

For NPCs the standard range is 0..192, 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 110 in the beginning and gets up to 307 if fully equipped with standard weaponry, missiles and other standard equipment. The Boa Class Cruiser even gets 314.

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.


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").


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


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;}