package Vehicle
using RTDB, BaseStats, Driving

v_sportbike1_yaiba_kusanagi : Vehicle_2w_Default
{
	model = "Vehicle.Kusanagi";
	entityTemplatePath = "base\vehicles\sportbike\v_sportbike1_yaiba_kusanagi_basic_01.ent";
	visualTags = 
	[
		"Standard"
	];
	tags += 
	[
		"player_bike", "CanDriveOnVehicles"
	];
	manufacturer = "Vehicle.Yaiba";
	displayName = "LocKey#1620";
	vehicleUIData = "Vehicle.VehicleYaibaKusanagiUIData";
	fk< UIIcon > icon = "UIIcon.yaiba_kusanagi_basic_player_01";
	string hijackDifficulty = "HARD";
	enableDestruction = true;
	fxWheelsDecalsFrontOverride = "Vehicle.FxWheels_Radial_XS";
	fxWheelsDecals = "Vehicle.FxWheels_Radial_M";
	destruction = 
	{
		gridDimensions = ( 0.5f, 2.0f, 0.4f );
		gridLocalOffset = ( 0.0f, 0.0f, 0.2f );
		chargePortCenter = ( -0.294994354f, 0.414409399f, 0.0890525281f );
		wheels = 
		[
			{
				name = "Front";
				intact = "tire_f_01";
				flat = "";
			}, 
			{
				name = "Back";
				intact = "tire_r_01";
				flat = "";
			}
		];
	} : VehicleDestructionParamsDefault_2w;
	vehDriver_FPPCameraParams = 
	{
		enable_rear_view = true;
	} : KusanagiDriverFPPCameraParamsDefault;
	vehDataPackage = 
	{
		useAuxiliary = true;
		wheelBumperVertOffsetScalor = 0.93f;
		wheelBumperLengthScalor = 0.84f;
	} : VehicleDataPackage_2w_Default;
	statModifierGroups += 
	[
		"VehicleStatPreset.VeryWeak"
	];
	player_audio_resource = "v_mbike_yaiba_asmx_kusanagi";
	traffic_audio_resource = "v_mbike_yaiba_asmx_kusanagi_traffic";
	destroyedAppearance = "yaiba_kusanagi_basic_burnt_default_01";
	vehWheelDimensionsSetup = "Vehicle.VehicleWheelDimensionsDefaultYaibaKusanagi";
	bikeDriveModelData = "Vehicle.VehicleDriveModelDataDefaultYaibaKusanagi";
	vehEngineData = 
	{
		gearCurvesPath = "base\gameplay\vehicles\curves\engine_torque\large_balanced_na.curveset";
		engineMaxTorque = 185.f;
		resistanceTorque = 100.f;
		wheelsResistanceRatio = 15.f;
		flyWheelMomentOfInertia = 0.2f;
		gearChangeTime = 0.2f;
		finalGearTorqueDecimationScalor = 0.99f;
		minRPM = 980.f;
		maxRPM = 8800.f;
		fk< VehicleGear >[] gears = 
		[
			{
				minSpeed = 0.f;
				maxSpeed = 3.f;
				minEngineRPM = 980.f;
				maxEngineRPM = 8448.f;
				torqueMultiplier = 0.9f;
			}, 
			{
				minSpeed = 0.f;
				maxSpeed = 12.f;
				minEngineRPM = 980.f;
				maxEngineRPM = 8300.f;
				torqueMultiplier = 1.2f;
			}, 
			{
				minSpeed = 10.f;
				maxSpeed = 18.f;
				minEngineRPM = 3900.f;
				maxEngineRPM = 7744.f;
				torqueMultiplier = 0.83f;
			}, 
			{
				minSpeed = 16.f;
				maxSpeed = 23.5f;
				minEngineRPM = 4100.f;
				maxEngineRPM = 7920.f;
				torqueMultiplier = 0.64f;
			}, 
			{
				minSpeed = 22.f;
				maxSpeed = 29.f;
				minEngineRPM = 4200.f;
				maxEngineRPM = 8106.f;
				torqueMultiplier = 0.51f;
			}, 
			{
				minSpeed = 27.f;
				maxSpeed = 33.f;
				minEngineRPM = 4300.f;
				maxEngineRPM = 8297.f;
				torqueMultiplier = 0.4f;
			}, 
			{
				minSpeed = 30.f;
				maxSpeed = 36.f;
				minEngineRPM = 4400.f;
				maxEngineRPM = 8300.f;
				torqueMultiplier = 0.3f;
			}, 
			{
				minSpeed = 33.f;
				maxSpeed = 42.f;
				minEngineRPM = 4500.f;
				maxEngineRPM = 8800.f;
				torqueMultiplier = 0.23f;
			}
		];
	} : VehicleEngineData_2_Default;
	vehAirControl = 
	{
		pitch = 
		{
			maxVelocity = -7.f;
			inputDampFactor = 0.25f;
		} : BikePitchAirControlAxis;
		yaw = 
		{
			maxVelocity = -8.5f;
			inputDampFactor = 0.065f;
		} : BikeYawAirControlAxis;
	} : VehicleAirControlBike;
}

VehicleWheelDimensionsDefaultYaibaKusanagi : VehicleWheelDimensionsSetup
{
	frontPreset = 
	{
		tireRadius = 0.305f;
		rimRadius = 0.23f;
		tireWidth = 0.14f;
	} : VehicleWheelDimensionsPreset_Default;
	backPreset = 
	{
		tireRadius = 0.34f;
		rimRadius = 0.265f;
		tireWidth = 0.25f;
	} : VehicleWheelDimensionsPreset_Default;
}

VehicleWheelDrivingPresetKusanagi_Front : VehicleWheelDrivingPreset_2_Front
{
	maxBrakingTorque = 280.0f;
	frictionMulLongitudinal = 0.89f;
	frictionMulLateral = 0.9f;
	tireLongitudinalSlipEffectsMul = 0.685f;
	tireLateralSlipEffectsMul = 0.81f;
	springStiffness = 13.0f;
	springDamping = 2800;
	springReboundDamping = 2500;
	springBoundDampingLowRate = 2000.0f;
	springReboundDampingLowRate = 2000.0f;
	springDampingLowRateCompression = 0.15f;
	springDampingHighRateCompression = 0.30f;
	extremeCompressionEventScalor = 0.75f;
	visualSuspensionDroop = 0.1f;
	logicalSuspensionCompressionLength = 0.25f;
	wheelsVerticalOffset = 0.02f;
}

VehicleWheelDrivingPresetKusanagi_Rear : VehicleWheelDrivingPreset_2_Rear
{
	maxBrakingTorque = 150.0f;
	frictionMulLongitudinal = 0.92f;
	frictionMulLateral = 0.9f;
	tireLongitudinalSlipEffectsMul = 0.8f;
	tireLateralSlipEffectsMul = 0.97f;
	springStiffness = 11.0f;
	springDamping = 2800;
	springReboundDamping = 2200;
	springBoundDampingLowRate = 1800.0f;
	springReboundDampingLowRate = 1700.0f;
	springDampingLowRateCompression = 0.20f;
	springDampingHighRateCompression = 0.40f;
	extremeCompressionEventScalor = 0.43f;
	visualSuspensionDroop = 0.1f;
	logicalSuspensionCompressionLength = 0.35f;
	visualSuspensionCompressionLength = 0.15f;
	wheelsVerticalOffset = 0.01f;
}

VehicleDriveModelDataDefaultYaibaKusanagi : VehicleDriveModelDataDefault_2w
{
	total_mass = 500.0f;
	chassis_mass = 500.f;
	center_of_mass_offset = ( 0.0f, 0.18f, 0.12f );
	momentOfInertia = ( 254.0f, 48.0f, 228.0f );
	maxWheelTurnDeg = 54.f;
	wheelTurnMaxAddPerSecond = 135.f;
	wheelTurnMaxSubPerSecond = 135.f;
	bikeTiltPID = 
	[
		2.5f, 0.2f, 0.0f
	];
	bikeTiltSpeed = 103.f;
	bikeTiltReturnSpeed = 103.f;
	bikeMaxTilt = 38.f;
	bikeMaxCOMLongOffset = 0.77f;
	bikeMinCOMLongOffset = 0.87f;
	handbrakeBrakingTorque = 4000.0f;
	airResistanceFactor = 0.8f;
	slopeTractionReductionFactor = -0.16f;
	wheelSetup = 
	{
		frontPreset = 
		{
		} : VehicleWheelDrivingPresetKusanagi_Front;
		backPreset = 
		{
		} : VehicleWheelDrivingPresetKusanagi_Rear;
	} : VehicleWheelDrivingSetup_2_Default;
	driveHelpers = 
	[
		{
			type = "Vehicle.HandbrakeFrictionModifier_HelperType";
			rearWheelsLatFrictionCoef = 0.70f;
			blendOutTime = 0.55f;
			postHandbrakeTractionBoost = 1.7f;
		} : HandbrakeFrictionModifier_2w, 
		{
			type = "Vehicle.RotationLimiter_HelperType";
		} : RotationLimiterHelper_2w, 
		{
			type = "Vehicle.DriveWheelsAccelerateNoise_HelperType";
			accelerationBoost = 3.0f;
		} : DriveWheelsAccelerateNoise_2w
	];
	burnOut = 
	{
		maxSpeedToInitiateBurnOut = 24.f;
		lateralForceMaxAcceleration = 0.71f;
		lateralForceMaxSpeed = 3.1f;
		lateralAccelForwardSpeedMaxDecimation = 0.885f;
		maxLateralAccelSlipRatioMultipler = 0.625f;
		minLongFrictionCoeff = 0.545f;
		burnOutGripBonus = 7.0f;
	} : VehicleBurnOut_Arch;
}

KusanagiDriverFPPCameraParamsDefault : VehicleFPPCameraParams
{
	float lookat_pitch_forward_offset = 10.0f;
	float lookat_pitch_forward_down_ratio = 10.0f;
	float lookat_yaw_left_offset = 0.15f;
	float lookat_yaw_left_up_offset = 0.2f;
	float lookat_yaw_right_offset = 0.15f;
	float lookat_yaw_right_up_offset = 0.2f;
	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 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;
}

v_sportbike1_yaiba_kusanagi_quest : v_sportbike1_yaiba_kusanagi
{
	savable = true;
	tags += 
	[
		"Immortal"
	];
	vehDefaultState = 
	{
		DisableAllInteractions = true;
	};
}

v_sportbike1_yaiba_kusanagi_tyger : v_sportbike1_yaiba_kusanagi
{
	visualTags = 
	[
		"TygerClaws"
	];
	destroyedAppearance = "yaiba_kusanagi_basic_burnt_animals_01";
	player_audio_resource = "v_mbike_yaiba_asmx_kusanagi_mizuchi";
	traffic_audio_resource = "v_mbike_yaiba_asmx_kusanagi_mizuchi_traffic";
	displayName = "LocKey#23291";
	vehicleUIData = 
	{
		mass = 366.0f;
	} : VehicleYaibaKusanagiUIData;
	bikeDriveModelData = 
	{
		total_mass = 490.0f;
		chassis_mass = 490.f;
	} : VehicleDriveModelDataDefaultYaibaKusanagi;
}

v_sportbike1_yaiba_kusanagi_animal : v_sportbike1_yaiba_kusanagi
{
	visualTags = 
	[
		"Animals"
	];
	destroyedAppearance = "yaiba_kusanagi_basic_burnt_animals_02";
	player_audio_resource = "v_mbike_yaiba_asmx_kusanagi_misfit";
	traffic_audio_resource = "v_mbike_yaiba_asmx_kusanagi_misfit_traffic";
	displayName = "LocKey#23290";
	vehicleUIData = 
	{
		mass = 350.0f;
	} : VehicleYaibaKusanagiUIData;
	bikeDriveModelData = 
	{
		total_mass = 480.0f;
		chassis_mass = 480.f;
	} : VehicleDriveModelDataDefaultYaibaKusanagi;
}

v_sportbike1_yaiba_kusanagi_mox : v_sportbike1_yaiba_kusanagi
{
	visualTags = 
	[
		"TheMox"
	];
}

vm_001_motorcycle : v_sportbike1_yaiba_kusanagi
{
}

VehicleYaibaKusanagiUIData : VehicleDefaultUIData
{
	productionYear = "2068-2077";
	driveLayout = "LocKey#45371";
	horsepower = 183.0f;
	mass = 372.0f;
	info = "LocKey#53578";
}

