package Vehicle
using RTDB, BaseStats, Driving, Camera

v_militech_basilisk : Vehicle_4w_Default
{
	model = "Vehicle.Basilisk";
	type = "Vehicle.Panzer";
	isHackable = "Vehicle.Never";
	manufacturer = "Vehicle.Militech";
	entityTemplatePath = "base\vehicles\special\v_militech_basilisk_01__basic_01.ent";
	appearanceName = "militech_basilisk__basic_nomad_01";
	visualTags = 
	[
		"Aldecados"
	];
	displayName = "LocKey#53243";
	vehicleUIData = "Vehicle.VehicleBasiliskUIData";
	destroyedAppearance = "militech_basilisk__basic_nomad_burnt_01";
	player_audio_resource = "v_av_basilisk_tank";
	traffic_audio_resource = "v_av_basilisk_tank_traffic";
	fk< ObjectAction >[] objectActions = 
	[
		"VehicleActions.PanzerVehicleMountFrontLeft", "VehicleActions.PanzerVehicleMountFrontRight"
	];
	vehDataPackage = 
	{
		driverCombat = "DriverCombatTypes.Disabled";
		entering = 4.6f;
		normal_open = 3.5f;
		disableSwitchSeats = true;
	} : VehicleDataPackageDefault;
	statModifierGroups = 
	[
		"VehicleStatPreset.BaseTank", "Items.Base_HMG_Damage_Stats"
	];
	enableDestruction = true;
	destruction = 
	{
		gridDimensions = ( 7.0f, 8.0f, 1.0f );
		gridLocalOffset = ( 0.0f, 0.5f, 1.0f );
	};
	vehWheelDimensionsSetup = 
	{
		frontPreset = 
		{
		} : VehicleWheelDimensionsPreset_Default;
		backPreset = 
		{
		} : VehicleWheelDimensionsPreset_Default;
	} : VehicleWheelDimensionsSetup;
	vehDriveModelData = "";
	tankDriveModelData = 
	{
		total_mass = 54431.1f;
		chassis_mass = 54431.1f;
		center_of_mass_offset = ( 0.0f, 0.0f, 0.75f );
		waterParams = "Vehicle.VehicleWaterDefault_4w";
		driveHelpers = 
		[
			{
				type = "Vehicle.InAirGravityModifier_HelperType";
			} : InAirGravityModifier
		];
		tankSpringStiffness = 110000.0f;
		tankSpringDamping = 40000.0f;
		tankSpringVerticalOffset = 0.8f;
		tankSpringRadius = 0.7f;
		tankSpringDistance = 2.1f;
		tankAcceleration = 10.0f;
		tankDeceleration = 6.5f;
		tankTurningSpeed = 400.0f;
		tankMaxSpeed = 30.f;
		tankGravityMul = 2.f;
		tankSpringsLocalPositions = 
		[
			( 0.0f, 0.0f ), ( 3.5f, 5.5f ), ( -3.5f, -3.5f ), ( -3.5f, 5.5f ), ( 3.5f, -3.5f ), ( 0.0f, 6.0f ), ( 0.0f, -4.5f ), ( -4.5f, 0.0f ), ( 4.5f, 0.0f )
		];
		float tankCTOP = 50.0f;
		float tankCTOI = 10.0f;
		float tankCTOD = 50.0f;
	} : TankDriveModelData;
	vehAirControl = 
	{
		massReference = 55000.f;
		velocityPID = 
		[
			1.0f, 0.0f, 0.0f
		];
		anglePID = 
		[
			1.0f, 0.0f, 1.f
		];
		flippedOverRecoveryPID = 
		[
			-30000.f, 0.f, 0.f
		];
		pitch = 
		{
			stabilizeAxis = true;
			velocityDampingFactorMin = 40000.f;
			velocityDampingFactorMax = 40000.f;
			angleCorrectionFactorMin = 20000.f;
			angleCorrectionFactorMax = 20000.f;
			maxVelocityCompensation = 20000.f;
			maxAngleCompensation = 20000.f;
		} : VehicleAirControlAxis;
		yaw = 
		{
			controlAxis = "LR";
			maxVelocity = -30.f;
			brakeMultiplierWhenNoInput = 3.f;
		} : VehicleAirControlAxis;
		roll = 
		{
			stabilizeAxis = true;
			velocityDampingFactorMin = -40000.f;
			velocityDampingFactorMax = -40000.f;
			angleCorrectionFactorMin = -20000.f;
			angleCorrectionFactorMax = -20000.f;
			maxVelocityCompensation = 20000.f;
			maxAngleCompensation = 20000.f;
			zeroAngleThreshold = 0.f;
		} : VehicleAirControlAxis;
	} : VehicleAirControlDefault;
	weapons = 
	[
		"Vehicle.PanzerCannon", "Vehicle.PanzerHomingMissileLauncher", "Vehicle.PanzerCounterMeasuresLauncherLeft", "Vehicle.PanzerCounterMeasuresLauncherRight"
	];
	vehDriver_FPPCameraParams = "Vehicle.BasiliskDriverFPPCameraParamsDefault";
	vehDriver_ProceduralFPPCameraParams = 
	{
		float maxAccelerationTiltAngle = 2.0f;
	} : VehicleProceduralFPPCameraParams;
	tppCameraParams = "Vehicle.VehicleTPP_Params_v_militech_basilisk";
	tppCameraPresets = 
	[
		"Vehicle.VehicleTPP_v_militech_basilisk_CameraPreset_High_Close", "Vehicle.VehicleTPP_v_militech_basilisk_CameraPreset_High_Medium", "Vehicle.VehicleTPP_v_militech_basilisk_CameraPreset_High_Far"
	];
	cameraManagerParams = "Vehicle.VehicleCameraManager_v_militech_basilisk";
}

VehicleCameraManager_v_militech_basilisk : VehicleCameraManager_Default
{
	bool allowCameraReset = false;
}

v_militech_basilisk_transport : v_militech_basilisk
{
	appearanceName = "militech_basilisk__basic_transport_01";
	visualTags = 
	[
		"Militech"
	];
	destroyedAppearance = "militech_basilisk__basic_transport_burnt_01";
	vehicleUIData = 
	{
		info = "LocKey#53590";
	} : VehicleBasiliskUIData;
}

v_militech_basilisk_militech : v_militech_basilisk
{
	appearanceName = "militech_basilisk__basic_militech_01";
	visualTags = 
	[
		"Militech"
	];
	destroyedAppearance = "militech_basilisk__basic_burnt_01";
	vehicleUIData = 
	{
		info = "LocKey#53591";
	} : VehicleBasiliskUIData;
}

VehicleTPP_v_militech_basilisk_CameraPreset_High_Close : VehicleTPP_Default_Preset_High_Close
{
	Vector3 lookAtOffset = ( 0.0f, 2.0f, 5.75f );
	float defaultRotationPitch = 5.0f;
	float boomLength = 13.5f;
}

VehicleTPP_v_militech_basilisk_CameraPreset_High_Medium : VehicleTPP_Default_Preset_High_Medium
{
	Vector3 lookAtOffset = ( 0.0f, 2.0f, 5.75f );
	float defaultRotationPitch = 5.0f;
	float boomLength = 16.0f;
}

VehicleTPP_v_militech_basilisk_CameraPreset_High_Far : VehicleTPP_Default_Preset_High_Far
{
	Vector3 lookAtOffset = ( 0.0f, 2.0f, 5.75f );
	float defaultRotationPitch = 5.0f;
	float boomLength = 19.5f;
}

VehicleTPP_Params_v_militech_basilisk : VehicleTPP_DefaultParams
{
	float slopeCorrectionOnGroundPitchMin = 0.0f;
	float slopeCorrectionOnGroundPitchMax = 0.0f;
	float slopeCorrectionInAirPitchMin = 0.0f;
	float slopeCorrectionInAirPitchMax = 0.0f;
	float slopeCorrectionInAirSpeedMax = 0.0f;
	float slopeCorrectionInAirStrength = 0.0f;
	float autoCenterSpeed = 2.5f;
	float cameraMinPitch = -15.0f;
	float cameraMaxPitch = 40.0f;
	bool drivingDirectionCompensation = false;
	bool lockedCamera = true;
}

BasiliskDriverFPPCameraParamsDefault : VehicleFPPCameraParams
{
	float lookat_pitch_forward_offset = 10.0f;
	float lookat_pitch_forward_down_ratio = 10.0f;
	float lookat_yaw_left_offset = 0.1f;
	float lookat_yaw_left_up_offset = 0.0f;
	float lookat_yaw_right_offset = 0.1f;
	float lookat_yaw_right_up_offset = 0.0f;
	float lookat_yaw_offset_active_angle = 30.0f;
	float is_paralax = 0.0f;
	float paralax_radius = 0.0f;
	float paralax_forward_offset = 0.0f;
	float lookat_offset_vertical = 0.1f;
	float is_forward_offset = 0.0f;
	float forward_offset_value = 0.0f;
	float upperbody_pitch_weight = 0.0f;
	float upperbody_yaw_weight = 0.0f;
	float is_pitch_off = 0.0f;
	float is_yaw_off = 0.0f;
}

VehicleBasiliskUIData : VehicleDefaultUIData
{
	productionYear = "2058-2063";
	driveLayout = "LocKey#53245";
	horsepower = 2200.0f;
	mass = 46700.0f;
	info = "LocKey#53589";
}

