Beispiel #1
0
    public IEnumerator LaunchShake(Transform target_transform)
    {
        ShakeCounter counter = new ShakeCounter();

        counter._transformations_number = 0;
        Camera _camera_component = target_transform.GetComponent <Camera>();

        counter._transformations_number++;
        StartCoroutine(LaunchMoveX(target_transform, counter));

        counter._transformations_number++;
        StartCoroutine(LaunchMoveY(target_transform, counter));

        counter._transformations_number++;
        StartCoroutine(LaunchScaleX(target_transform, counter));

        counter._transformations_number++;
        StartCoroutine(LaunchScaleY(target_transform, counter));

        counter._transformations_number++;
        StartCoroutine(LaunchRotate(target_transform, counter));
        if (_camera_component != null)
        {
            counter._transformations_number++;
            StartCoroutine(LaunchCameraZoom(target_transform, _camera_component, counter));
        }
        while (counter._transformations_number != 0)
        {
            yield return(null);
        }
    }
Beispiel #2
0
    IEnumerator LaunchScaleX(Transform target_transform, ShakeCounter counter)
    {
        float prev_delta = 0;

        yield return(StartCoroutine(CurveHelper.LaunchCurveApply(scale_x_curve, (time, val) => {
            float delta = (Random.Range(-random_scale_x, random_scale_x) + val) * value_ratio;
            target_transform.localScale = new Vector3(target_transform.localScale.x - prev_delta + delta, target_transform.localScale.y, target_transform.localScale.z);
            prev_delta = delta;
        }, time_ratio)));

        target_transform.localScale = new Vector3(target_transform.localScale.x - prev_delta, target_transform.localScale.y, target_transform.localScale.z);
        counter._transformations_number--;
    }
Beispiel #3
0
    IEnumerator LaunchMoveY(Transform target_transform, ShakeCounter counter)
    {
        float prev_delta = 0;

        yield return(StartCoroutine(CurveHelper.LaunchCurveApply(pos_y_curve, (time, val) => {
            float delta = (Random.Range(-random_pos_y, random_pos_y) + val) * value_ratio;
            target_transform.position = new Vector3(target_transform.position.x, target_transform.position.y - prev_delta + delta, target_transform.position.z);
            prev_delta = delta;
        }, time_ratio)));

        target_transform.position = new Vector3(target_transform.position.x, target_transform.position.y - prev_delta, target_transform.position.z);
        counter._transformations_number--;
    }
Beispiel #4
0
    IEnumerator LaunchRotate(Transform target_transform, ShakeCounter counter)
    {
        float prev_delta = 0;

        yield return(StartCoroutine(CurveHelper.LaunchCurveApply(angle_curve, (time, val) => {
            float delta = (Random.Range(-random_angle, random_angle) + val) * value_ratio;
            target_transform.localEulerAngles = new Vector3(target_transform.localEulerAngles.x, target_transform.localEulerAngles.y, target_transform.localEulerAngles.z - prev_delta + delta);
            prev_delta = delta;
        }, time_ratio)));

        target_transform.localEulerAngles = new Vector3(target_transform.localEulerAngles.x, target_transform.localEulerAngles.y, target_transform.localEulerAngles.z - prev_delta);
        counter._transformations_number--;
    }
Beispiel #5
0
    IEnumerator LaunchCameraZoom(Transform target_transform, Camera _camera_component, ShakeCounter counter)
    {
        float prev_value = _camera_component.orthographicSize;

        yield return(StartCoroutine(CurveHelper.LaunchCurveApply(cameras_zoom_curve, (time, val) => {
            _camera_component.orthographicSize = Mathf.Lerp(0f, prev_value, val);
        }, time_ratio)));

        _camera_component.orthographicSize = prev_value;
        counter._transformations_number--;
    }
Beispiel #6
0
		public Attack(BattleManager manager, PhaseShare share, bool isPlayer)
			: base(manager, share, isPlayer)
		{
			shakeCounter = new ShakeCounter(manager);
		}