using System.Collections;
using System.Collections.Generic;
using UnityEngine;

namespace Saltosion.OneWeapon.Effects {
    public class Bobbing : MonoBehaviour {

        public Transform BobbedTransform;

        [Range(0, 1)]
        public float BobbingMultiplier = 1;
        public float BobbingGravity = 0.8f;
        public float BobbingLaunchSpeed = 0.12f;

        public float BobbingFrequency = 0;

        public Vector2 BobbingDirection = new Vector2(0, 1);

        private float BobbingSpeed;

        private float CurrentBobbingState = 0;

        void Update() {
            BobbingFrequency = (BobbingLaunchSpeed * 2) / BobbingGravity;

            BobbingSpeed -= (BobbingGravity / 10 * Time.deltaTime);
            if (CurrentBobbingState <= 0) {
                BobbingSpeed = (BobbingLaunchSpeed / 10);
            }
            CurrentBobbingState += BobbingSpeed * BobbingMultiplier * Time.deltaTime * 100.0f;

            BobbedTransform.localPosition = BobbingDirection * CurrentBobbingState * BobbingMultiplier;

        }
    }
}
