//-------------------------------------------------------------------------- // Targeting laser // //-------------------------------------------------------------------------- datablock EffectProfile(TR2TargetingLaserSwitchEffect) { effectname = "weapons/generic_switch"; minDistance = 2.5; maxDistance = 2.5; }; datablock EffectProfile(TR2TargetingLaserPaintEffect) { effectname = "weapons/targetinglaser_paint"; minDistance = 2.5; maxDistance = 2.5; }; datablock AudioProfile(TR2TargetingLaserSwitchSound) { filename = "fx/weapons/generic_switch.wav"; description = AudioClosest3d; preload = true; effect = TargetingLaserSwitchEffect; }; datablock AudioProfile(TR2TargetingLaserPaintSound) { filename = "fx/weapons/targetinglaser_paint.wav"; description = CloseLooping3d; preload = true; effect = TargetingLaserPaintEffect; }; //-------------------------------------- // Projectile //-------------------------------------- datablock TargetProjectileData(TR2BasicGoldTargeter) { directDamage = 0.0; hasDamageRadius = false; indirectDamage = 0.0; damageRadius = 0.0; velInheritFactor = 1.0; maxRifleRange = 1000; beamColor = "0.8 0.8 0.0"; startBeamWidth = 0.80; pulseBeamWidth = 0.55; beamFlareAngle = 3.0; minFlareSize = 0.0; maxFlareSize = 400.0; pulseSpeed = 6.0; pulseLength = 0.150; textureName[0] = "special/nonlingradient"; textureName[1] = "special/flare"; textureName[2] = "special/pulse"; textureName[3] = "special/expFlare"; beacon = true; }; datablock TargetProjectileData(TR2BasicSilverTargeter) { directDamage = 0.0; hasDamageRadius = false; indirectDamage = 0.0; damageRadius = 0.0; velInheritFactor = 1.0; maxRifleRange = 1000; beamColor = "0.56 0.56 0.56"; startBeamWidth = 0.80; pulseBeamWidth = 0.55; beamFlareAngle = 3.0; minFlareSize = 0.0; maxFlareSize = 400.0; pulseSpeed = 6.0; pulseLength = 0.150; textureName[0] = "special/nonlingradient"; textureName[1] = "special/flare"; textureName[2] = "special/pulse"; textureName[3] = "special/expFlare"; beacon = true; }; //-------------------------------------- // Rifle and item... //-------------------------------------- datablock ItemData(TR2GoldTargetingLaser) { className = Weapon; catagory = "Spawn Items"; shapeFile = "weapon_targeting.dts"; image = TR2GoldTargetingLaserImage; mass = 1; elasticity = 0.2; friction = 0.6; pickupRadius = 2; pickUpName = "a targeting laser rifle"; computeCRC = false; }; datablock ItemData(TR2SilverTargetingLaser) { className = Weapon; catagory = "Spawn Items"; shapeFile = "weapon_targeting.dts"; image = TR2SilverTargetingLaserImage; mass = 1; elasticity = 0.2; friction = 0.6; pickupRadius = 2; pickUpName = "a targeting laser rifle"; computeCRC = false; }; datablock ShapeBaseImageData(TR2GoldTargetingLaserImage) { className = WeaponImage; shapeFile = "weapon_targeting.dts"; item = TR2GoldTargetingLaser; offset = "0 0 0"; projectile = TR2BasicGoldTargeter; projectileType = TargetProjectile; deleteLastProjectile = true; usesEnergy = true; minEnergy = 1; stateName[0] = "Activate"; stateSequence[0] = "Activate"; stateSound[0] = TR2TargetingLaserSwitchSound; stateTimeoutValue[0] = 0.5; stateTransitionOnTimeout[0] = "ActivateReady"; stateName[1] = "ActivateReady"; stateTransitionOnAmmo[1] = "Ready"; stateTransitionOnNoAmmo[1] = "NoAmmo"; stateName[2] = "Ready"; stateTransitionOnNoAmmo[2] = "NoAmmo"; stateTransitionOnTriggerDown[2] = "Fire"; stateName[3] = "Fire"; stateEnergyDrain[3] = 0; stateFire[3] = true; stateAllowImageChange[3] = false; stateScript[3] = "onFire"; stateTransitionOnTriggerUp[3] = "Deconstruction"; stateTransitionOnNoAmmo[3] = "Deconstruction"; stateSound[3] = TR2TargetingLaserPaintSound; stateName[4] = "NoAmmo"; stateTransitionOnAmmo[4] = "Ready"; stateName[5] = "Deconstruction"; stateScript[5] = "deconstruct"; stateTransitionOnTimeout[5] = "Ready"; }; datablock ShapeBaseImageData(TR2SilverTargetingLaserImage) { className = WeaponImage; shapeFile = "weapon_targeting.dts"; item = TR2SilverTargetingLaser; offset = "0 0 0"; projectile = TR2BasicSilverTargeter; projectileType = TargetProjectile; deleteLastProjectile = true; usesEnergy = true; minEnergy = 1; stateName[0] = "Activate"; stateSequence[0] = "Activate"; stateSound[0] = TR2TargetingLaserSwitchSound; stateTimeoutValue[0] = 0.5; stateTransitionOnTimeout[0] = "ActivateReady"; stateName[1] = "ActivateReady"; stateTransitionOnAmmo[1] = "Ready"; stateTransitionOnNoAmmo[1] = "NoAmmo"; stateName[2] = "Ready"; stateTransitionOnNoAmmo[2] = "NoAmmo"; stateTransitionOnTriggerDown[2] = "Fire"; stateName[3] = "Fire"; stateEnergyDrain[3] = 0; stateFire[3] = true; stateAllowImageChange[3] = false; stateScript[3] = "onFire"; stateTransitionOnTriggerUp[3] = "Deconstruction"; stateTransitionOnNoAmmo[3] = "Deconstruction"; stateSound[3] = TR2TargetingLaserPaintSound; stateName[4] = "NoAmmo"; stateTransitionOnAmmo[4] = "Ready"; stateName[5] = "Deconstruction"; stateScript[5] = "deconstruct"; stateTransitionOnTimeout[5] = "Ready"; };