Working MVP code for Valentines
This commit is contained in:
59
Assets/Scripts/Common/Input/SlingshotConfig.cs
Normal file
59
Assets/Scripts/Common/Input/SlingshotConfig.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Common.Input
|
||||
{
|
||||
/// <summary>
|
||||
/// Configuration for slingshot launch mechanics.
|
||||
/// Can be embedded in any minigame settings that use drag-to-launch.
|
||||
/// </summary>
|
||||
[Serializable]
|
||||
public class SlingshotConfig
|
||||
{
|
||||
[Header("Drag & Force Settings")]
|
||||
[Tooltip("Distance to reach max force")]
|
||||
public float maxDragDistance = 5f;
|
||||
|
||||
[Tooltip("Base force value")]
|
||||
public float baseLaunchForce = 20f;
|
||||
|
||||
[Tooltip("Minimum threshold (0-1)")]
|
||||
[Range(0f, 1f)]
|
||||
public float minForceMultiplier = 0.1f;
|
||||
|
||||
[Tooltip("Maximum cap (0-2, usually 1)")]
|
||||
[Range(0f, 2f)]
|
||||
public float maxForceMultiplier = 1f;
|
||||
|
||||
[Header("Trajectory Settings")]
|
||||
[Tooltip("Number of preview points")]
|
||||
public int trajectoryPoints = 50;
|
||||
|
||||
[Tooltip("Time between points")]
|
||||
public float trajectoryTimeStep = 0.1f;
|
||||
|
||||
[Tooltip("Show trajectory after launch (seconds, 0 = no lock)")]
|
||||
public float trajectoryLockDuration = 2f;
|
||||
|
||||
[Header("Input")]
|
||||
[Tooltip("Auto-register with InputManager on Enable()")]
|
||||
public bool autoRegisterInput = true;
|
||||
|
||||
/// <summary>
|
||||
/// Calculate force from drag parameters using configured multipliers
|
||||
/// </summary>
|
||||
public float CalculateForce(float dragDistance, float dragRatio)
|
||||
{
|
||||
return dragRatio * maxForceMultiplier * baseLaunchForce;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Calculate minimum force threshold
|
||||
/// </summary>
|
||||
public float GetMinForce()
|
||||
{
|
||||
return baseLaunchForce * minForceMultiplier;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user