Back to Index Page generated: Nov 12, 2024, 11:02:04 PM

Expansion Laser Cannons

Content

Warnings

  1. No version in dependency reference to oolite.oxp.redspear.new_lasers:null
  2. Optional Expansions mismatch between OXP Manifest and Expansion Manager at character position 0064 (DIGIT ZERO vs LATIN SMALL LETTER N)

Manifest

from Expansion Manager's OXP list from Expansion Manifest
Description Laser Cannons are developed from Mining Lasers. Consume more energy and cause extreme heat, but a single shot deliver similar damage than a series of Beam Lasers. Fit into large ships only except Mini Cannons, usually short ranged and must aim carefully. Pilots tend to eject from cannon hits when energy is low. Laser Cannons are developed from Mining Lasers. Consume more energy and cause extreme heat, but a single shot deliver similar damage than a series of Beam Lasers. Fit into large ships only except Mini Cannons, usually short ranged and must aim carefully. Pilots tend to eject from cannon hits when energy is low.
Identifier oolite.oxp.Norby.LaserCannons oolite.oxp.Norby.LaserCannons
Title Laser Cannons Laser Cannons
Category Weapons Weapons
Author Norby Norby
Version 1.13.1 1.13.1
Tags
Required Oolite Version
Maximum Oolite Version
Required Expansions
Optional Expansions
  • oolite.oxp.redspear.new_lasers:0
  • oolite.oxp.redspear.new_lasers:
  • Conflict Expansions
    Information URL http://wiki.alioth.net/index.php/LaserCannons n/a
    Download URL https://wiki.alioth.net/img_auth.php/9/9f/LaserCannons_1.13.1.oxz n/a
    License CC BY-NC-SA 4 CC BY-NC-SA 4
    File Size n/a
    Upload date 1693392820

    Documentation

    Also read http://wiki.alioth.net/index.php/Laser%20Cannons

    LaserCannons_readme.txt

    Laser Cannons
    
    Laser Cannons are developed from mining lasers. Consume very much energy and cause extreme heat, but a single shot deliver similar damage than a series of beam lasers. 
    
    Pilots tend to eject if facing against a cannon when a single energy bank is left only to prevent a fatal next hit.
    
    Usually short ranged and has low fire rates (0.5 - 3 seconds/shot) so must aim carefully.
    
    Cannons usually fit into ships over 130t only like a Cobra Mark III, except:
    * Mini Cannon and Mini Plasma Ray are designed for escorts over 30t,
    * Plasma Web and Vulcan Cannon need a Python (>250t),
    * Twin Military and Twin Artillery Cannons need an Anaconda (>400t),
    * Battle and Plasma Artillery Cannons need a ship over 800t like Carriers, Kirin, Maelstrom or Serpent Class Cruiser,
    * Behemoth Cannons need a ship over 8000t like Behemoth or BigShips,
    * Base Cannons need a ship over 200000t like Andromeda or Liners.
    
    Always check the distance of your target! Don't waste a shot when over the range of your cannon!
    
    All cannons can break apart asteroids as Mining lasers.
    
    Name                      	Range	Dmg/s	Dmg/Ht	DmgToOv	Energy	Damage	Delay	Heat	Tech	Cost	Color
    
    Kruger CRM38 Mining Cannon	5	33	2	700	10	100	3	50	5	500	Light Blue
    Ingram 3838C8 Mini Cannon	5	60	3 (S)	960	10	60	1	20	6	1000	Light Red
    Hassoni C38 Dual Cannon 	5	120	3	780	10	60	0.5	20	7	2000	Light Red
    
    Lance & Ferman Military Cannon	10	100	3 (S)	900	7	75	0.75	25	8 	8000	Light Magenta
    LF38 Twin Military Cannon	10	200	1.5 (S)	600	14	150	0.75	100	8	10000	White
    Ergon A38 Blunderbuss Cannon	5	133	3	1100	5	100	0.75	33	10	12000	Light Green
    Volt V38 Vulcan Cannon  	15	120	6 (S)	1860	5	60	0.5	10	12	24000	Light Cyan
    
    JK-38 Mini Plasma Ray   	2	80 *	4	1240	0	40	0.5	10	12	25000	Orange
    ColtMaster CM-38 Plasma Web	1	80 **	5	1760	-20	80	1	16	12	30000	Light Orange
    JK-V38 Plasma Ray       	6	80 *	4 (S)	1240	0	40	0.5	10	12	40000	Orange
    
    Kruger Artillery Cannon 	20	67	5 (S)	1950	5	50	0.75	10	12	50000	Blue
    Kruger Twin Artillery Cannon	20	133	5 (S)	1500	10	100	0.75	20	12	100000	Light Blue
    Kruger Battle Artillery Cannon	20	133	5	1600	20	200	1.5	40	12	110000	White
    JK Plasma Artillery Cannon	8	80	8	4000	0	40	0.5	5	12	120000	Orange
    
    Ergon Behemoth Cannon   	5	200	5	1500	15	300	1.5	60	12	150000	Light Green
    ColtMaster Behemoth Plasma Web	4	160 **	8	2400	-20	80	0.5	10	12	160000	Light Orange
    Lance & Ferman Base Cannon	10	300	5	1500	15	300	1	60	12	200000	Light Magenta
    Kruger Base Artillery Cannon	20	300	6	1500	15	150	0.5	25	12	220000	Light Blue
    
    * Plasma weapons has some chance to make critical damage which force the pilot to eject.
    ** Plasma Web has 4 times more chance than Plasma Ray to make critical damage.
    (S) Could heat up slower with Separated Lasers OXP. http://wiki.alioth.net/index.php/Separated_Lasers
    
    Originally discussed in the New lasers topic: http://aegidian.org/bb/viewtopic.php?f=4&t=16931&start=15#p238374
    There is another comparsion table of New lasers also: http://wiki.alioth.net/index.php/New_lasers
    
    
    === Small Cannons ===
    
    Kruger CRM38 Mining Cannon
    
    The cheapest laser cannon ever made. Ideal for mineral extraction with single shots from point-blank range (5km) due to deliver double damage than the common Mining Laser. Too slow to use in combat and not so cooled for this cost.
    
    
    Ingram 3838C8 Mini Cannon
    
    Short range (5km) laser cannon both for mining and defence. Perform similarly with a Beam Laser but make less heat and can mine asteroids also. Due to the mini size fit into small ships also (escorts over 30t).
    
    
    Hassoni C38 Dual Cannon
    
    Two Mini Cannons in alternation mode result double firing rate, as fast as a Pulse Laser but hit 4x harder. The range is short (5km), need a lot of energy and the heat is going up fast but perform well in dogfight due to the large damage - can do the double than a Beam Laser in each seconds.
    
    
    === Military Cannons ===
    
    Lance & Ferman Military Cannon
    
    You can make your career as a famous bounty hunter with this weapon - one shot clear more than a full energy bank! Provide longer range (10km) and use less energy than a Mini Cannon but heat up faster than the more costly cannons. Can mine asteroids in short time.
    
    
    LF38 Twin Military Cannon
    
    Strong laser cannon in damage as predictable from two Military Cannons linked to fire together. Aim carefully and run when a white beam incoming. Provide easy mining from large asteroids but the size of the heatsink is reduced in this type so overheats after a few shots. Need at least an Anaconda (>400t mass) to hold it.
    
    
    Ergon A38 Blunderbuss Cannon
    
    Powerful laser contain quad Mining Cannons for higher fire rate. Short ranged (5km) but as fast and stronger than a Military Cannon, moreover use less energy to get an exceptional combat performance. Better in dogfight than the well known Military Laser.
    
    
    === Special Cannons ===
    
    Volt V38 Vulcan Cannon
    
    Fearsome weapon, a longer variant of the Dual Cannon to get high range (15km) and fire rate in cannons, although a shot do much less damage than a Military Cannon. Energy saver and produce one of the best damage/heat in the Ooniverse but the huge cooling system fit into Pythons (>250t) only.
    
    
    JK-38 Mini Plasma Ray
    
    Hot plasma is able to pierce through the whole hull, sometimes cause critical damages either in life support, ship controls or reactor coolers which forcing the pilot to eject, leaving a good loot or a bomb in the derelict ship. Use next to the target: range is 2km only. Works without energy because recycle plasma smoke from engines but heat up fast. Good in mining also.
    
    
    ColtMaster CM-38 Plasma Web
    
    Plasma in web form has double charge capacity so damage is doubled but recharge time also and range is halved (1km). Regenerates some energy(!) at each shot, in side mount usable as an emergency energy generator. Well cooled but only a Python can hold it (>250t). Do critical damages much more often than a Plasma Ray, but against you too! Don't be surprised if an orange beam auto-eject you, stay far for sure.
    
    
    JK-V38 Plasma Ray
    
    A crazy scientist once filled plasma into a Vulcan Cannon and successfully earned 6km range in this way. Cobra Mark III owners aready wanted a single barrel version of Vulcan to fit into his ships and this discovery was a good reason to release a weaker, humanitarian version of Vulcan which fire plasma shots. Cause critical damages as often as a Mini Plasma Ray.
    
    
    === Artillery Cannons ===
    
    Kruger Artillery Cannon
    
    As the name predict Kruger company aim the longest range regardless of compromises in heat, energy and cost. The winner of this competition is quad Mining Cannons with much longer barrel in alternating mode to increase fire rate to combat level. Damage is smaller due to must focus in long range. Well cooled, has 20km range and enough fearsome to the target use his Escape Pod when his energy is low.
    
    
    Kruger Twin Artillery Cannon
    
    Anaconda owners wanted to benefit from the larger capacity of his oversized ships so bought two Artillery Cannons to fire at once - the Twin Artillery Cannon was born. New pilots asks why this weapon is exist at all due to similar lasers are much cheaper: the answer is only cannons are enough fearsome to pilots ejects often.
    
    
    Kruger Battle Artillery Cannon
    
    Since much larger ships are in production than Anaconda, for example Carriers, Kirin, Maelstrom or Serpent Class Cruiser, some guys in these was enough brave to put more coolers around a Twin Artillery Cannon to 4 barrels be reconfigurable to fire together. Shot down almost anything within seconds, even a Thargoid Warship need four hits only (5 seconds). Fit into ships with at least 800t mass.
    
    
    JK Plasma Artillery Cannon
    
    Thanks to the long artillery barrels the range of this plasma cannon is extended to 8km. Does not need energy and cause critical damages as often as a Plasma Ray but produce much less heat so can fire continually much longer. Need a ship with at least 800t mass like Carriers, Kirin, Maelstrom or Serpent Class Cruiser.
    
    
    === Big Cannons ===
    
    Ergon Behemoth Cannon
    
    The Navy is ordered an improved Blunderbuss with 50% more barrels to get enough firepower to shot down Thargoid Warships with two shots. Need a ship over 8.000t like Behemoth or BigShips. Range is 5km only, but fire two times faster than a Battle Artillery Cannon so much more effective in dogfight.
    
    
    ColtMaster Behemoth Plasma Web
    
    This cannon load hot plasma in web form into twin artillery barrels to get longer range (4km), lower heat and double fire rate than a Plasma Web, which mean double energy regeneration in each seconds also. The best weapon to kick out pilots from any ships in Escape Pods and also better in caused damage/seconds than any other cannons below behemoths. Need a ship over 8.000t (Behemoth or BigShips).
    
    
    Lance & Ferman Base Cannon
    
    Need a station-sized ship over 200.000t like Andromeda or Liners, has the same range than Military Cannons (10km) and the more barrel configured to fire faster than Behemoth Cannon which give the highest existing damage/seconds. Combined with a good cooling system and high damage to shot down Thargoid Warships with 3 shots, the result is the most dangerous cannon. Awesome.
    
    
    Kruger Base Artillery Cannon
    
    Bundled 6 Artillery Cannons together to get the same high range (20km) but much more damage and fire rate. Improved further to require less energy and produce a bit less heat. A Thargoid Warship need 5 hits but definitely the best long range cannon. The cost is the exceptional size which need a ship over 200.000t like Andromeda or Liners.
    
    
    
    Instructions:
    
    Do not unzip the .oxz file, just move into the AddOns folder of your Oolite installation.
    
    License:
    
    This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike License version 4.0.
    If you are re-using any piece of this OXP, please let me know by sending an e-mail to norbylite@gmail.com.
    
    Sounds:
    
    The sounds from BGS Soundset by P.A. Groove:
     - "cannonlaser.ogg" is renamed a "bgs_PAG_laser.ogg".
     - "cannonlaser_esc_hits.ogg" is renamed a "bgs_PAG_laserhits.ogg".
     - "cannonlaser_esc_hits_pl.ogg"; is renamed a "bgs_PAG_hit.ogg".
    Credits to Pagroove!
    
    
    Changelog:
     2019.04.06. v1.13 Adds sound effect for cannons hits. Draft release (rustem).
     2017.10.31. v1.12 Typo fix in the damage of Military Cannon, thanks to Damocles Edge.
     2016.03.06. v1.11 Twin Artillery Cannon heat is halved so dmg/heat is increased from 2.5 to 5.
                       Plasma Ray and Web has much less chance against larger ships to force an eject.
                       Far Arm Titan got a Kruger Battle Artillery Cannon.
     2016.01.25. v1.9  Halved damage, delay, energy and heat of Military and Battle Cannons.
                       Doubled heat of Twin Artillery, Behemoth and Base Cannons.
                       Damages of Behemoth and Base Cannons are reduced a bit.
                       Many BigShips are equipped with laser cannons (22 ship types).
                       Plasma weapons report when you placed an almost critical hit.
                       Plasma Vulcan Cannon renamed to Plasma Ray.
                       Support made for Separated Lasers OXP.
     2015.07.03. v1.8  Militay Cannons do 25% less damage and has lower techlevel.
                       Mini Plasma Cannon renamed to Mini Plasma Ray.
                       Mini Cannon and Mini Plasma Ray need a ship over 30t.
                       NPC Mambas and Morays with Mini Cannons added, Geckos removed.
     2015.06.27. v1.7  Behemoth cannons for ships over 8000t like Behemoth or BigShips.
                       Base cannons for ships over 200000t like Andromeda or Liners.
                       Plasma Artillery Cannon added for ships over 800t like Carriers.
                       Battle Artillery Cannon heat increased, cost reduced.
                       Plasma weapons are improved: more damage, less energy and heat.
                       Plasma Ray is renamed to Mini Plasma Cannon and fit into escort ships.
                       Ranges of Plasma Cannons are improved, Plasma Web is halved.
                       Dual Cannon color matched to Mini Cannon (light red).
     2015.06.24. v1.6  Plasma Vulcan, Artillery Cannons and Battle Cannon added.
                       Plasma Web is cheaper, fit into a Python and more likely force to eject.
                       Adjusted the heat of Plasma Ray and Twin Military Cannon.
     2015.06.22. v1.5  Plasma Ray and Plasma Web added.
                       Enemy ejects when a cannon decrease his energy into the last bank.
                       NPCs with cannons added.
     2015.06.20. v1.4  Mini Cannon fit into small ships.
                       Lower prices for Twin Military Cannon and Blunderbuss.
                       Max. required techlevel is 12, now Zaonce introduce the full list.
     2015.06.18. v1.3  Mining cannon toned down, Blunderbuss toned up.
     2015.06.18. v1.2  Refined stats for better fire rates but smaller damages.
                       Name and description changes to follow data changes.
     2015.06.17. v1.1  Blunderbuss and Vulcan added.
                       Reduced energy usage of Military Cannons to normal level.
     2015.06.15. v1.0  First release.
    

    Equipment

    Name Visible Cost [deci-credits] Tech-Level
    Kruger CRM38 Mining Cannon yes 5000 5+
    JK-V38 Plasma Ray yes 400000 12+
    Kruger Artillery Cannon yes 500000 12+
    Kruger Twin Artillery Cannon yes 1000000 12+
    Kruger Battle Artillery Cannon yes 1100000 12+
    JK Plasma Artillery Cannon yes 1200000 12+
    Ergon Behemoth Cannon yes 1500000 12+
    ColtMaster Behemoth Plasma Web yes 1600000 12+
    Lance & Ferman Base Cannon yes 2000000 12+
    Kruger Base Artillery Cannon yes 2200000 12+
    Ingram 3838C8 Mini Cannon yes 10000 6+
    Hassoni C38 Dual Cannon yes 20000 7+
    Lance & Ferman Military Cannon yes 80000 8+
    LF38 Twin Military Cannon yes 100000 8+
    Ergon A38 Blunderbuss Cannon yes 120000 10+
    Volt V38 Vulcan Cannon yes 240000 12+
    JK-38 Mini Plasma Ray yes 250000 12+
    ColtMaster CM-38 Plasma Web yes 300000 12+

    Ships

    Name
    anaconda-lasercannon
    anaconda-lasercannon2
    anaconda-pirate-lasercannon
    anaconda-pirate-lasercannon2
    asp-lasercannon
    asp-lasercannon2
    boa-lasercannon
    boa-mk2-lasercannon
    boa-mk2-pirate-lasercannon
    boa-mk2-pirate-lasercannon2
    boa-pirate-lasercannon
    boa-pirate-lasercannon2
    cobra3-alternate-lasercannon
    cobra3-pirate-lasercannon
    cobra3-pirate-lasercannon2
    cobra3-trader-lasercannon
    cobramk1-alt-lasercannon
    ferdelance-lasercannon
    ferdelance-lasercannon2
    krait-lasercannon
    krait-lasercannon2
    mamba-escort-lasercannon
    mamba-escort-lasercannon2
    mamba-lasercannon
    mamba-lasercannon2
    moray-lasercannon
    morayMED-lasercannon
    python-blackdog-lasercannon
    python-blackdog-lasercannon2
    python-lasercannon
    python-trader-lasercannon
    python-trader-lasercannon2
    Laser Cannon Ship Prototype
    viper-lasercannon
    viper-pursuit-lasercannon
    viper-pursuit-lasercannon2

    Models

    This expansion declares no models. This may be related to warnings.

    Scripts

    Path
    Scripts/lasercannons-conditions.js
    "use strict";
    this.name	= "lasercannons-conditions";
    this.author	= "Norby";
    this.copyright   = "2013 Norbert Nagy";
    this.licence     = "CC BY-NC-SA 4.0";
    this.description = "This equipment is usable only for ships over 130t like the Cobra Mark III.";
    
    this.allowAwardEquipment = function(equipment, ship, context)
    {
    	// OXP hook to allow stations to forbid specific equipment
    	if (context == "purchase" && player.ship.dockedStation && player.ship.dockedStation.scriptInfo["oolite-barred-equipment"])
    	{
    		if (player.ship.dockedStation.scriptInfo["oolite-barred-equipment"].indexOf(equipment) != -1)
    		{
    			return false;
    		}
    	}
    
    	// OXP hook to allow ships to forbid specific "available to all" equipment
    	if (ship.scriptInfo && ship.scriptInfo["oolite-barred-equipment"] && ship.scriptInfo["oolite-barred-equipment"].indexOf(equipment) != -1)
    	{
    		return false;
    	}
    
    //	player.consoleMessage( eqKey+" "+ship+" "+context );//debug
    
    	//Base weapons need an Andromeda or Liners
    	if( ship.mass < 200000000 &&
    		(  equipment == "EQ_WEAPON_CANNON_17"
    		|| equipment == "EQ_WEAPON_CANNON_18" ) ) return false;
    
    	//Behemoth weapons need a Behemoth or a ship from BigShips
    	if( ship.mass < 8000000 &&
    		(  equipment == "EQ_WEAPON_CANNON_15"
    		|| equipment == "EQ_WEAPON_CANNON_16" ) ) return false;
    
    	//Battle Cannon and Plasma Artillery need a Carrier or similar huge ship
    	if( ship.mass < 800000 && 
    		(  equipment == "EQ_WEAPON_CANNON_13"
    		|| equipment == "EQ_WEAPON_CANNON_14" ) ) return false;
    
    	//Twin Military Cannon and Twin Artillery need an Anaconda
    	if( ship.mass < 400000 &&
    		(  equipment == "EQ_WEAPON_CANNON_5"
    		|| equipment == "EQ_WEAPON_CANNON_12" ) ) return false;
    
    	//Vulcan Cannon and Plasma Web need as large ship as a Python
    	if( ship.mass < 250000 &&
    		(  equipment == "EQ_WEAPON_CANNON_7"
    		|| equipment == "EQ_WEAPON_CANNON_9" ) ) return false;
    
    	//Mini Cannon and Mini Plasma Ray fit into escort ships from 30t
    	if( ship.mass > 30000 &&
    		(  equipment == "EQ_WEAPON_CANNON_2"
    		|| equipment == "EQ_WEAPON_CANNON_8" ) ) return true;
    
    	//Other cannons for large ships only like Cobra Mark III
    	if( ship.mass < 130000 ) return false;
    
    	return true;
    }
    
    Scripts/lasercannons.js
    "use strict";
    this.name	= "lasercannons";
    this.author	= "Norby";
    this.copyright	= "2015 Norby";
    this.description= "Combat-capable Mining lasers";
    this.licence	= "CC BY-NC-SA 4.0";
    
    // adds soundsource by rustem
    
    //customizable properties
    this.$CannonHitVolume = 0.3; //loudness of cannon hit sounds, adjust between 0 and 1
    this.$PlasmaHitVolume = 0.6; //loudness of plasma hit sounds, adjust between 0 and 1
    
    //worldscript events
    this.startUp = function() {
    	this.$Towbar = worldScripts.lasercannons;
    
    	// initialize sound effects : hits on the player and critical hits has more volume
    
    	this.$Sound = new SoundSource;	//soundsource of unsuccessfully cannon hit on the player
    	this.$Sound.sound = "cannonlaser_1.ogg";	
    
    	this.$Sound0 = new SoundSource;	//soundsource of shield cannon hit on the player
    	this.$Sound0.sound = "cannonlaser_1.ogg";
    	
    	this.$Sound1 = new SoundSource;	//soundsource of partial and far cannon hit on the player
    	this.$Sound1.sound = "cannonlaser_1.ogg";	
    
    	this.$Sound2 = new SoundSource;	//soundsource of cannon hit on player's target
    	this.$Sound2.sound = "cannonlaser_2.ogg";	
    	
    	//this.$Sound3 = new SoundSource;	//additional soundsource of critical cannon hit on the player
    	//this.$Sound3.sound = "cannonlaser_esc_hits.ogg";
    
    	this.$Sound4 = new SoundSource;	//additional soundsource of critical cannon hit on player's target
    	this.$Sound4.sound = "cannonlaser_1.ogg";
    
    	//this.$Sound5 = new SoundSource;	//additional soundsource of cannon hit on the player, auto eject (not used, for testing)
    	//this.$Sound5.sound = "cannonlaser_esc_hits_pl.ogg";
    
    	this.$plasmaSound = new SoundSource;	//soundsource of unsuccessfully plasma hit on the player
    	this.$plasmaSound.sound = "cannonlaser_plasma.ogg";	
    
    	this.$plasmaSound0 = new SoundSource;	//soundsource of shield plasma hit on the player
    	this.$plasmaSound0.sound = "cannonlaser_plasma.ogg";
    	
    	this.$plasmaSound1 = new SoundSource;	//soundsource of partial and far plasma hit on the player
    	this.$plasmaSound1.sound = "cannonlaser_plasma.ogg";
    
    	this.$plasmaSound2 = new SoundSource;	//soundsource of plasma hit on player's target
    	this.$plasmaSound2.sound = "cannonlaser_plasma.ogg";
    
    	this.$plasmaSound4 = new SoundSource;	//additional soundsource of critical plasma hit on player's target
    	this.$plasmaSound4.sound = "cannonlaser_esc_hits.ogg";
    	
    	if( !worldScripts["BGS"] & !worldScripts["BGS-M"] ) {
    		this.$CannonHitVolume *= 0.6;
    		this.$PlasmaHitVolume *= 0.6;
    	}
    
    	this.$Sound.loop = false;
    	this.$Sound.repeatCount = 1;
    	this.$Sound.volume = 0.5 * this.$CannonHitVolume;
    	this.$Sound0.loop = false;
    	this.$Sound0.repeatCount = 1;
    	this.$Sound0.volume = 0.6 * this.$CannonHitVolume;
    	this.$Sound1.loop = false;
    	this.$Sound1.repeatCount = 1;
    	this.$Sound1.volume = 0.7 * this.$CannonHitVolume;		
    	this.$Sound2.loop = false;
    	this.$Sound2.repeatCount = 1;
    	this.$Sound2.volume = 0.5 * this.$CannonHitVolume;
    	this.$Sound4.loop = false;
    	this.$Sound4.repeatCount = 1;
    	this.$Sound4.volume = 0.9 * this.$CannonHitVolume;
    	//this.$Sound3.loop = false;
    	//this.$Sound3.repeatCount = 1;
    	//this.$Sound3.volume = 0.7 * this.$CannonHitVolume;	
    	//this.$Sound5.loop = false;
    	//this.$Sound5.repeatCount = 1;
    	//this.$Sound5.volume = 0.7 * this.$CannonHitVolume;
    
    	this.$plasmaSound.loop = false;
    	this.$plasmaSound.repeatCount = 1;
    	this.$plasmaSound.volume = 0.5 * this.$PlasmaHitVolume;
    	this.$plasmaSound0.loop = false;
    	this.$plasmaSound0.repeatCount = 1;
    	this.$plasmaSound0.volume = 0.6 * this.$PlasmaHitVolume;
    	this.$plasmaSound1.loop = false;
    	this.$plasmaSound1.repeatCount = 1;
    	this.$plasmaSound1.volume = 0.7 * this.$PlasmaHitVolume;	
    	this.$plasmaSound2.loop = false;
    	this.$plasmaSound2.repeatCount = 1;
    	this.$plasmaSound2.volume = 0.5 * this.$PlasmaHitVolume;
    	this.$plasmaSound4.loop = false;
    	this.$plasmaSound4.repeatCount = 1;
    	this.$plasmaSound4.volume = 0.9 * this.$PlasmaHitVolume;				
    }
    
    this.shipAttackedOther = function(other) { //player hits other
    	if( !other || !other.isValid || other.isPlayer || !player.ship || !player.ship.isValid )
    		return; //exit if the target is died or player (for sure)
    	var c = player.ship.currentWeapon, cw = "";
    	if( c ) cw = c.equipmentKey;
    
    	var cwt = this.$getCannonType( c ); //_isCannonOrPlasma
    
    	if( cwt > 1 && !other.isDerelict && !other.isThargoid ) { //cannon or plasma hit
    		if( cwt === 2 ) {
    			this.$plasmaSound2.play()
    		} else this.$Sound2.play();
    		//the next cannon hit can destroy the target
    		var rnd = Math.random();
    		//eject when less than 64 energy left and hit by any cannon
    		if( other.energy < 64 && other.energy > 0 ||
    			( ( cw.indexOf("EQ_WEAPON_CANNON_8") > -1
    			        || cw.indexOf("EQ_WEAPON_CANNON_10") > -1
                                    || cw.indexOf("EQ_WEAPON_CANNON_14") > -1 )
    				//Mini Plasma Ray, Plasma Ray and Plasma Artillery critical hit <5% chance
    				&& ( other.energy < 40 || rnd < 0.05 * 30/other.collisionRadius ) ) ||
    			//eject when less than 80 energy left and hit by Plasma Web
    			( ( cw.indexOf("EQ_WEAPON_CANNON_9") > -1 || cw.indexOf("EQ_WEAPON_CANNON_16") > -1 )
    			//Plasma Web and Behemoth Plasma Web critical hit <20% chance
    				&& ( other.energy < 80 || rnd < 0.2 * 30/other.collisionRadius ) ) ) {
    
    			if( rnd < 0.5 ) other.awardEquipment("EQ_ESCAPE_POD"); //more Pod in Plasma era
    
    			//this.$Sound4.play();
    			if( cwt === 2 ) {
    				this.$plasmaSound4.play()	//plasma
    			} else this.$Sound4.play();		//or cannon hit
    
    			other.fireMissile();//last resort
    			if( other.equipmentStatus("EQ_ESCAPE_POD") === "EQUIPMENT_OK"
    				&& other.abandonShip()) {//eject only if has Escape Pod 
    				if( worldScripts["detectors"] ) {
    					var dn = other.script.$Detectors_Origname;//short name with version
    				} else {
    					var dn = other.displayName;
    					other.displayName = "Derelict " + other.displayName;
    				}
    				player.consoleMessage(dn+" ejected!");
    				if( other.script && !other.script.$AlreadyScored ) {
    					other.script.$AlreadyScored = true;
    					player.score++;
    				}
    			} else if( other.energy > 1 ) other.energy = 1; //critical hit without escape pod
    		} else if( rnd < 0.2 && ( cwt === 2 ) ) {
                            this.$plasmaSound2.play();
                            player.consoleMessage("Almost critical hit on "+other.name, 4.5);
                    }
    	}
    	if( other.isDerelict && !other.isThargoid ) { 
    		if( cwt === 2 ) {
    			this.$plasmaSound0.play()
    		} else if( cwt === 3 ) this.$Sound0.play(); //also may be sniper gun hit
    		player.consoleMessage("Derelict!", 10); //warn to stop fire if want to salvage it
    		if( player.ship.equipmentStatus("EQ_LASERREDUCTOR") == "EQUIPMENT_OK"
    			&& cw.indexOf("EQ_WEAPON_CANNON_") > -1 
    			&& other.energy < 200 && other.energy < other.maxEnergy
    			&& ( !this.$Towbar || ( this.$Towbar.$TowbarLaserReductorOn && other.script
    				&& other.script.$TowbarDerelictAttack <= this.$Towbar.$TowbarMaxReduct ) ) ) {
    			other.energy = Math.min(other.maxEnergy, 200); //reduce cannon power
    		}
    	}
    	this.$Bounty( other );
    }
    
    this.shipTakingDamage = function(amount, whom, type) {
    //	log(this.name, amount+" : "+whom+" - "+type); //debug //log(this.name, amount+" : "+whom.scanClass+" - "+whom.owner);	
    	if( !whom || !whom.isValid || whom.isPlayer || !player.ship || !player.ship.isValid 
    		|| whom.isMissile || whom.isDerelict ) return; //exit if the target is died or missile, player (for sure)
    	var c = whom.currentWeapon, cw = "";
    	if( c ) cw = c.equipmentKey;
    
    	var cwt = this.$getCannonType( c ); //_isCannonOrPlasma
    
    	if( cwt && type == "energy damage" ) { //sniper, plasma or cannon hit
    		log(this.name, amount+" : "+whom+" - "+type+" by "+cw); //debug
    		if( amount == 0 ) {
    			//this.$Sound0.play();
    			if( cwt === 2 ) {
    				this.$plasmaSound0.play()
    			} else if( cwt === 3 ) this.$Sound0.play();			
    			return //exit if shield hit only
    		}
    	} else return; //exit if is other hit or scrape damage
    
    	log(this.name, amount+" : "+whom+" - "+type+" by "+cw); //debug
    	
    	//this.$Sound1.play(); //cannon or plasma hit
    	if( cwt === 2 ) {
    		this.$plasmaSound1.play()
    	} else if( cwt === 3 ) this.$Sound1.play();
    
    	if( ( cw.indexOf("EQ_WEAPON_CANNON_8") > -1 || cw.indexOf("EQ_WEAPON_CANNON_10") > -1
                    || cw.indexOf("EQ_WEAPON_CANNON_14") > -1 )
    			//Mini Plasma Ray, Plasma Ray and Plasma Artillery critical hit <5% chance
    			&& ( player.ship.energy < 40 || Math.random() < 0.05 * 30/player.ship.collisionRadius )
    		|| ( cw.indexOf("EQ_WEAPON_CANNON_9") > -1 || cw.indexOf("EQ_WEAPON_CANNON_16") > -1 )
    			//Plasma Web and Behemoth Plasma Web critical hit <20% chance
    			&& ( player.ship.energy < 80 || Math.random() < 0.2 * 30/player.ship.collisionRadius ) ) {
    		if( player.ship.equipmentStatus("EQ_ESCAPE_POD") === "EQUIPMENT_OK"
    			&& player.ship.abandonShip()) {//eject only if has Escape Pod
    			//this.$Sound5.play();
    			player.consoleMessage("Critical plasma hit on your ship, auto eject!", 10);
    		} else {
    			//this.$Sound3.play();
    			player.consoleMessage("Critical plasma hit on your ship!", 10);
    			if( player.ship.energy > 1 ) player.ship.energy = 1; //critical hit without escape pod
    		}
    	} else if( cwt === 2 ) {
    		this.$plasmaSound1.play();
    		player.consoleMessage("Plasma hit on your ship, go away to avoid a critical hit!", 10);
    	} else if( cwt && player.ship.energy < 64 ) {
    		//this.$Sound3.play();
    		if( player.ship.equipmentStatus("EQ_ESCAPE_POD") === "EQUIPMENT_OK"
    			&& player.ship.abandonShip()) {//eject only if has Escape Pod 
    			//this.$Sound5.play();
    			player.consoleMessage("Cannon hit on your ship and energy is low, auto eject!", 10);
    		} else player.consoleMessage("Cannon hit on your ship and energy is low!", 10);
    	}
    }
    
    this.shipBeingAttackedUnsuccessfully = function(whom) {	
        var p = player.ship;	
    	if( !whom || !whom.isValid || !p || !p.isValid )
    		return; //exit if the target is died (for sure)
    //	log(this.name, whom); //debug	
    	var c = whom.currentWeapon, cw = "";
    	if( c ) cw = c.equipmentKey;
    	
    	var cwt = this.$getCannonType( c ); //_isCannonOrPlasma
    
    	if( cwt > 1 ) { //cannon or plasma hit
    		if( cwt === 2 ) {
    			this.$plasmaSound.play()
    		} else this.$Sound.play() //notify the player about the hit on his ship
    	}
    }
    
    //lasercannons functions
    
    this.$Bounty = function( ship ) {
    	if( ship.isDerelict && ship.bounty > 0 ) {
    		player.credits += ship.bounty;
    		player.consoleMessage("Bounty: "+formatCredits(ship.bounty, true, true));
    		player.consoleMessage("Total: "+formatCredits(player.credits, true, true));
    		if( ship.script ) ship.script.$TowbarBounty = ship.bounty;//save to Towbar award illegal cargo
    		ship.bounty = 0;
    		if( !this.$Towbar && Math.random() < 0.2 )
    			ship.explode(); //imitate a bomb added in Towbar
    	}
    }
    
    this.$getCannonType = function( weapon ) { //is cannon or plasma or sniper gun and sapper 
    	var eq;
    	if( weapon && weapon.equipmentKey ) eq = weapon.equipmentKey;
    	else eq = weapon; //the key is directly in the parameter
    	if( !eq || !eq.length ) return false;
    	if( eq.indexOf("EQ_WEAPON_CANNON_") > -1 ) {
    		if( eq.indexOf("_SNIPER_GUN") > -1 || eq.indexOf("_SAPPER") > -1 ) { //Sniper Gun, Sapper, Heavy Sniper Gun and Heavy Sapper
    			return 1
    		} else if( eq.indexOf("EQ_WEAPON_CANNON_8") > -1 || eq.indexOf("EQ_WEAPON_CANNON_10") > -1 || eq.indexOf("EQ_WEAPON_CANNON_14") > -1
    			//Mini Plasma Ray, Plasma Ray and Plasma Artillery
    			|| eq.indexOf("EQ_WEAPON_CANNON_9") > -1 || eq.indexOf("EQ_WEAPON_CANNON_16") > -1 ) {
    			//Plasma Web
    			return 2
    		} else return 3	//any cannons
    	}
    	return false;
    }
    
    /*/ not works : a change of laser sound based on the 'customsounds.plist'
    
    this.$currentWeapon = 0;
    
    // initialize sound effects : adds to this.startUp
    this.$direct_hit_sound = new SoundSource();
    this.$direct_hit_sound.loop = false;
    this.$direct_hit_sound.sound = "[player-direct-hit]";
    
    this.$laser_miss_sound = new SoundSource();
    this.$laser_miss_sound.loop = false;
    this.$laser_miss_sound.sound = "[player-laser-miss]";
    
    this.viewDirectionChanged = function(viewString) {
    	var p = player.ship;
    	var c = p.currentWeapon, cw = "";
    	var w = worldScripts.lasercannons;
    	if( c ) cw = c.equipmentKey;	
        if( cw.indexOf("EQ_WEAPON_CANNON_") > -1 ) { //any cannon
        	//"[player-direct-hit]" = w.$Sound1;
        	//"[player-laser-miss]" = w.$Sound0;
        	if( w.$currentWeapon !== 2 ) player.consoleMessage("Laser cannon", 5);
        	w.$currentWeapon = 2;
        } else if( cw.indexOf("EQ_WEAPON_NONE") > -1 ){ //none laser
        	if( w.$currentWeapon ) player.consoleMessage("No laser", 5); 
        	w.$currentWeapon = 0; 	
        } else { //usual laser
        	// basic laser sound
        	//"[player-direct-hit]" = w.$direct_hit_sound;
        	//"[player-laser-miss]" = w.$laser_miss_sound;
        	if( w.$currentWeapon !== 1 ) player.consoleMessage("Usual laser", 5);  
        	w.$currentWeapon = 1;  	
        }
    }
    //*/