Script:Files:script/vehicles/weapons/law.script
From Mod Wiki
object vehicle_weapon_law : vehicle_weapon_base { void preinit(); void Fire(); string muzzleFlashFX; float jointHandle; float fireRate; float spread; float projectileIndex; float feedback; float currentWeaponIndex; vector velocity; entity vehicle; }; void vehicle_weapon_law::preinit() { projectileIndex = GetEntityDef( getKey( "def_projectile" ) ); vehicle = getVehicle(); muzzleFlashFX = getKey( "muzzle_flash" ); fireRate = getFloatKey( "fire_rate" ); spread = getFloatKey( "spread" ); velocity = getVectorKey( "velocity" ); feedback = getFloatKey( "feedback" ); } void vehicle_weapon_law::Fire() { RemoveCharge(); jointHandle = vehicle.getJointHandle( getKey( "missile_pos" + currentWeaponIndex ) ); vector origin = vehicle.getJointPos( jointHandle ); vehicle.launchMissileSimple( user, vehicle, user.getEnemy(), projectileIndex, -1, spread, origin, vehicle.jointToWorldSpace( jointHandle, velocity ) ); vehicle.applyImpulse( origin, -feedback * vehicle.getJointAxis( jointHandle, 0 ) ); vehicle.playJointEffect( muzzleFlashFX, jointHandle, 0 ); currentWeaponIndex++; if( currentWeaponIndex == getFloatKey( "num_missiles" ) ) { currentWeaponIndex = 0; } AddReFireDelay( fireRate ); GoToIdle(); }