diff --git a/Audio/Song1.ogg b/Audio/Song1.ogg index 93d476e9..13a40f45 100644 Binary files a/Audio/Song1.ogg and b/Audio/Song1.ogg differ diff --git a/Audio/Song1.ogg.import b/Audio/Song1.ogg.import index 8e5bd965..d11e42d0 100644 --- a/Audio/Song1.ogg.import +++ b/Audio/Song1.ogg.import @@ -2,7 +2,7 @@ importer="oggvorbisstr" type="AudioStreamOggVorbis" -uid="uid://iq0xxe5cggs8" +uid="uid://be5ial13ynf3o" path="res://.godot/imported/Song1.ogg-1d785b9ae3fbaa8393048e39af66ed86.oggvorbisstr" [deps] diff --git a/Audio/Song2.ogg b/Audio/Song2.ogg index 063129c0..2301351a 100644 Binary files a/Audio/Song2.ogg and b/Audio/Song2.ogg differ diff --git a/Audio/Song2.ogg.import b/Audio/Song2.ogg.import index cfb5f8ae..650cf1ff 100644 --- a/Audio/Song2.ogg.import +++ b/Audio/Song2.ogg.import @@ -2,7 +2,7 @@ importer="oggvorbisstr" type="AudioStreamOggVorbis" -uid="uid://ckis6k6vuums" +uid="uid://dxp7blovqh1ba" path="res://.godot/imported/Song2.ogg-b95c04f3512de6fa42e0f9c35aba831f.oggvorbisstr" [deps] diff --git a/Audio/Song3.ogg b/Audio/Song3.ogg index 58f8028c..2b45aec4 100644 Binary files a/Audio/Song3.ogg and b/Audio/Song3.ogg differ diff --git a/Audio/Song3.ogg.import b/Audio/Song3.ogg.import index 3d5d0664..01d60072 100644 --- a/Audio/Song3.ogg.import +++ b/Audio/Song3.ogg.import @@ -2,7 +2,7 @@ importer="oggvorbisstr" type="AudioStreamOggVorbis" -uid="uid://ceyw5mjkem2pi" +uid="uid://d4nmixdl8xoic" path="res://.godot/imported/Song3.ogg-d4e6a5f1a550561df18989fb495ba591.oggvorbisstr" [deps] diff --git a/Audio/midi/Song2.mid b/Audio/midi/Song2.mid index c657321a..41bf314c 100644 Binary files a/Audio/midi/Song2.mid and b/Audio/midi/Song2.mid differ diff --git a/Classes/MidiMaestro/MidiMaestro.cs b/Classes/MidiMaestro/MidiMaestro.cs index 882d47d9..180117d6 100644 --- a/Classes/MidiMaestro/MidiMaestro.cs +++ b/Classes/MidiMaestro/MidiMaestro.cs @@ -18,8 +18,6 @@ public partial class MidiMaestro : Resource //private MidiFile strippedSong; - private SongData songData; - //The path relative to the Audio folder. Will change later public MidiMaestro(string filePath) { @@ -60,19 +58,6 @@ public MidiMaestro(string filePath) break; } } - - //Populate the song data - songData = new SongData - { - //TODO: Allow for changes in this data - Bpm = 120, - //Fudge the numbers a bit if we have a really short song - SongLength = - _midiFile.GetDuration().Seconds < 20 - ? 20 - : _midiFile.GetDuration().Seconds, - NumLoops = 1, - }; } public midiNoteInfo[] GetNotes(ArrowType arrowType) @@ -86,11 +71,6 @@ public midiNoteInfo[] GetNotes(ArrowType arrowType) _ => throw new ArgumentOutOfRangeException(nameof(arrowType), arrowType, null), }; } - - public SongData GetSongData() - { - return songData; - } } //A facade to wrap the midi notes. This is a simple class that wraps a Note object from the DryWetMidi library. diff --git a/README.md b/README.md index 1dae4551..c672191d 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,9 @@ Current team members include: #### Attributions: Music: - Title Screen: [Crystal Cave - Cynicmusic](https://opengameart.org/content/crystal-cave-song18) -- Battle Song 1: [gameMusic - Magntron](https://freesound.org/people/Magntron/sounds/335571/) +- Boss Song 1: [gameMusic - Magntron](https://freesound.org/people/Magntron/sounds/335571/) +- Battle Song 1: [Piano loops 181 - josefpres](https://freesound.org/people/josefpres/sounds/789998/) +- Battle Song 2: [Dark loops 220 - josefpres](https://freesound.org/people/josefpres/sounds/620230/) Images: - Input Buttons: [inputKeys - Nicolae (Xelu) Berbece](https://thoseawesomeguys.com/prompts/) diff --git a/scenes/ChartViewport/scripts/ChartManager.cs b/scenes/ChartViewport/scripts/ChartManager.cs index 9d568094..e6ebc908 100644 --- a/scenes/ChartViewport/scripts/ChartManager.cs +++ b/scenes/ChartViewport/scripts/ChartManager.cs @@ -28,6 +28,7 @@ public partial class ChartManager : SubViewportContainer //Might move this to be song specific? For now, should never go below ~2000, else visual break because there isn't enough room to loop. private double ChartLength = 5000; private double _loopLen; //secs + public double TrueBeatsPerLoop; public int BeatsPerLoop; public void OnNotePressed(ArrowType type) @@ -44,7 +45,8 @@ public void PrepChart(SongData songData) { _loopLen = songData.SongLength / songData.NumLoops; TimeKeeper.LoopLength = (float)_loopLen; - BeatsPerLoop = (int)(_loopLen / (60f / songData.Bpm)); + TrueBeatsPerLoop = (_loopLen / (60f / songData.Bpm)); + BeatsPerLoop = (int)TrueBeatsPerLoop; ChartLength = (float)_loopLen * (float)Math.Floor(ChartLength / _loopLen); TimeKeeper.ChartLength = (float)ChartLength; TimeKeeper.Bpm = songData.Bpm; @@ -112,7 +114,7 @@ private NoteArrow CreateNote(ArrowType arrow, Note note, int beat = 0) newArrow.OutlineSprite.Modulate = IH.Arrows[(int)arrow].Color; _arrowGroup.AddChild(newArrow); - newArrow.Bounds = (float)((double)beat / BeatsPerLoop * (ChartLength / 2)); + newArrow.Bounds = (float)(beat / TrueBeatsPerLoop * (ChartLength / 2)); newArrow.Position += Vector2.Right * newArrow.Bounds * 10; //temporary fix for notes spawning and instantly calling loop from originating at 0,0 return newArrow; } diff --git a/scenes/ChestScene/ChestScene.tscn b/scenes/ChestScene/ChestScene.tscn index b2d7bd07..8ca2051e 100644 --- a/scenes/ChestScene/ChestScene.tscn +++ b/scenes/ChestScene/ChestScene.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=9 format=3 uid="uid://c4vmb783d3v03"] [ext_resource type="Script" path="res://scenes/ChestScene/ChestScene.cs" id="1_ardd2"] -[ext_resource type="AudioStream" uid="uid://iq0xxe5cggs8" path="res://Audio/Song1.ogg" id="2_x78jo"] +[ext_resource type="AudioStream" uid="uid://be5ial13ynf3o" path="res://Audio/Song1.ogg" id="2_x78jo"] [ext_resource type="Script" path="res://scenes/UI/scripts/MenuModule.cs" id="3_5uvci"] [ext_resource type="Shader" path="res://scenes/ChartViewport/StarryNight.gdshader" id="5_whthd"] [ext_resource type="Texture2D" uid="uid://qhwve7fik4do" path="res://scenes/BattleDirector/assets/bgupdate.png" id="6_37nar"]