package Vehicle
using RTDB, BaseStats, Driving

v_sportbike2_arch : v_sportbike1_yaiba_kusanagi
{
	entityTemplatePath = "base\vehicles\sportbike\v_sportbike2_arch_nemesis_basic_01.ent";
	visualTags = 
	[
		"Standard"
	];
	displayName = "LocKey#20219";
	manufacturer = "Vehicle.Arch";
	vehicleUIData = "Vehicle.VehicleArchUIData";
	fk< UIIcon > icon = "UIIcon.arch_nemesis_basic_player_01";
	destroyedAppearance = "arch_nemesis_basic_burnt_standard_01";
	vehDataPackage = 
	{
		seatingTemplateOverride = "sportbike2_vehicle";
		animVars = 
		[
			"sportbike2_vehicle_seat_front_left"
		];
		useAuxiliary = true;
		wheelBumperVertOffsetScalor = 0.9f;
		wheelBumperLengthScalor = 0.84f;
	} : VehicleDataPackage_2w_Default;
	fxWheelsDecalsFrontOverride = "Vehicle.FxWheels_Radial_XS";
	fxWheelsDecals = "Vehicle.FxWheels_Radial_S";
	player_audio_resource = "v_mbike_arch_nazare";
	traffic_audio_resource = "v_mbike_arch_nazare_traffic";
	enableDestruction = true;
	destruction = 
	{
		gridDimensions = ( 0.5f, 2.0f, 0.4f );
		gridLocalOffset = ( 0.0f, 0.0f, 0.2f );
		chargePortCenter = ( -0.0203304291f, 0.329014063f, 0.701693177f );
		wheels = 
		[
			{
				name = "Front";
				intact = "tire_f_01";
				flat = "";
			}, 
			{
				name = "Back";
				intact = "tire_b_01";
				flat = "";
			}
		];
	} : VehicleDestructionParamsDefault_2w;
	vehWheelDimensionsSetup = 
	{
		frontPreset = 
		{
			tireRadius = 0.29f;
			rimRadius = 0.24f;
			tireWidth = 0.13f;
		} : VehicleWheelDimensionsPreset;
		backPreset = 
		{
			tireRadius = 0.32f;
			rimRadius = 0.24f;
			tireWidth = 0.2f;
		} : VehicleWheelDimensionsPreset;
	} : VehicleWheelDimensionsSetup;
	bikeDriveModelData = "Vehicle.VehicleDriveModelData_Arch";
	vehEngineData = "Vehicle.VehicleEngineData_Arch";
	vehAirControl = 
	{
		massReference = 380.f;
		pitch = 
		{
			maxVelocity = -9.f;
			inputDampFactor = 0.25f;
		} : BikePitchAirControlAxis;
		yaw = 
		{
			maxVelocity = -10.5f;
			inputDampFactor = 0.07f;
		} : BikeYawAirControlAxis;
	} : VehicleAirControlBike;
	vehDriverCombat_FPPCameraParams = 
	{
		lookat_offset_vertical = 0.0f;
		is_forward_offset = 0.0f;
		forward_offset_value = 0.0f;
	} : MotorcycleDriverCombatFPPCameraParamsDefault;
}

v_sportbike2_arch_quest : v_sportbike2_arch
{
	savable = true;
	tags += 
	[
		"Immortal"
	];
	vehDefaultState = 
	{
		DisableAllInteractions = true;
	};
}

v_sportbike2_arch_jackie : v_sportbike2_arch
{
	appearanceName = "arch_nemesis_basic_jackie";
	fk< UIIcon > icon = "UIIcon.arch_nemesis_basic_jackie";
	player_audio_resource = "v_mbike_arch_nazare_chopper";
	traffic_audio_resource = "v_mbike_arch_nazare_chopper_traffic";
	displayName = "LocKey#23286";
}

v_sportbike2_arch_jackie_tuned : v_sportbike2_arch
{
	appearanceName = "arch_nemesis_basic_jackie_tuned_up";
	fk< UIIcon > icon = "UIIcon.arch_nemesis_basic_jackie_tuned_up";
	player_audio_resource = "v_mbike_arch_nazare_chopper";
	traffic_audio_resource = "v_mbike_arch_nazare_chopper_traffic";
	displayName = "LocKey#23287";
	vehicleUIData = 
	{
		horsepower = 185.0f;
		mass = 302.0f;
	} : VehicleArchUIData;
	vehEngineData = 
	{
		engineMaxTorque = 183.f;
		finalGearTorqueDecimationScalor = 0.87f;
	} : VehicleEngineData_Arch;
	bikeDriveModelData = 
	{
		chassis_mass = 382.f;
		burnOut = 
		{
			maxSpeedToInitiateBurnOut = 23.f;
			lateralForceMaxAcceleration = 0.77f;
			lateralAccelForwardSpeedMaxDecimation = 0.81f;
			maxLateralAccelSlipRatioMultipler = 0.6f;
			burnOutGripBonus = 7.0f;
		} : VehicleBurnOut_Arch;
	} : VehicleDriveModelData_Arch;
}

v_sportbike2_arch_sport : v_sportbike2_arch
{
	visualTags = 
	[
		"Sport"
	];
	destroyedAppearance = "arch_nemesis_basic_burnt_sport_01";
	displayName = "LocKey#23288";
	vehicleUIData = 
	{
		mass = 290.0f;
	} : VehicleArchUIData;
	bikeDriveModelData = 
	{
		total_mass = 370.0f;
		chassis_mass = 370.f;
		wheelSetup = 
		{
			frontPreset = 
			{
			} : VehicleWheelDrivingPreset_Arch_Front;
			backPreset = 
			{
				visualSuspensionCompressionLength = 0.21f;
			} : VehicleWheelDrivingPreset_Arch_Rear;
		} : VehicleWheelDrivingSetup_2_Default;
	} : VehicleDriveModelData_Arch;
}

v_sportbike2_arch_tyger : v_sportbike2_arch
{
	visualTags = 
	[
		"TygerClaws"
	];
	destroyedAppearance = "arch_nemesis_basic_burnt_tygerclaws_01";
	fk< UIIcon > icon = "UIIcon.arch_nemesis_basic_tygerclaws_boss_01";
	player_audio_resource = "v_mbike_arch_nazare_chopper";
	traffic_audio_resource = "v_mbike_arch_nazare_chopper_traffic";
	displayName = "LocKey#23289";
	vehicleUIData = 
	{
		mass = 304.0f;
	} : VehicleArchUIData;
}

VehicleBurnOut_Arch : VehicleBurnOutDefault_2w
{
	lateralForceMaxAcceleration = 0.75f;
	lateralForceMaxSpeed = 3.3f;
	lateralAccelForwardSpeedMaxDecimation = 0.79f;
	maxDriveWheelSlipRatio = 15.0f;
	maxLateralAccelSlipRatioMultipler = 0.6f;
	maxLongFrictionSlipRatioMultipler = 0.66f;
	minLongFrictionSlipRatioScaled = 0.15f;
	minLongFrictionCoeff = 0.5f;
	burnOutGripBonus = 6.5f;
	maxBrakeForceModifier = 0.34f;
}

VehicleWheelDrivingPreset_Arch_Front : VehicleWheelDrivingPreset_2_Front
{
	maxBrakingTorque = 250.0f;
	frictionMulLongitudinal = 0.9f;
	frictionMulLateral = 1.01f;
	tireLongitudinalSlipEffectsMul = 0.805f;
	tireLateralSlipEffectsMul = 0.72f;
	springStiffness = 11.5f;
	springDamping = 2600.0f;
	springReboundDamping = 1800.0f;
	springBoundDampingLowRate = 1650.0f;
	springReboundDampingLowRate = 1400.0f;
	springDampingLowRateCompression = 0.17f;
	springDampingHighRateCompression = 0.37f;
	extremeCompressionEventScalor = 0.72f;
	visualSuspensionDroop = 0.08f;
	logicalSuspensionCompressionLength = 0.30f;
	wheelsVerticalOffset = 0.0f;
}

VehicleWheelDrivingPreset_Arch_Rear : VehicleWheelDrivingPreset_2_Rear
{
	maxBrakingTorque = 120.0f;
	frictionMulLongitudinal = 1.00f;
	frictionMulLateral = 0.99f;
	tireLongitudinalSlipEffectsMul = 0.79f;
	tireLateralSlipEffectsMul = 0.95f;
	springStiffness = 11.0f;
	springDamping = 2400.0f;
	springReboundDamping = 2400.0f;
	springBoundDampingLowRate = 1700.0f;
	springReboundDampingLowRate = 1800.0f;
	springDampingLowRateCompression = 0.20f;
	springDampingHighRateCompression = 0.38f;
	extremeCompressionEventScalor = 0.44f;
	visualSuspensionDroop = 0.08f;
	logicalSuspensionCompressionLength = 0.30f;
	visualSuspensionCompressionLength = 0.17f;
	wheelsVerticalOffset = -0.01f;
}

VehicleDriveModelData_Arch : VehicleDriveModelDataDefault_2w
{
	total_mass = 380.0f;
	chassis_mass = 380.f;
	center_of_mass_offset = ( 0.0f, -0.02f, 0.11f );
	momentOfInertia = ( 220.0f, 42.0f, 210.0f );
	maxWheelTurnDeg = 64.f;
	wheelTurnMaxAddPerSecond = 162.f;
	wheelTurnMaxSubPerSecond = 162.f;
	bikeTiltSpeed = 83.f;
	bikeTiltReturnSpeed = 83.f;
	bikeMaxTilt = 39.f;
	bikeMaxCOMLongOffset = 0.8f;
	bikeMinCOMLongOffset = 0.75f;
	airResistanceFactor = 0.8f;
	handbrakeBrakingTorque = 3000.0f;
	slopeTractionReductionFactor = -0.13f;
	wheelSetup = 
	{
		frontPreset = 
		{
		} : VehicleWheelDrivingPreset_Arch_Front;
		backPreset = 
		{
			visualSuspensionCompressionLength = 0.17f;
		} : VehicleWheelDrivingPreset_Arch_Rear;
	} : VehicleWheelDrivingSetup_2_Default;
	driveHelpers = 
	[
		{
			type = "Vehicle.HandbrakeFrictionModifier_HelperType";
			rearWheelsLatFrictionCoef = 0.73f;
			blendOutTime = 0.45f;
			additionalBrakeForLongUse = 0.6f;
		} : HandbrakeFrictionModifier_2w, 
		{
			type = "Vehicle.RotationLimiter_HelperType";
		} : RotationLimiterHelper_2w, 
		{
			type = "Vehicle.DriveWheelsAccelerateNoise_HelperType";
			accelerationBoost = 1.5f;
			accelerationBoostMaxSpeed = 16.f;
		} : DriveWheelsAccelerateNoise_2w
	];
	burnOut = "Vehicle.VehicleBurnOut_Arch";
}

VehicleEngineData_Arch : VehicleEngineData_2_Default
{
	gearCurvesPath = "base\gameplay\vehicles\curves\engine_torque\med_balanced_sc.curveset";
	engineMaxTorque = 175.f;
	resistanceTorque = 70.f;
	flyWheelMomentOfInertia = 0.18f;
	wheelsResistanceRatio = 15.f;
	gearChangeTime = 0.27f;
	gearChangeCooldown = 0.4f;
	finalGearTorqueDecimationScalor = 0.9f;
	minRPM = 900.f;
	maxRPM = 6450.f;
	fk< VehicleGear >[] gears = 
	[
		{
			minSpeed = 0.f;
			maxSpeed = 3.f;
			minEngineRPM = 900.f;
			maxEngineRPM = 6400.f;
			torqueMultiplier = 0.95f;
		}, 
		{
			minSpeed = 0.f;
			maxSpeed = 12.f;
			minEngineRPM = 900.f;
			maxEngineRPM = 5900.f;
			torqueMultiplier = 1.15f;
		}, 
		{
			minSpeed = 10.f;
			maxSpeed = 19.f;
			minEngineRPM = 2300.f;
			maxEngineRPM = 5400.f;
			torqueMultiplier = 0.75f;
		}, 
		{
			minSpeed = 16.f;
			maxSpeed = 25.f;
			minEngineRPM = 2500.f;
			maxEngineRPM = 5700.f;
			torqueMultiplier = 0.53f;
		}, 
		{
			minSpeed = 23.f;
			maxSpeed = 30.f;
			minEngineRPM = 2600.f;
			maxEngineRPM = 5900.f;
			torqueMultiplier = 0.41f;
		}, 
		{
			minSpeed = 28.f;
			maxSpeed = 34.5f;
			minEngineRPM = 2700.f;
			maxEngineRPM = 6100.f;
			torqueMultiplier = 0.30f;
		}, 
		{
			minSpeed = 32.f;
			maxSpeed = 40.f;
			minEngineRPM = 2800.f;
			maxEngineRPM = 6450.f;
			torqueMultiplier = 0.25f;
		}
	];
}

VehicleArchUIData : VehicleDefaultUIData
{
	productionYear = "2075-2077";
	driveLayout = "LocKey#45371";
	horsepower = 170.0f;
	mass = 300.0f;
	info = "LocKey#53579";
}

