improved interaction between roll cue and platform heights

This commit is contained in:
Rapandrasmus 2023-06-26 22:48:30 +02:00
parent de4216af66
commit f36c8ec10a
2 changed files with 7 additions and 3 deletions

View file

@ -191,8 +191,11 @@ namespace HeavenStudio.Games
{
instance = this;
List<RiqEntity> heightEvents = EventCaller.GetAllInGameManagerList("nightWalkAgb", new string[] { "height" });
List<RiqEntity> rollEvents = EventCaller.GetAllInGameManagerList("nightWalkAgb", new string[] { "roll" });
var validRollEvents = rollEvents.FindAll(x => IsValidRollCue(x));
foreach (var heightEvent in heightEvents)
{
if (validRollEvents.Count > 0 && validRollEvents.Find(x => heightEvent.beat >= x.beat + 1 && heightEvent.beat < x.beat + 2) != null) continue;
heightEntityEvents.Add(new HeightEvent()
{
beat = heightEvent.beat,
@ -219,7 +222,6 @@ namespace HeavenStudio.Games
{
fishBeats.Add(fishEvent.beat);
}
List<RiqEntity> rollEvents = EventCaller.GetAllInGameManagerList("nightWalkAgb", new string[] { "roll" });
foreach (var rollEvent in rollEvents)
{
rollBeats.Add(rollEvent.beat);

View file

@ -50,8 +50,10 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk
public void StartInput(double beat, double hitBeat)
{
if (game == null) game = AgbNightWalk.instance;
if (anim == null) anim = GetComponent<Animator>();
isRollPlatform = game.RollOnBeat(hitBeat);
lastAdditionalHeightInUnits = game.FindHeightUnitsAtBeat(hitBeat);
additionalHeightInUnits = game.FindHeightUnitsAtBeat(hitBeat + 1);
additionalHeightInUnits = game.FindHeightUnitsAtBeat(hitBeat + (isRollPlatform ? 2 : 1));
additionalHeight = lastAdditionalHeightInUnits * handler.heightAmount;
nextPlatformIsSameHeight = lastAdditionalHeightInUnits == additionalHeightInUnits;
isFinalBlock = hitBeat == game.endBeat + 1;
@ -62,7 +64,7 @@ namespace HeavenStudio.Games.Scripts_AgbNightWalk
isFish = game.FishOnBeat(endBeat);
fish.gameObject.SetActive(isFish);
isEndEvent = game.endBeat == endBeat;
isRollPlatform = game.RollOnBeat(endBeat);
rollPlatform.transform.parent.gameObject.SetActive(isRollPlatform);
rollPlatformLong.SetActive(nextPlatformIsSameHeight && !isFinalBlock && !isEndEvent);
if (isEndEvent)