Score now works
This commit is contained in:
parent
27082a717c
commit
40d5446e81
@ -28,6 +28,8 @@ public class Game : MonoBehaviour
|
|||||||
|
|
||||||
List<Note> activeNotes = new();
|
List<Note> activeNotes = new();
|
||||||
|
|
||||||
|
public int Score { get; set; } = 0;
|
||||||
|
|
||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
menu = GetComponent<MainMenu>();
|
menu = GetComponent<MainMenu>();
|
||||||
@ -54,8 +56,7 @@ public class Game : MonoBehaviour
|
|||||||
|
|
||||||
foreach (Note note in newNotes)
|
foreach (Note note in newNotes)
|
||||||
{
|
{
|
||||||
Debug.Log("Removing note");
|
allNotes.Remove(note);
|
||||||
Debug.Log(allNotes.Remove(note));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
menu.GameElem.UpdateNotes(newNotes);
|
menu.GameElem.UpdateNotes(newNotes);
|
||||||
|
@ -8,6 +8,7 @@ using UnityEngine;
|
|||||||
using UnityEngine.UIElements;
|
using UnityEngine.UIElements;
|
||||||
|
|
||||||
using BangerTypes;
|
using BangerTypes;
|
||||||
|
using TagLib.Ape;
|
||||||
|
|
||||||
namespace UITypes
|
namespace UITypes
|
||||||
{
|
{
|
||||||
@ -120,7 +121,7 @@ namespace UITypes
|
|||||||
foreach (var note in notes)
|
foreach (var note in notes)
|
||||||
{
|
{
|
||||||
NoteElement el = new();
|
NoteElement el = new();
|
||||||
el.Init(note, leftUpcomingColumn.resolvedStyle.height);
|
el.Init(note);
|
||||||
activeNoteElements.Add(el);
|
activeNoteElements.Add(el);
|
||||||
|
|
||||||
if (note.a == "left")
|
if (note.a == "left")
|
||||||
@ -146,7 +147,7 @@ namespace UITypes
|
|||||||
{
|
{
|
||||||
foreach (var note in activeNoteElements)
|
foreach (var note in activeNoteElements)
|
||||||
{
|
{
|
||||||
note.UpdateMargin(timestamp);
|
note.UpdateMargin(timestamp, leftUpcomingColumn.resolvedStyle.height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,6 +158,29 @@ namespace UITypes
|
|||||||
if (note.CheckSelf(timestamp))
|
if (note.CheckSelf(timestamp))
|
||||||
{
|
{
|
||||||
activeNoteElements.Remove(note);
|
activeNoteElements.Remove(note);
|
||||||
|
|
||||||
|
if (note.note.a == "left")
|
||||||
|
{
|
||||||
|
leftUpcomingColumn.Remove(note);
|
||||||
|
}
|
||||||
|
else if (note.note.a == "right")
|
||||||
|
{
|
||||||
|
rightUpcomingColumn.Remove(note);
|
||||||
|
}
|
||||||
|
else if (note.note.a == "up")
|
||||||
|
{
|
||||||
|
upUpcomingColumn.Remove(note);
|
||||||
|
}
|
||||||
|
else if (note.note.a == "down")
|
||||||
|
{
|
||||||
|
downUpcomingColumn.Remove(note);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
AddScore(-1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -174,6 +198,58 @@ namespace UITypes
|
|||||||
if (button == null) return;
|
if (button == null) return;
|
||||||
|
|
||||||
button.AddToClassList("GameButtonClicked");
|
button.AddToClassList("GameButtonClicked");
|
||||||
|
|
||||||
|
CheckNotesOnClick(ev.keyCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
void CheckNotesOnClick(KeyCode keyCode)
|
||||||
|
{
|
||||||
|
List<NoteElement> activeNotesInCurrentColumn = activeNoteElements
|
||||||
|
.Where(note => note.note.a + "arrow" == keyCode.ToString().ToLower())
|
||||||
|
.OrderBy(note => note.note.t)
|
||||||
|
.ToList();
|
||||||
|
|
||||||
|
foreach (NoteElement note in activeNotesInCurrentColumn)
|
||||||
|
{
|
||||||
|
float scoreTime = note.note.t - game.manager.source.time;
|
||||||
|
if (scoreTime < 0.1f)
|
||||||
|
{
|
||||||
|
AddScore(scoreTime);
|
||||||
|
activeNoteElements.Remove(note);
|
||||||
|
|
||||||
|
if (note.note.a == "left")
|
||||||
|
{
|
||||||
|
leftUpcomingColumn.Remove(note);
|
||||||
|
}
|
||||||
|
else if (note.note.a == "right")
|
||||||
|
{
|
||||||
|
rightUpcomingColumn.Remove(note);
|
||||||
|
}
|
||||||
|
else if (note.note.a == "up")
|
||||||
|
{
|
||||||
|
upUpcomingColumn.Remove(note);
|
||||||
|
}
|
||||||
|
else if (note.note.a == "down")
|
||||||
|
{
|
||||||
|
downUpcomingColumn.Remove(note);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
AddScore(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddScore(float accuracy)
|
||||||
|
{
|
||||||
|
if (accuracy == -1)
|
||||||
|
{
|
||||||
|
game.Score -= 10;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
game.Score += 100 - (int) (accuracy * 1000);
|
||||||
|
}
|
||||||
|
score.text = "SCORE: " + game.Score.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnKeyUp(KeyUpEvent ev)
|
void OnKeyUp(KeyUpEvent ev)
|
||||||
|
@ -16,9 +16,8 @@ namespace UITypes
|
|||||||
public Note note;
|
public Note note;
|
||||||
public float ColumnHeight;
|
public float ColumnHeight;
|
||||||
|
|
||||||
public void Init(Note note, float columnHeight)
|
public void Init(Note note)
|
||||||
{
|
{
|
||||||
this.ColumnHeight = columnHeight;
|
|
||||||
AddToClassList("NoteElement");
|
AddToClassList("NoteElement");
|
||||||
|
|
||||||
AddToClassList(note.a[..1].ToUpper() + note.a[1..] + "Note");
|
AddToClassList(note.a[..1].ToUpper() + note.a[1..] + "Note");
|
||||||
@ -26,9 +25,9 @@ namespace UITypes
|
|||||||
this.note = note;
|
this.note = note;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void UpdateMargin(float timestamp)
|
public void UpdateMargin(float timestamp, float ColumnHeight)
|
||||||
{
|
{
|
||||||
style.marginTop = new(ColumnHeight - (note.t - timestamp) * 1000 - resolvedStyle.height);
|
style.marginTop = new(((note.t - timestamp) * -1000) - resolvedStyle.height + ColumnHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CheckSelf(float timestamp)
|
public bool CheckSelf(float timestamp)
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.GameButtonClicked {
|
.GameButtonClicked {
|
||||||
background-color: red;
|
background-color: gray;
|
||||||
scale: 1.1;
|
scale: 1.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user