Difference between revisions of "NPC equipment damage OXP"

From Elite Wiki
(Page Created)
 
(Updating BB links)
 
(7 intermediate revisions by 2 users not shown)
Line 1: Line 1:
NPC Equipment Damage 0.2.1
+
Allows NPC equipment & cargo to get damaged in combat, just as happens to the player.
by [[User:Ngalo|Ngalo]]
 
  
Does what it says on the tin: allows NPC equipment to get damaged in combat, as much like the core player damage handling as I can manage.
+
== Overview ==
Also damages NPC cargo, because Oolite does both with the same code for the player.
+
Ngalo was famous for pushing equal rights for NPC's. Just as the player gets shields, so too should the NPC's... But here the player is disadvantaged. So Ngalo evened things up here too...
 +
 
 +
 
 +
== Newest Version ==
 +
Tsoj found a few bugs (damage probability calculation was way too low compared to what Oolite does for the player, and a typo made the OXP incompatible with N-Shields) that he fixed.
 +
 
 +
Here is the new version: [https://app.box.com/s/y7e38xnfsuoraochjpt76u72b4smzzaq NPC Equipment Damage OXP 0.3.0]. This includes the manifest fix by phkb.
 +
 
 +
== Note on code ==
 +
This oxp also damages NPC cargo, because Oolite does both with the same code for the player.  
  
 
OXP equipment which needs to be disabled by script when damaged can push a handler onto the worldScripts.NPC_Equipment_Damage.NPC_equipmentDamagedHandlers array.
 
OXP equipment which needs to be disabled by script when damaged can push a handler onto the worldScripts.NPC_Equipment_Damage.NPC_equipmentDamagedHandlers array.
  
 
Note that such handlers will be called as if they were in the damaged ship's script, not your worldScript.
 
Note that such handlers will be called as if they were in the damaged ship's script, not your worldScript.
A simple example handler from my NPC Energy Units OXP:
 
  
this.NPC_energy_equipmentDamaged = function(equipment)
+
 
 +
''A simple example handler from my NPC Energy Units OXP'':
 +
 
 +
<blockquote>this.NPC_energy_equipmentDamaged = function(equipment)
 +
 
 
{
 
{
 +
 
if (equipment == "EQ_NPC_NAVAL_ENERGY_UNIT") this.ship.energyRechargeRate /= worldScripts.NPC_Energy_Units.NEU_multiplier;
 
if (equipment == "EQ_NPC_NAVAL_ENERGY_UNIT") this.ship.energyRechargeRate /= worldScripts.NPC_Energy_Units.NEU_multiplier;
 +
 
if (equipment == "EQ_NPC_ENERGY_UNIT") this.ship.energyRechargeRate /= worldScripts.NPC_Energy_Units.EEU_multiplier;
 
if (equipment == "EQ_NPC_ENERGY_UNIT") this.ship.energyRechargeRate /= worldScripts.NPC_Energy_Units.EEU_multiplier;
}
 
  
License:
+
}</blockquote>
 +
 
 +
== License ==
 
You may use, adapt, distribute etc. this Oolite Expansion Pack as permitted by the Creative Commons Attribution-NonCommercial-ShareAlike License (CC-BY-NC-SA).
 
You may use, adapt, distribute etc. this Oolite Expansion Pack as permitted by the Creative Commons Attribution-NonCommercial-ShareAlike License (CC-BY-NC-SA).
  
Version history:
+
== Version history ==
0.2.1 Added a small fix which prevents time-wasting if the damaged ship is about to die anyway.
+
*0.3.0  Tsoj made the oxp fairer to players, and fixed compatibility with [[N-Shields]]
0.2 Made use of compatibility improvements in Ship Configuration OXP.
+
*0.2.3  Phkb made the oxp AppleMac compliant, fixing the manifest
Prevented the script from trying to damage equipment which is already damaged, or which can't be damaged at all.
+
*0.2.1 Added a small fix which prevents time-wasting if the damaged ship is about to die anyway.
 +
*0.2 Made use of compatibility improvements in Ship Configuration OXP.
 +
**Prevented the script from trying to damage equipment which is already damaged, or which can't be damaged at all.
 +
*0.1.1 Fixed 'quantity is not defined' bug in cargo damage code
 +
*0.1 Initial WIP release
 +
 
 +
== Download ==
 +
*[https://app.box.com/s/y7e38xnfsuoraochjpt76u72b4smzzaq NPC Equipment Damage OXP 0.3.0] - unzip and drop the .oxp in your AddOns folder.
 +
*also available from the in-game expansion manager
 +
 
 +
== Links ==
 +
*[https://bb.oolite.space/viewtopic.php?f=4&t=18139|BB Discussion]
 +
*Author: [[User:Ngalo|Ngalo]]
 +
*[[Cheating]] - this is an ''anti-cheating .oxp'', but one that helps the player...
 +
 
  
0.1.1 Fixed 'quantity is not defined' bug in cargo damage code
+
[[File:Tag-colour-blue.png]]{{OXPLevel|0}}
0.1 Initial WIP release
+
{{mechanics-OXP}}

Latest revision as of 02:12, 29 February 2024

Allows NPC equipment & cargo to get damaged in combat, just as happens to the player.

Overview

Ngalo was famous for pushing equal rights for NPC's. Just as the player gets shields, so too should the NPC's... But here the player is disadvantaged. So Ngalo evened things up here too...


Newest Version

Tsoj found a few bugs (damage probability calculation was way too low compared to what Oolite does for the player, and a typo made the OXP incompatible with N-Shields) that he fixed.

Here is the new version: NPC Equipment Damage OXP 0.3.0. This includes the manifest fix by phkb.

Note on code

This oxp also damages NPC cargo, because Oolite does both with the same code for the player.

OXP equipment which needs to be disabled by script when damaged can push a handler onto the worldScripts.NPC_Equipment_Damage.NPC_equipmentDamagedHandlers array.

Note that such handlers will be called as if they were in the damaged ship's script, not your worldScript.


A simple example handler from my NPC Energy Units OXP:

this.NPC_energy_equipmentDamaged = function(equipment)

{

if (equipment == "EQ_NPC_NAVAL_ENERGY_UNIT") this.ship.energyRechargeRate /= worldScripts.NPC_Energy_Units.NEU_multiplier;

if (equipment == "EQ_NPC_ENERGY_UNIT") this.ship.energyRechargeRate /= worldScripts.NPC_Energy_Units.EEU_multiplier;

}

License

You may use, adapt, distribute etc. this Oolite Expansion Pack as permitted by the Creative Commons Attribution-NonCommercial-ShareAlike License (CC-BY-NC-SA).

Version history

  • 0.3.0 Tsoj made the oxp fairer to players, and fixed compatibility with N-Shields
  • 0.2.3 Phkb made the oxp AppleMac compliant, fixing the manifest
  • 0.2.1 Added a small fix which prevents time-wasting if the damaged ship is about to die anyway.
  • 0.2 Made use of compatibility improvements in Ship Configuration OXP.
    • Prevented the script from trying to damage equipment which is already damaged, or which can't be damaged at all.
  • 0.1.1 Fixed 'quantity is not defined' bug in cargo damage code
  • 0.1 Initial WIP release

Download

Links


Tag-colour-blue.png

Levelindicator0.png
0-{{{2}}}