HeavenStudio/Assets/Scripts/Games/SamuraiSliceNtr/NtrSamuraiChild.cs
minenice55 b1fab52ad9
Integration of Jukebox Library (#451) (#457)
* add Jukebox library

todo:
- saving / loading of new format
- inferrence of unknown data like past versions
- move the temporary float casts to proper use of double
- make sound related functions take double for timing
- inform people that the Jukebox sound player was renamed to SoundByte lol

* make sound, input scheduling, and super curve use double precision

* successfully load charts

* editor works again

v1 riqs can be saved and loaded

* first tempo and volume markers are unmovable

fix loading of charts' easing values

* use gsync / freesync

* update Jukebox refs to SoundByte

* game events use double part 1

Air Rally - Glee Club converted

* don't load song if chart load fails

* finish conversion of all minigames

* remove editor waveform toggle

* timeline now respects added song offset length

clear cache files on app close
prepped notes for dsp sync

* update timeline length when offset changed

* update to latest Jukebox

* make error panel object in global game manager

* improve conductor music scheduling

* added error message box

fix first game events sometimes not playing
2023-06-10 19:17:06 +00:00

54 lines
1.3 KiB
C#

using DG.Tweening;
using NaughtyBezierCurves;
using HeavenStudio.Util;
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
namespace HeavenStudio.Games.Scripts_NtrSamurai
{
public class NtrSamuraiChild : MonoBehaviour
{
[Header("Transforms")]
public Transform DebrisPosL;
public Transform DebrisPosR;
public Transform WalkPos0;
public Transform WalkPos1;
[Header("Objects")]
public Animator anim;
public double startBeat = double.MinValue;
public bool isMain = true;
// Update is called once per frame
void Update()
{
if (!isMain)
{
var cond = Conductor.instance;
float prog = Conductor.instance.GetPositionFromBeat(startBeat + 1f, 4f);
if (prog >= 0)
{
Walk();
transform.position = Vector3.Lerp(WalkPos0.position, WalkPos1.position, prog);
if (prog >= 1f)
{
GameObject.Destroy(gameObject);
}
}
}
}
public void Bop()
{
anim.Play("ChildBeat", -1, 0);
}
public void Walk()
{
anim.Play("ChildWalk");
}
}
}