HeavenStudio/Assets/Scripts/Games/Minigame.cs

86 lines
2.4 KiB
C#
Raw Normal View History

2021-12-24 03:36:16 +00:00
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
2022-03-14 14:21:05 +00:00
namespace HeavenStudio.Games
2021-12-24 03:36:16 +00:00
{
public class Minigame : MonoBehaviour
{
public static float earlyTime = 0.84f, perfectTime = 0.91f, lateTime = 1.09f, endTime = 1.15f;
2021-12-29 06:52:48 +00:00
public List<Minigame.Eligible> EligibleHits = new List<Minigame.Eligible>();
[System.Serializable]
public class Eligible
{
public GameObject gameObject;
public bool early;
public bool perfect;
public bool late;
2022-01-23 03:40:53 +00:00
public bool notPerfect() { return early || late; }
public bool eligible() { return early || perfect || late; }
public float createBeat;
}
2021-12-25 02:37:03 +00:00
// hopefully these will fix the lowbpm problem
public static float EarlyTime()
{
return earlyTime;
}
public static float PerfectTime()
{
return perfectTime;
}
public static float LateTime()
{
return lateTime;
}
public static float EndTime()
{
return endTime;
}
2021-12-24 03:36:16 +00:00
public int firstEnable = 0;
public virtual void OnGameSwitch(float beat)
2021-12-24 03:36:16 +00:00
{
2022-03-07 02:37:27 +00:00
//Below is a template that can be used for handling previous entities.
//section below is if you only want to look at entities that overlap the game switch
2022-03-07 02:37:27 +00:00
/*
List<Beatmap.Entity> prevEntities = GameManager.instance.Beatmap.entities.FindAll(c => c.beat <= beat && c.datamodel.Split(0) == [insert game name]);
foreach(Beatmap.Entity entity in prevEntities)
{
if(entity.beat + entity.length >= beat)
{
2022-03-07 02:37:27 +00:00
EventCaller.instance.CallEvent(entity, true);
}
}
2022-03-07 02:37:27 +00:00
*/
2021-12-24 03:36:16 +00:00
}
public virtual void OnTimeChange()
{
}
public int MultipleEventsAtOnce()
{
int sameTime = 0;
for (int i = 0; i < EligibleHits.Count; i++)
{
float createBeat = EligibleHits[i].createBeat;
if (EligibleHits.FindAll(c => c.createBeat == createBeat).Count > 0)
{
sameTime += 1;
}
}
if (sameTime == 0 && EligibleHits.Count > 0)
sameTime = 1;
return sameTime;
}
2021-12-24 03:36:16 +00:00
}
}