PART
{
	// Kerbal Space Program - Part Config
	//
	//

	// --- general parameters ---
	name = bahaGoalKeeper
	module = Part
	author = BahamutoD

	// --- asset parameters ---
	mesh = model.mu
	rescaleFactor = 1.134


	// --- node definitions ---
	node_attach = 0.0, -0.7993, 0, 0, -1, 0, 0
	node_stack_bottom = 0.0, -0.7993, 0, 0, -1, 0, 2

	// --- editor parameters ---
	TechRequired = precisionEngineering
	entryCost = 11000
	cost = 9000
	category = none
	bdacategory = Gun turrets
	subcategory = 0
	bulkheadProfiles = size2, srf
	title = #loc_BDArmory_part_bahaGoalKeeper_title  //Goalkeeper CIWS
	manufacturer = #loc_BDArmory_agent_title  //Bahamuto Dynamics
	description = #loc_BDArmory_part_bahaGoalKeeper_description  //A 7 barrel 30mm rotary cannon with full swivel range.  The 30mm high explosive rounds self detonate at the set distance, but this weapon does not feature automatic fuse timing. It has its own detection & tracking radar, though that is only effective at close range and does not replace a proper volumen serach radar.
	// attachment rules: stack, srfAttach, allowStack, allowSrfAttach, allowCollision
	attachRules = 1,1,0,0,1
	tags = #loc_BDArmory_part_bahaGoalKeeper_tags 
	// --- standard part parameters ---
	mass = 4
	dragModelType = default
	maximum_drag = 0.2
	minimum_drag = 0.2
	angularDrag = 2
	crashTolerance = 50
	maxTemp = 3600

	stagingIcon = SOLID_BOOSTER



	MODULE
	{
		name = ModuleTurret
		turretID = 0

		pitchTransformName = gunPitch
		yawTransformName = gunYaw

		pitchSpeedDPS = 80
		yawSpeedDPS = 80

		maxPitch = 85
		minPitch = -15

		yawRange = 360

		smoothRotation = true
		smoothMultiplier = 10

		audioPath = BDArmory/Sounds/hydraulicLoop
		maxAudioPitch = 0.365
		minAudioPitch = 0.255
		maxVolume = 0.55
	}

	MODULE
	{
		name = ModuleWeapon
		turretID = 0

		fireTransformName = fireTransform

		hasDeployAnim = false

		hasFireAnimation = true
		fireAnimName = fireAnimation2
		spinDownAnimation = true
		SpoolUpTime = 0.3
		roundsPerMinute = 4200
		maxDeviation = 0.262 //~6mrad
		maxEffectiveDistance = 4000
		maxTargetingRange = 5000

		ammoName = 30x173Ammo
		bulletType = 30x173HEBullet
		requestResourceAmount = 1

		hasRecoil = true
		onlyFireInRange = true
		bulletDrop = true

		weaponType = ballistic
		isAPS = true
		APSType = missile
		dualModeAPS = true

		tracerLength = 0
		tracerDeltaFactor = 2.75
		tracerInterval = 2

		maxHeat = 3600
		heatPerShot = 36
		heatLoss = 900

		shellScale = 0.76

		fireSoundPath = BDArmory/Parts/gau-8/sounds/GAU8Cannon
		overheatSoundPath = BDArmory/Parts/gau-8/sounds/GAU8End
		oneShotSound = false

		//explosion
		explModelPath = BDArmory/Models/explosion/30mmExplosion
		explSoundPath = BDArmory/Sounds/subExplode


	}

	MODULE
	{
        name = ModuleRadar

        // -- Section: General Configuration --
        radarName = Goalkeeper CIWS Radar		// if left empty part.title is used, but advised to set this to a nice printable text
        rwrThreatType = 0				// IMPORTANT, please set correctly:
                                // 0 = SAM site radar
                                // 1 = Fighter radar (airborne)
                                // 2 = AWACS radar (airborne)
                                // 3, 4 = ACTIVE MISSILE (DO NOT USE UNLESS YOU KNOW WHAT YOU'RE DOING!
                                // 5 = Detection radar (ground/ship based)
                                // 6 = SONAR (ship/submarine based)
        rotationTransformName = scanRotation
	    turretID = 1					// if needed
        resourceDrain = 0.45				// change to higher values for more capable radars, e.g AESA

        // -- Section: Capabilities --
        omnidirectional = true				// false: boresight scan radar
        directionalFieldOfView = 90			// for omni and boresight
        //boresightFOV = 10				// for boresight only
        scanRotationSpeed = 240				// degress per second
        //lockRotationSpeed = 120				// only relevant if canLock
        //lockRotationAngle = 4
        showDirectionWhileScan = true			// can show target direction on radar screen. False: radar echos displayed as block only (no direction)
        //multiLockFOV = 30				// only relevant if canLock
        //lockAttemptFOV = 2				// only relevant if canLock
        maxLocks = 1					//how many targets can be locked/tracked simultaneously. only relevant if canLock

        canScan = true					// scanning/detecting targets (volume search)
        canLock = true					// locking/tracking targets (fire control)
        canTrackWhileScan = true			// continue scanning while tracking a locked target
        canReceiveRadarData = true			// can work as passive data receiver

        minSignalThreshold = 350				// DEPRECATED, NO LONGER USED! use detection float curve!
        minLockedSignalThreshold = 120			// DEPRECATED, NO LONGER USED! use locktrack float curve!

        radarGroundClutterFactor = 0.1			// how much is the radar efficiency reduced to by ground clutter/look-down?
                                // 0.0 = reduced to 0% (=IMPOSSIBLE to detect ground targets)
                                // 1.0 = fully efficient (no difference between air & ground targets)
                                // default if unset: 0.25
                                // Ground targets, especially ships, already have a massively larger RCS than fighters, hence
                                // any ground clutter factor >0.25 is to be considered very good, making an efficient surface/horizon search radar.
                                // values >1.0 are possible, meaning the radar is MORE efficient during look down than vs air targets.

        radarDetectionCurve
        {
          // floatcurve to define at what range (km) which minimum cross section (m^2) can be detected.
          // this defines both min/max range of the radar, and sensitivity/efficiency
          // it is recommended to define an "assured detection range", at which all craft are detected regardless
          //     of their rcs. This is achieved by using a minrcs value of zero, thus detecting everything.
          //        key = distance	rcs
                    key = 0.0	0
                    key = 2	0	//between 0 and 2 km the min cross section is 0, thus assured detection of everything
                    key = 5	5   //max targeting range of the weapon is 5km, detectable rcs is quite small
                    key = 10 20	//at twice the maxTargeting range a rcs of min 20 m^2 can be detected
        }

        radarLockTrackCurve
        {
            // same as detectionCurve, just for locking/tracking purpose
	    // ATTENTION: DO NOT USE an "assured locking range" here, as this would render lock-breaking
	    //   ECM-jammers & chaff completely ineffective!!
            //      key = distance	rcs
                    key = 0.0	0
                    key = 5	5    //for tracking locks the radar is highly sensitive
                    key = 10 40	//at twice the maxTargeting range the lockable rcs is quite large
        }

	}

	MODULE
	{
		name = ModuleTurret

		turretID = 1

		pitchTransformName = radarPitch
		yawTransformName = radarYaw

		pitchSpeedDPS = 120
		yawSpeedDPS = 120

		maxPitch = 80
		minPitch = -5

		yawRange = 360

		smoothRotation = true
		smoothMultiplier = 10
	}



}
