package Vehicle
using RTDB, BaseStats, Driving, Camera

v_standard2_makigai_maimai : Vehicle_4w_Default
{
	entityTemplatePath = "base\vehicles\standard\v_standard2_makigai_maimai_01_basic_01.ent";
	randomPassengers = 
	[
		"Passengers.CorporatDriverEntry", "Passengers.CorporatPassengerFrontEntry"
	];
	displayName = "LocKey#93551";
	visualTags = 
	[
		"Standard"
	];
	tags += 
	[
		"CombatDisabled"
	];
	manufacturer = "Vehicle.Makigai";
	vehicleUIData = "Vehicle.VehicleMakigaiMaimaiUIData";
	fk< UIIcon > icon = "UIIcon.makigai_maimai__basic_player_01";
	headlightColor = 
	[
		210, 210, 255, 255
	];
	destroyedAppearance = "makigai_maimai__basic_burnt_01";
	fxWheelsDecals = "Vehicle.FxWheels_Radial_XS";
	rightFrontCamberOffset = ( -0.03, 0, 0 );
	leftFrontCamberOffset = ( 0.03, 0, 0 );
	model = "Vehicle.Maimai";
	player_audio_resource = "v_car_makigai_maimai";
	traffic_audio_resource = "v_car_makigai_maimai_traffic";
	widgetStyleSheetPath = "base/gameplay/gui/widgets/vehicle/makigai/makigai_default.inkstyle";
	statModifiers += 
	[
		{
			statType = "BaseStats.PowerLevel";
			modifierType = "Additive";
			value = 2;
		} : ConstantStatModifier
	];
	statModifierGroups += 
	[
		"VehicleStatPreset.Weak"
	];
	string hijackDifficulty = "TRIVIAL";
	string crackLockDifficulty = "TRIVIAL";
	vehDataPackage = 
	{
		vehSeatSet = "Vehicle.Vehicle2SeatSetDefault";
		driverCombat = "DriverCombatTypes.Doors";
		entering = 2.4f;
		slideDuration = 0.8f;
		open_close_duration = 1.2f;
		normal_open = 1.5f;
		stealing_open = 3.3f;
		exitDelay = 0.3f;
		windowsRollDown = false;
	} : VehicleDataPackageDefault;
	enableDestruction = true;
	destruction = "Vehicle.VehicleDestructionParamsMaiMai";
	vehWheelDimensionsSetup = 
	{
		frontPreset = 
		{
			tireRadius = 0.23f;
			rimRadius = 0.165f;
			tireWidth = 0.20f;
			wheelOffset = -0.03f;
		} : VehicleWheelDimensionsPreset;
		backPreset = 
		{
			tireRadius = 0.23f;
			rimRadius = 0.165f;
			tireWidth = 0.20f;
		} : VehicleWheelDimensionsPreset;
	} : VehicleWheelDimensionsSetup;
	vehDriveModelData = "Vehicle.VehicleDriveModelData_MaiMai";
	vehEngineData = "Vehicle.VehicleEngineData_4_Regular_Small_Peaky";
	tppCameraPresets = 
	[
		"Camera.VehicleTPP_4w_Makigai_High_Close", "Camera.VehicleTPP_4w_Makigai_High_Medium", "Camera.VehicleTPP_4w_Makigai_High_Far", "Camera.VehicleTPP_4w_Makigai_High_DriverCombatClose", "Camera.VehicleTPP_4w_Makigai_High_DriverCombatMedium", "Camera.VehicleTPP_4w_Makigai_High_DriverCombatFar", "Camera.VehicleTPP_4w_Makigai_Low_Close", "Camera.VehicleTPP_4w_Makigai_Low_Medium", "Camera.VehicleTPP_4w_Makigai_Low_Far", "Camera.VehicleTPP_4w_Makigai_Low_DriverCombatClose", "Camera.VehicleTPP_4w_Makigai_Low_DriverCombatMedium", "Camera.VehicleTPP_4w_Makigai_Low_DriverCombatFar"
	];
	vehDriver_FPPCameraParams = 
	{
		enable_rear_view = true;
	} : VehicleDriverFPPCameraParamsDefault;
	crowdMemberSettings = "Crowds.Mini_DrivingPackage";
	trafficSuspension = "Vehicle.TrafficSuspension_Standard";
}

VehicleWheelDrivingPreset_MaiMai_Front : VehicleWheelDrivingPreset_4_MR_Front
{
	mass = 5.0f;
	maxBrakingTorque = 60.0f;
	frictionMulLongitudinal = 0.87f;
	frictionMulLateral = 0.88f;
	tireLateralSlipEffectsMul = 0.7f;
	swaybarStiffness = 6.0f;
	swaybarLengthScalar = 1.3f;
	swaybarDisplacementLimit = 0.15;
	springStiffness = 10.0f;
	springDamping = 1700;
	springReboundDamping = 1400.0f;
	springBoundDampingLowRate = 1100.0f;
	springReboundDampingLowRate = 800.0f;
	springDampingLowRateCompression = 0.15f;
	springDampingHighRateCompression = 0.30f;
	visualSuspensionDroop = 0.08f;
	visualSuspensionCompressionLength = 0.03f;
	wheelsVerticalOffset = 0.0f;
}

VehicleWheelDrivingPreset_MaiMai_Rear : VehicleWheelDrivingPreset_4_MR_Rear
{
	mass = 5.0f;
	maxBrakingTorque = 50.0f;
	frictionMulLongitudinal = 0.89f;
	frictionMulLateral = 0.895f;
	swaybarStiffness = 5.5f;
	swaybarLengthScalar = 0.9f;
	swaybarDisplacementLimit = 0.15;
	springStiffness = 14.0f;
	springDamping = 2100;
	springReboundDamping = 1800.0f;
	springBoundDampingLowRate = 1300.0f;
	springReboundDampingLowRate = 1000.0f;
	springDampingLowRateCompression = 0.15f;
	springDampingHighRateCompression = 0.30f;
	logicalSuspensionCompressionLength = 0.29f;
	visualSuspensionDroop = 0.06f;
	wheelsVerticalOffset = 0.01f;
}

VehicleBurnOut_MaiMai : VehicleBurnOut_4w_RWD_Mid
{
	maxSpeedToInitiateBurnOut = 19.f;
	lateralForceMaxSpeed = 4.2f;
	lateralForceMaxAcceleration = 0.6f;
	lateralAccelForwardSpeedMaxDecimation = 0.49f;
	maxDriveWheelSlipRatio = 16.0f;
	lateralSlipRatioInfluence = 0.55f;
	maxLateralAccelSlipRatioMultipler = 0.66f;
	maxLongFrictionSlipRatioMultipler = 0.48f;
	burnOutGripBonus = 4.0f;
	maxBrakeForceModifier = 0.6f;
	minBrakeForceModifier = 0.1f;
}

VehicleDriveModelData_MaiMai : VehicleDriveModelData_Regular_Small_RWD
{
	center_of_mass_offset = ( 0.0f, -0.05f, 0.13f );
	chassis_mass = 960.0f;
	total_mass = 960.0f;
	momentOfInertia = ( 580.0f, 390.0f, 550.0f );
	airResistanceFactor = 2.0f;
	maxWheelTurnDeg = 45.f;
	wheelTurnMaxAddPerSecond = 80.f;
	wheelTurnMaxSubPerSecond = 120.f;
	turnUpdateMaxSpeedThreshold = 30.f;
	turnUpdateMaxSpeedTurnMul = 0.42f;
	wheelSetup = 
	{
		frontPreset = "Vehicle.VehicleWheelDrivingPreset_MaiMai_Front";
		backPreset = "Vehicle.VehicleWheelDrivingPreset_MaiMai_Rear";
	} : VehicleWheelDrivingSetup_4_RWD;
	driveHelpers = 
	[
		{
			type = "Vehicle.RotationLimiter_HelperType";
			maxAngularSpeedRad = 2.0;
		} : RotationLimiter, 
		{
			type = "Vehicle.HandbrakeFrictionModifier_HelperType";
			rearWheelsLatFrictionCoef = 0.85f;
		} : HandbrakeFrictionModifier_MidEngined, 
		{
			type = "Vehicle.UphillDriveHelper_HelperType";
			slopeCompensationFactor = 0.5f;
			slopeCompensationMaxAngle = 45.f;
		} : UphillDriveHelper_Standard, 
		{
			type = "Vehicle.InAirGravityModifier_HelperType";
		} : InAirGravityModifier, 
		{
			type = "Vehicle.DriveWheelsAccelerateNoise_HelperType";
			accelerationBoost = 0.1f;
		} : DriveWheelsAccelerateNoise_Basic
	];
	burnOut = "Vehicle.VehicleBurnOut_MaiMai";
}

v_standard2_makigai_maimai_quest : v_standard2_makigai_maimai
{
	savable = true;
	tags += 
	[
		"Immortal", "IgnoreImpulses"
	];
	vehDefaultState = 
	{
		DisableAllInteractions = true;
	};
}

v_standard2_makigai_maimai_poor : v_standard2_makigai_maimai
{
	visualTags = 
	[
		"Poor"
	];
	headlightColor = 
	[
		255, 230, 150, 255
	];
	randomPassengers = 
	[
		"Passengers.LowlifeDriverEntry", "Passengers.LowlifePassengerFrontEntry", "Passengers.LowlifePassengerBackEntry"
	];
	player_audio_resource = "v_car_makigai_maimai_poor";
	traffic_audio_resource = "v_car_makigai_maimai_traffic";
}

[ EP1 ]
v_standard2_makigai_maimai_poor_dogtown : v_standard2_makigai_maimai_poor
{
	[ EP1 ]
	randomPassengers = 
	[
		"Passengers.EP1StacksDriverEntry", "Passengers.EP1StacksPassengerFrontEntry"
	];
	player_audio_resource = "v_car_makigai_maimai_poor";
	traffic_audio_resource = "v_car_makigai_maimai_traffic";
}

v_standard2_makigai_maimai_premium : v_standard2_makigai_maimai
{
	visualTags = 
	[
		"Premium"
	];
	headlightColor = 
	[
		255, 255, 255, 255
	];
	randomPassengers = 
	[
		"Passengers.LowlifeDriverEntry", "Passengers.LowlifePassengerFrontEntry", "Passengers.LowlifePassengerBackEntry"
	];
}

v_standard2_makigai_maimai_gt : v_standard2_makigai_maimai
{
	visualTags = 
	[
		"Sport"
	];
	headlightColor = 
	[
		255, 255, 255, 255
	];
	randomPassengers = 
	[
		"Passengers.CorporatDriverEntry", "Passengers.CorporatPassengerFrontEntry"
	];
	displayName = "LocKey#1611";
	vehicleUIData = 
	{
		horsepower = 126.0f;
		info = "LocKey#53555";
	} : VehicleMakigaiMaimaiUIData;
	vehDriveModelData = 
	{
		wheelTurnMaxAddPerSecond = 85.f;
		wheelTurnMaxSubPerSecond = 125.f;
		turnUpdateMaxSpeedTurnMul = 0.44f;
		wheelSetup = 
		{
			frontPreset = 
			{
				maxBrakingTorque = 70.0f;
				frictionMulLongitudinal = 0.93f;
				frictionMulLateral = 0.88f;
				tireLateralSlipEffectsMul = 0.55f;
				swaybarStiffness = 8.0f;
				springDamping = 1700;
				springReboundDamping = 1800.0f;
				springBoundDampingLowRate = 1100.0f;
				springReboundDampingLowRate = 1200.0f;
			} : VehicleWheelDrivingPreset_MaiMai_Front;
			backPreset = 
			{
				maxBrakingTorque = 60.0f;
				frictionMulLateral = 0.89f;
				swaybarStiffness = 8.5f;
				springDamping = 2100;
				springReboundDamping = 2200.0f;
				springBoundDampingLowRate = 1300.0f;
				springReboundDampingLowRate = 1400.0f;
			} : VehicleWheelDrivingPreset_MaiMai_Rear;
		} : VehicleWheelDrivingSetup_4_RWD;
		burnOut = 
		{
			minLongFrictionCoeff = 0.75f;
			burnOutGripBonus = 5.0f;
			minBrakeForceModifier = 0.05f;
		} : VehicleBurnOut_MaiMai;
	} : VehicleDriveModelData_MaiMai;
	vehEngineData = 
	{
		gearCurvesPath = "base\gameplay\vehicles\curves\engine_torque\med_peaky_na.curveset";
		engineMaxTorque = 180.f;
		fk< VehicleGear >[] gears = 
		[
			{
				minSpeed = 0.f;
				maxSpeed = 9.f;
				minEngineRPM = 800.f;
				maxEngineRPM = 4800.f;
				torqueMultiplier = 1.f;
			}, 
			{
				minSpeed = 0.f;
				maxSpeed = 7.f;
				minEngineRPM = 800.f;
				maxEngineRPM = 4600.f;
				torqueMultiplier = 1.0f;
			}, 
			{
				minSpeed = 6.f;
				maxSpeed = 13.f;
				minEngineRPM = 2200.f;
				maxEngineRPM = 4600.f;
				torqueMultiplier = 0.63f;
			}, 
			{
				minSpeed = 12.f;
				maxSpeed = 18.f;
				minEngineRPM = 2500.f;
				maxEngineRPM = 4650.f;
				torqueMultiplier = 0.47f;
			}, 
			{
				minSpeed = 17.f;
				maxSpeed = 24.f;
				minEngineRPM = 2700.f;
				maxEngineRPM = 4700.f;
				torqueMultiplier = 0.36f;
			}, 
			{
				minSpeed = 22.f;
				maxSpeed = 28.f;
				minEngineRPM = 2800.f;
				maxEngineRPM = 4750.f;
				torqueMultiplier = 0.30f;
			}, 
			{
				minSpeed = 26.5f;
				maxSpeed = 33.f;
				minEngineRPM = 3000.f;
				maxEngineRPM = 5100.f;
				torqueMultiplier = 0.25f;
			}
		];
	} : VehicleEngineData_4_Regular_Small_Peaky;
}

v_004_bubble_one : v_standard2_makigai_maimai
{
}

v_009_box_car : v_standard2_makigai_maimai
{
}

VehicleDestructionParamsMaiMai : VehicleDestructionParamsDefault_4w
{
	gridDimensions = ( 1.6f, 2.0f, 0.35f );
	gridLocalOffset = ( 0.0f, 0.0f, 0.75f );
	chargePortCenter = ( -0.707711458f, 0.730117798f, 0.488570333f );
	glass = 
	[
		{
			component = "window_f";
			effect = "damage_windshield";
			isWindshield = true;
			gridCells = 
			[
				6, 7
			];
			threshold = 0.15;
		}, 
		{
			component = "window_fl_a";
			effect = "damage_glass_fl";
			gridCells = 
			[
				4, 12
			];
			threshold = 0.1;
		}, 
		{
			component = "window_fl_b";
			effect = "damage_glass_fl_b";
			gridCells = 
			[
				4
			];
			threshold = 0.1;
		}, 
		{
			component = "window_fl_c";
			effect = "damage_glass_fl_c";
			gridCells = 
			[
				4, 12
			];
			threshold = 0.1;
		}, 
		{
			component = "window_fr_a";
			effect = "damage_glass_fr";
			gridCells = 
			[
				5, 13
			];
			threshold = 0.1;
		}, 
		{
			component = "window_fr_b";
			effect = "damage_glass_fr_b";
			gridCells = 
			[
				5
			];
			threshold = 0.1;
		}, 
		{
			component = "window_fr_c";
			effect = "damage_glass_fr_c";
			gridCells = 
			[
				5, 13
			];
			threshold = 0.1;
		}, 
		{
			component = "window_b";
			effect = "damage_glass_b";
			gridCells = 
			[
				0, 1
			];
			threshold = 0.1;
		}
	];
	detachableParts = 
	[
		{
			name = "Trunk";
			gridCells = 
			[
				4, 5
			];
			threshold = 0.7;
			components = 
			[
				"trunk_a", "trunk_a_shadow"
			];
		}, 
		{
			name = "Hood";
			gridCells = 
			[
				0, 1
			];
			threshold = 0.7;
			components = 
			[
				"hood_a", "hood_a_shadow"
			];
		}, 
		{
			name = "License_plate";
			gridCells = 
			[
				0, 1
			];
			threshold = 0.07;
			components = 
			[
				"license_plate"
			];
		}, 
		{
			name = "License_plate_f";
			gridCells = 
			[
				4, 5
			];
			threshold = 0.07;
			components = 
			[
				"license_plate_f"
			];
		}, 
		{
			name = "BumperFront";
			gridCells = 
			[
				0, 1
			];
			threshold = 0.7;
			components = 
			[
				"bumper_f_01", "bumper_f_shadow"
			];
		}, 
		{
			name = "BumperBack";
			gridCells = 
			[
				4, 5
			];
			threshold = 0.7;
			components = 
			[
				"bumper_b_01", "bumper_b_shadow"
			];
		}, 
		{
			name = "MirrorLeft_01";
			gridCells = 
			[
				4
			];
			threshold = 0.07;
			components = 
			[
				"mirror_fl_01_a", "mirror_fl_01_shadow"
			];
		}, 
		{
			name = "MirrorRight_01";
			gridCells = 
			[
				5
			];
			threshold = 0.07;
			components = 
			[
				"mirror_fr_01_b", "mirror_fr_01_shadow"
			];
		}, 
		{
			name = "DoorFrontLeft_A";
			gridCells = 
			[
				6, 7
			];
			threshold = 0.7;
			components = 
			[
				"door_fl_a", "door_fl_a_shadow", "window_fl_a"
			];
		}, 
		{
			name = "DoorFrontLeft_B";
			gridCells = 
			[
				6, 7
			];
			threshold = 0.7;
			components = 
			[
				"door_fl_b", "door_fl_b_shadow", "window_fl_b"
			];
		}, 
		{
			name = "DoorFrontLeft_C";
			gridCells = 
			[
				6, 7
			];
			threshold = 0.7;
			components = 
			[
				"door_fl_c", "door_fl_c_shadow"
			];
		}, 
		{
			name = "DoorFrontRight_A";
			gridCells = 
			[
				2, 3
			];
			threshold = 0.7;
			components = 
			[
				"door_fr_a", "door_fr_a_shadow", "window_fr_a"
			];
		}, 
		{
			name = "DoorFrontRight_B";
			gridCells = 
			[
				2, 3
			];
			threshold = 0.7;
			components = 
			[
				"door_fr_b", "door_fr_b_shadow", "window_fr_b"
			];
		}, 
		{
			name = "DoorFrontRight_C";
			gridCells = 
			[
				2, 3
			];
			threshold = 0.7;
			components = 
			[
				"door_fr_c", "door_fr_c_shadow"
			];
		}, 
		{
			name = "Spoiler_01";
			gridCells = 
			[
				8, 9
			];
			threshold = 0.4;
			components = 
			[
				"v_standard2_makigai_maimai__ext01_spoiler_gt_01", "v_standard2_makigai_maimai__ext01_spoiler_gt_01_shadow"
			];
		}
	];
	wheels = 
	[
		{
			name = "FrontLeft";
			intact = "tire_01_fl_a";
			flat = "tire_flat_01_fl_a";
		}, 
		{
			name = "FrontRight";
			intact = "tire_01_fr_a";
			flat = "tire_flat_01_fr_a";
		}, 
		{
			name = "BackRight";
			intact = "tire_01_br_a";
			flat = "tire_flat_01_br_a";
		}, 
		{
			name = "BackLeft";
			intact = "tire_01_bl_a";
			flat = "tire_flat_01_bl_a";
		}
	];
	lights = 
	[
		{
			component = "head_light_left_01";
			gridCells = 
			[
				6
			];
			threshold = 0.1f;
		}, 
		{
			component = "head_light_left_02";
			gridCells = 
			[
				6
			];
			threshold = 0.1f;
		}, 
		{
			component = "head_light_left_03";
			gridCells = 
			[
				6
			];
			threshold = 0.1f;
		}, 
		{
			component = "head_light_right_01";
			gridCells = 
			[
				7
			];
			threshold = 0.1f;
		}, 
		{
			component = "position_light_left_01";
			gridCells = 
			[
				6
			];
			threshold = 0.1f;
		}, 
		{
			component = "position_light_right_01";
			gridCells = 
			[
				7
			];
			threshold = 0.1f;
		}, 
		{
			component = "position_light_left_02";
			gridCells = 
			[
				0
			];
			threshold = 0.1f;
		}, 
		{
			component = "position_light_right_02";
			gridCells = 
			[
				1
			];
			threshold = 0.1f;
		}, 
		{
			component = "position_light_left_03";
			gridCells = 
			[
				6
			];
			threshold = 0.1f;
		}, 
		{
			component = "position_light_right_03";
			gridCells = 
			[
				7
			];
			threshold = 0.1f;
		}, 
		{
			component = "position_light_left_04";
			gridCells = 
			[
				6
			];
			threshold = 0.1f;
		}, 
		{
			component = "break_light_right_01";
			gridCells = 
			[
				1
			];
			threshold = 0.1f;
		}, 
		{
			component = "break_light_right_02";
			gridCells = 
			[
				1
			];
			threshold = 0.1f;
		}, 
		{
			component = "reverse_light_left_01";
			gridCells = 
			[
				1
			];
			threshold = 0.1f;
		}
	];
	doorDetachRules = 
	[
		{
			componentToQuery = "door_fr_b";
			doorEnumIndex = 1;
			partsToDetach = 
			[
				"DoorFrontRight_A", "DoorFrontRight_B", "MirrorRight_01"
			];
		}, 
		{
			componentToQuery = "door_fl_b";
			doorEnumIndex = 0;
			partsToDetach = 
			[
				"DoorFrontLeft_A", "DoorFrontLeft_B", "MirrorLeft_01"
			];
		}
	];
}

VehicleMakigaiMaimaiUIData : VehicleDefaultUIData
{
	productionYear = "2032-2065";
	driveLayout = "LocKey#45371";
	horsepower = 70.0f;
	mass = 880.0f;
	info = "LocKey#53552";
}

