From 0d77e31baad133d3088d455e4d6955a27ce504ba Mon Sep 17 00:00:00 2001 From: LifeHckr Date: Tue, 4 Feb 2025 20:21:53 -0800 Subject: [PATCH 01/28] Created Puppets Initial base template for battle entities Also some file reorganization --- {scripts => Globals}/TimeKeeper.cs | 0 project.godot | 2 +- scenes/BattleDirector/HealthBar.cs | 48 ------------------- scenes/BattleDirector/HealthBar.tscn | 47 ------------------ scenes/BattleDirector/NotePlacementBar.tscn | 2 +- scenes/BattleDirector/TextParticle.tscn | 2 +- .../{ => scripts}/BattleDirector.cs | 28 +++++++---- .../{ => scripts}/NotePlacementBar.cs | 0 .../{ => scripts}/TextParticle.cs | 0 scenes/BattleDirector/test_battle_scene.tscn | 21 +------- scenes/Puppets/HealthBar.tscn | 27 +++++++++++ scenes/Puppets/scripts/HealthBar.cs | 31 ++++++++++++ scenes/Puppets/scripts/Puppet_Template.cs | 46 ++++++++++++++++++ scenes/main.tscn | 3 -- scripts/Main.cs | 5 -- 15 files changed, 127 insertions(+), 135 deletions(-) rename {scripts => Globals}/TimeKeeper.cs (100%) delete mode 100644 scenes/BattleDirector/HealthBar.cs delete mode 100644 scenes/BattleDirector/HealthBar.tscn rename scenes/BattleDirector/{ => scripts}/BattleDirector.cs (91%) rename scenes/BattleDirector/{ => scripts}/NotePlacementBar.cs (100%) rename scenes/BattleDirector/{ => scripts}/TextParticle.cs (100%) create mode 100644 scenes/Puppets/HealthBar.tscn create mode 100644 scenes/Puppets/scripts/HealthBar.cs create mode 100644 scenes/Puppets/scripts/Puppet_Template.cs delete mode 100644 scenes/main.tscn delete mode 100644 scripts/Main.cs diff --git a/scripts/TimeKeeper.cs b/Globals/TimeKeeper.cs similarity index 100% rename from scripts/TimeKeeper.cs rename to Globals/TimeKeeper.cs diff --git a/project.godot b/project.godot index ba8f8e20..9ebf0d8e 100644 --- a/project.godot +++ b/project.godot @@ -17,7 +17,7 @@ config/icon="res://icon.svg" [autoload] -TimeKeeper="*res://scripts/TimeKeeper.cs" +TimeKeeper="*res://Globals/TimeKeeper.cs" [display] diff --git a/scenes/BattleDirector/HealthBar.cs b/scenes/BattleDirector/HealthBar.cs deleted file mode 100644 index c0ad3e2e..00000000 --- a/scenes/BattleDirector/HealthBar.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using Godot; - -public partial class HealthBar : Control -{ - const int MaxHealth = 100; - int _health = MaxHealth; - - [Export] - public TextureProgressBar PlayerHealthBar; - - [Export] - public Texture2D SpriteText; - - //we can change this to a Texture Progress bar once we have art assets for it - - - public override void _Ready() - { - if (PlayerHealthBar != null) - { - SetHealth(MaxHealth, MaxHealth); - } - GetNode("Sprite2D").Texture = SpriteText; - } - - public void SetHealth(int max, int current) - { - PlayerHealthBar.MaxValue = max; - PlayerHealthBar.Value = current; - _updateHealthBar(); - } - - private void _updateHealthBar() - { - PlayerHealthBar.Value = _health; - } - - public void TakeDamage(int damage) - { - _health -= damage; - if (_health <= 0) - { - GD.Print("You are dead"); - } - _updateHealthBar(); - } -} diff --git a/scenes/BattleDirector/HealthBar.tscn b/scenes/BattleDirector/HealthBar.tscn deleted file mode 100644 index 0f72abd7..00000000 --- a/scenes/BattleDirector/HealthBar.tscn +++ /dev/null @@ -1,47 +0,0 @@ -[gd_scene load_steps=8 format=3 uid="uid://bgomxovxs7sr8"] - -[ext_resource type="Script" path="res://scenes/BattleDirector/HealthBar.cs" id="1_b1t4i"] - -[sub_resource type="Gradient" id="Gradient_ve5ki"] -colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1) - -[sub_resource type="GradientTexture2D" id="GradientTexture2D_ti0cv"] -gradient = SubResource("Gradient_ve5ki") -width = 150 -height = 20 - -[sub_resource type="Gradient" id="Gradient_soqhm"] -colors = PackedColorArray(0, 1, 0.0999999, 1, 1, 1, 1, 1) - -[sub_resource type="GradientTexture2D" id="GradientTexture2D_r4hau"] -gradient = SubResource("Gradient_soqhm") -width = 146 -height = 16 - -[sub_resource type="Gradient" id="Gradient_58kj0"] -offsets = PackedFloat32Array(1) -colors = PackedColorArray(1, 1, 1, 1) - -[sub_resource type="GradientTexture2D" id="GradientTexture2D_wwca1"] -gradient = SubResource("Gradient_58kj0") - -[node name="Control" type="Control" node_paths=PackedStringArray("PlayerHealthBar")] -layout_mode = 3 -anchors_preset = 0 -offset_right = 40.0 -offset_bottom = 40.0 -script = ExtResource("1_b1t4i") -PlayerHealthBar = NodePath("ProgressBar") - -[node name="ProgressBar" type="TextureProgressBar" parent="."] -layout_mode = 0 -offset_right = 150.0 -offset_bottom = 20.0 -texture_under = SubResource("GradientTexture2D_ti0cv") -texture_progress = SubResource("GradientTexture2D_r4hau") -texture_progress_offset = Vector2(2, 2) - -[node name="Sprite2D" type="Sprite2D" parent="."] -position = Vector2(75, 86) -scale = Vector2(2, 2) -texture = SubResource("GradientTexture2D_wwca1") diff --git a/scenes/BattleDirector/NotePlacementBar.tscn b/scenes/BattleDirector/NotePlacementBar.tscn index c8dc9577..2b61556e 100644 --- a/scenes/BattleDirector/NotePlacementBar.tscn +++ b/scenes/BattleDirector/NotePlacementBar.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=6 format=3 uid="uid://duhiilcv4tat3"] -[ext_resource type="Script" path="res://scenes/BattleDirector/NotePlacementBar.cs" id="1_456es"] +[ext_resource type="Script" path="res://scenes/BattleDirector/scripts/NotePlacementBar.cs" id="1_456es"] [sub_resource type="Gradient" id="Gradient_0u6yv"] colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1) diff --git a/scenes/BattleDirector/TextParticle.tscn b/scenes/BattleDirector/TextParticle.tscn index 6491a671..9fffb00b 100644 --- a/scenes/BattleDirector/TextParticle.tscn +++ b/scenes/BattleDirector/TextParticle.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=2 format=3 uid="uid://bd23wwbv7i4gg"] -[ext_resource type="Script" path="res://scenes/BattleDirector/TextParticle.cs" id="1_j0ufq"] +[ext_resource type="Script" path="res://scenes/BattleDirector/scripts/TextParticle.cs" id="1_j0ufq"] [node name="Control" type="Label"] anchors_preset = -1 diff --git a/scenes/BattleDirector/BattleDirector.cs b/scenes/BattleDirector/scripts/BattleDirector.cs similarity index 91% rename from scenes/BattleDirector/BattleDirector.cs rename to scenes/BattleDirector/scripts/BattleDirector.cs index 6de6518c..87e12c1d 100644 --- a/scenes/BattleDirector/BattleDirector.cs +++ b/scenes/BattleDirector/scripts/BattleDirector.cs @@ -11,8 +11,8 @@ public partial class BattleDirector : Node2D { #region Declarations - private HealthBar Player; - private HealthBar Enemy; + private Puppet_Template Player; + private Puppet_Template Enemy; [Export] private ChartManager CM; @@ -120,11 +120,24 @@ public override void _Ready() SongLength = Audio.Stream.GetLength(), NumLoops = 5, }; + + Player = new Puppet_Template(); + AddChild(Player); + Player.Init(GD.Load("res://scenes/BattleDirector/assets/Character1.png"), "Player"); + Player.SetPosition(new Vector2(80, 0)); + Player.Sprite.Position += Vector2.Down * 30; //TEMP + + Enemy = new Puppet_Template(); + Enemy.SetPosition(new Vector2(400, 0)); + AddChild(Enemy); + Enemy.Init(GD.Load("res://scenes/BattleDirector/assets/Enemy1.png"), "Enemy"); + Enemy.Sprite.Scale *= 2; var timer = GetTree().CreateTimer(AudioServer.GetTimeToNextMix()); timer.Timeout += Begin; } + //TODO: This will all change private void Begin() { CM.PrepChart(_curSong); @@ -136,19 +149,14 @@ private void Begin() new NoteArrow[CM.BeatsPerLoop], }; AddExampleNotes(); - - Player = GetNode("PlayerHP"); - Player.GetNode("Sprite2D").Scale *= .5f; //TEMP - Player.GetNode("Sprite2D").Position += Vector2.Down * 30; //TEMP - Enemy = GetNode("EnemyHP"); - + //TEMP var enemTween = CreateTween(); enemTween - .TweenProperty(Enemy.GetNode("Sprite2D"), "position", Vector2.Down * 5, 1f) + .TweenProperty(Enemy.Sprite, "position", Vector2.Down * 5, 1f) .AsRelative(); enemTween - .TweenProperty(Enemy.GetNode("Sprite2D"), "position", Vector2.Up * 5, 1f) + .TweenProperty(Enemy.Sprite, "position", Vector2.Up * 5, 1f) .AsRelative(); enemTween.SetTrans(Tween.TransitionType.Spring); enemTween.SetEase(Tween.EaseType.In); diff --git a/scenes/BattleDirector/NotePlacementBar.cs b/scenes/BattleDirector/scripts/NotePlacementBar.cs similarity index 100% rename from scenes/BattleDirector/NotePlacementBar.cs rename to scenes/BattleDirector/scripts/NotePlacementBar.cs diff --git a/scenes/BattleDirector/TextParticle.cs b/scenes/BattleDirector/scripts/TextParticle.cs similarity index 100% rename from scenes/BattleDirector/TextParticle.cs rename to scenes/BattleDirector/scripts/TextParticle.cs diff --git a/scenes/BattleDirector/test_battle_scene.tscn b/scenes/BattleDirector/test_battle_scene.tscn index 772d4487..a15a2189 100644 --- a/scenes/BattleDirector/test_battle_scene.tscn +++ b/scenes/BattleDirector/test_battle_scene.tscn @@ -1,11 +1,8 @@ -[gd_scene load_steps=9 format=3 uid="uid://b0mrgr7h0ty1y"] +[gd_scene load_steps=6 format=3 uid="uid://b0mrgr7h0ty1y"] -[ext_resource type="Script" path="res://scenes/BattleDirector/BattleDirector.cs" id="1_cwqqr"] +[ext_resource type="Script" path="res://scenes/BattleDirector/scripts/BattleDirector.cs" id="1_cwqqr"] [ext_resource type="PackedScene" uid="uid://dfevfib11kou1" path="res://scenes/ChartViewport/ChartViewport.tscn" id="2_cupb3"] -[ext_resource type="PackedScene" uid="uid://bgomxovxs7sr8" path="res://scenes/BattleDirector/HealthBar.tscn" id="3_pp0u0"] [ext_resource type="Texture2D" uid="uid://ci0g72j8q4ec2" path="res://scenes/BattleDirector/assets/CoolBG.jpg" id="4_13o87"] -[ext_resource type="Texture2D" uid="uid://b6fkei0i83vte" path="res://scenes/BattleDirector/assets/Character1.png" id="5_elveq"] -[ext_resource type="Texture2D" uid="uid://veedngaorx3l" path="res://scenes/BattleDirector/assets/Enemy1.png" id="6_0k4pw"] [ext_resource type="PackedScene" uid="uid://duhiilcv4tat3" path="res://scenes/BattleDirector/NotePlacementBar.tscn" id="7_3ko4g"] [ext_resource type="AudioStream" uid="uid://cv6lqjj6lu36h" path="res://Audio/335571__magntron__gamemusic_120bpm.mp3" id="8_caqms"] @@ -40,20 +37,6 @@ offset_right = 673.0 offset_bottom = 360.0 color = Color(0.165656, 0.165656, 0.165656, 1) -[node name="PlayerHP" parent="." instance=ExtResource("3_pp0u0")] -offset_left = 92.0 -offset_top = 8.0 -offset_right = 132.0 -offset_bottom = 48.0 -SpriteText = ExtResource("5_elveq") - -[node name="EnemyHP" parent="." instance=ExtResource("3_pp0u0")] -offset_left = 403.0 -offset_top = 8.0 -offset_right = 443.0 -offset_bottom = 52.0 -SpriteText = ExtResource("6_0k4pw") - [node name="NotePlacementBar" parent="." instance=ExtResource("7_3ko4g")] offset_left = 16.0 offset_top = 164.0 diff --git a/scenes/Puppets/HealthBar.tscn b/scenes/Puppets/HealthBar.tscn new file mode 100644 index 00000000..203235a8 --- /dev/null +++ b/scenes/Puppets/HealthBar.tscn @@ -0,0 +1,27 @@ +[gd_scene load_steps=6 format=3 uid="uid://bgomxovxs7sr8"] + +[ext_resource type="Script" path="res://scenes/Puppets/scripts/HealthBar.cs" id="1_b1t4i"] + +[sub_resource type="Gradient" id="Gradient_ve5ki"] +colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_ti0cv"] +gradient = SubResource("Gradient_ve5ki") +width = 150 +height = 20 + +[sub_resource type="Gradient" id="Gradient_soqhm"] +colors = PackedColorArray(0, 1, 0.0999999, 1, 1, 1, 1, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_r4hau"] +gradient = SubResource("Gradient_soqhm") +width = 146 +height = 16 + +[node name="ProgressBar" type="TextureProgressBar"] +offset_right = 150.0 +offset_bottom = 20.0 +texture_under = SubResource("GradientTexture2D_ti0cv") +texture_progress = SubResource("GradientTexture2D_r4hau") +texture_progress_offset = Vector2(2, 2) +script = ExtResource("1_b1t4i") diff --git a/scenes/Puppets/scripts/HealthBar.cs b/scenes/Puppets/scripts/HealthBar.cs new file mode 100644 index 00000000..cfd757ba --- /dev/null +++ b/scenes/Puppets/scripts/HealthBar.cs @@ -0,0 +1,31 @@ +using System; +using Godot; + +public partial class HealthBar : TextureProgressBar +{ + public override void _Ready() + { + Value = MaxValue; + } + + //initializes health + public void SetHealth(int max, int current) + { + MaxValue = max; + Value = current; + } + + //For effects changes max hp, and changes hp by a similar amount + public void ChangeMax(int change) + { + MaxValue += change; + Value += change; + } + + //Changes hp value, for damage or heal, returns resulting hp. + public int ChangeHP(int amount) + { + Value += amount; + return (int)Value; + } +} diff --git a/scenes/Puppets/scripts/Puppet_Template.cs b/scenes/Puppets/scripts/Puppet_Template.cs new file mode 100644 index 00000000..e8e1ae3c --- /dev/null +++ b/scenes/Puppets/scripts/Puppet_Template.cs @@ -0,0 +1,46 @@ +using System; +using Godot; + +/** Essentially a battle entity. Has HP and can be healed or damaged. + * TODO: Look into interfaces + */ +public partial class Puppet_Template : Node2D +{ + private HealthBar _healthBar; + public Sprite2D Sprite = new Sprite2D(); + + private int _maxHealth = 100; + private int _currentHealth = 100; + + //Stats would go here. + + public string UniqName = ""; //Eventually make subclasses/scenes/real stuff + + public override void _Ready() + { + _healthBar = GD.Load("res://scenes/Puppets/HealthBar.tscn") + .Instantiate(); + AddChild(_healthBar); + + Sprite.Position = new Vector2(75, 86); + AddChild(Sprite); //TODO: DECIDE Whether to replace with packedscenes/robust subclasses + + _healthBar.SetHealth(_maxHealth, _currentHealth); + } + + public void Init(Texture2D texture, string name) + { + Sprite.Texture = texture; + UniqName = name; + } + + public void TakeDamage(int amount) + { + _healthBar.ChangeHP(-amount); + } + + public void Heal(int amount) + { + _healthBar.ChangeHP(amount); + } +} diff --git a/scenes/main.tscn b/scenes/main.tscn deleted file mode 100644 index 03a5f3fa..00000000 --- a/scenes/main.tscn +++ /dev/null @@ -1,3 +0,0 @@ -[gd_scene format=3 uid="uid://diq2m6va1x52k"] - -[node name="Main" type="Node2D"] diff --git a/scripts/Main.cs b/scripts/Main.cs deleted file mode 100644 index 52278fa9..00000000 --- a/scripts/Main.cs +++ /dev/null @@ -1,5 +0,0 @@ -using System; -using Godot; -using static InputHandler; - -public partial class Main : Node2D { } From fc5174928c1d3e761c2e3a7fc5c6d2b658a5d16d Mon Sep 17 00:00:00 2001 From: LifeHckr Date: Tue, 4 Feb 2025 22:03:24 -0800 Subject: [PATCH 02/28] Refactoring Moved enums and structs to common namespace Removed note resource class needing beat and type (moving forward note data shouldn't hold that.) Added IsNoteActive() Removed unused code and parameters Removed unnecessary textparticle packedscene --- Classes/Note.cs | 14 ++- Globals/FunkEngineNameSpace.cs | 19 +++ scenes/BattleDirector/TextParticle.tscn | 9 -- .../BattleDirector/scripts/BattleDirector.cs | 119 ++++++++---------- .../scripts/NotePlacementBar.cs | 35 +++--- scenes/BattleDirector/scripts/TextParticle.cs | 3 - scenes/ChartViewport/ChartManager.cs | 10 +- scenes/NoteManager/scripts/InputHandler.cs | 10 +- scenes/NoteManager/scripts/NoteArrow.cs | 16 ++- 9 files changed, 106 insertions(+), 129 deletions(-) create mode 100644 Globals/FunkEngineNameSpace.cs delete mode 100644 scenes/BattleDirector/TextParticle.tscn diff --git a/Classes/Note.cs b/Classes/Note.cs index 193bbc3f..e0a82e12 100644 --- a/Classes/Note.cs +++ b/Classes/Note.cs @@ -1,4 +1,5 @@ using System; +using FunkEngine; using Godot; /** @@ -7,12 +8,15 @@ */ public partial class Note : Resource { - public int Beat; - public NoteArrow.ArrowType Type; + private string _effect; - public Note(NoteArrow.ArrowType type = NoteArrow.ArrowType.Up, int beat = 0) + public Note(string effect = "") { - Beat = beat; - Type = type; + _effect = effect; + } + + public string GetEffect() + { + return _effect; } } diff --git a/Globals/FunkEngineNameSpace.cs b/Globals/FunkEngineNameSpace.cs new file mode 100644 index 00000000..1b0eaa9c --- /dev/null +++ b/Globals/FunkEngineNameSpace.cs @@ -0,0 +1,19 @@ +using Godot; + +namespace FunkEngine; + +public enum ArrowType +{ + Up = 0, + Down = 1, + Left = 2, + Right = 3, +} + +public struct ArrowData +{ + public Color Color; + public string Key; + public NoteChecker Node; + public ArrowType Type; +} diff --git a/scenes/BattleDirector/TextParticle.tscn b/scenes/BattleDirector/TextParticle.tscn deleted file mode 100644 index 9fffb00b..00000000 --- a/scenes/BattleDirector/TextParticle.tscn +++ /dev/null @@ -1,9 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://bd23wwbv7i4gg"] - -[ext_resource type="Script" path="res://scenes/BattleDirector/scripts/TextParticle.cs" id="1_j0ufq"] - -[node name="Control" type="Label"] -anchors_preset = -1 -anchor_right = 0.08 -text = "900000" -script = ExtResource("1_j0ufq") diff --git a/scenes/BattleDirector/scripts/BattleDirector.cs b/scenes/BattleDirector/scripts/BattleDirector.cs index 87e12c1d..29d72e7f 100644 --- a/scenes/BattleDirector/scripts/BattleDirector.cs +++ b/scenes/BattleDirector/scripts/BattleDirector.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Diagnostics; using System.Linq; +using FunkEngine; using Godot; /** @@ -26,13 +27,7 @@ public partial class BattleDirector : Node2D [Export] private AudioStreamPlayer Audio; - private double _timingInterval = .1; //secs - - [Signal] - public delegate void PlayerDamageEventHandler(int damage); - - [Signal] - public delegate void EnemyDamageEventHandler(int damage); + private double _timingInterval = .1; //secs, maybe make somewhat note dependent private SongData _curSong; @@ -58,7 +53,7 @@ public struct SongData private Note[] _notes = Array.Empty(); //Returns first note of lane without modifying lane data - private Note GetNoteAt(NoteArrow.ArrowType dir, int beat) + private Note GetNoteAt(ArrowType dir, int beat) { return GetNote(_laneData[(int)dir][beat]); } @@ -69,19 +64,23 @@ private Note GetNote(NoteArrow arrow) return _notes[arrow.NoteIdx]; } - private bool AddNoteToLane(Note note, bool isActive = true) + private bool IsNoteActive(ArrowType type, int beat) + { + return _laneData[(int)type][beat] != null && _laneData[(int)type][beat].IsActive; + } + + private bool AddNoteToLane(ArrowType type, int beat, bool isActive = true) { - note.Beat %= CM.BeatsPerLoop; - //Don't add dupe notes - if (note.Beat == 0 || _notes.Any(nt => nt.Type == note.Type && nt.Beat == note.Beat)) + beat %= CM.BeatsPerLoop; + //Don't add dupe notes //Beat at 0 is too messy. + if (beat == 0 || _laneData[(int)type][beat] != null) { - return false; //Beat at 0 is too messy. + return false; } - _notes = _notes.Append(note).ToArray(); //Get noteArrow from CM - var arrow = CM.AddArrowToLane(note, _notes.Length - 1); + var arrow = CM.AddArrowToLane(type, beat, _notes.Length - 1); arrow.IsActive = isActive; - _laneData[(int)note.Type][note.Beat] = arrow; + _laneData[(int)type][beat] = arrow; return true; } #endregion @@ -92,23 +91,19 @@ private void AddExampleNotes() GD.Print(CM.BeatsPerLoop); for (int i = 1; i < 15; i++) { - Note exampleNote = new Note(NoteArrow.ArrowType.Up, i * 4); - AddNoteToLane(exampleNote); + AddNoteToLane(ArrowType.Up, i * 4); } for (int i = 1; i < 15; i++) { - Note exampleNote = new Note(NoteArrow.ArrowType.Left, 4 * i + 1); - AddNoteToLane(exampleNote); + AddNoteToLane(ArrowType.Left, 4 * i + 1); } for (int i = 0; i < 10; i++) { - Note exampleNote = new Note(NoteArrow.ArrowType.Right, 3 * i + 32); - AddNoteToLane(exampleNote); + AddNoteToLane(ArrowType.Right, 3 * i + 32); } for (int i = 0; i < 3; i++) { - Note exampleNote = new Note(NoteArrow.ArrowType.Down, 8 * i + 16); - AddNoteToLane(exampleNote); + AddNoteToLane(ArrowType.Down, 8 * i + 16); } } @@ -120,13 +115,16 @@ public override void _Ready() SongLength = Audio.Stream.GetLength(), NumLoops = 5, }; - + Player = new Puppet_Template(); AddChild(Player); - Player.Init(GD.Load("res://scenes/BattleDirector/assets/Character1.png"), "Player"); + Player.Init( + GD.Load("res://scenes/BattleDirector/assets/Character1.png"), + "Player" + ); Player.SetPosition(new Vector2(80, 0)); Player.Sprite.Position += Vector2.Down * 30; //TEMP - + Enemy = new Puppet_Template(); Enemy.SetPosition(new Vector2(400, 0)); AddChild(Enemy); @@ -149,15 +147,11 @@ private void Begin() new NoteArrow[CM.BeatsPerLoop], }; AddExampleNotes(); - + //TEMP var enemTween = CreateTween(); - enemTween - .TweenProperty(Enemy.Sprite, "position", Vector2.Down * 5, 1f) - .AsRelative(); - enemTween - .TweenProperty(Enemy.Sprite, "position", Vector2.Up * 5, 1f) - .AsRelative(); + enemTween.TweenProperty(Enemy.Sprite, "position", Vector2.Down * 5, 1f).AsRelative(); + enemTween.TweenProperty(Enemy.Sprite, "position", Vector2.Up * 5, 1f).AsRelative(); enemTween.SetTrans(Tween.TransitionType.Spring); enemTween.SetEase(Tween.EaseType.In); enemTween.SetLoops(); @@ -176,12 +170,12 @@ public override void _Process(double delta) } #region Input&Timing - private void OnNotePressed(NoteArrow.ArrowType type) + private void OnNotePressed(ArrowType type) { CheckNoteTiming(type); } - private void OnNoteReleased(NoteArrow.ArrowType arrowType) { } + private void OnNoteReleased(ArrowType arrowType) { } //Check all lanes for misses from missed inputs private void CheckMiss() @@ -190,49 +184,39 @@ private void CheckMiss() double realBeat = TimeKeeper.CurrentTime / (60 / (double)_curSong.Bpm) % CM.BeatsPerLoop; for (int i = 0; i < _laneData.Length; i++) { - if ( - _laneLastBeat[i] < Math.Floor(realBeat) - || (_laneLastBeat[i] == CM.BeatsPerLoop - 1 && Math.Floor(realBeat) == 0) - ) - { //If above, a note has been missed - //GD.Print("Last beat " + _laneLastBeat[i]); - if ( - _laneData[i][_laneLastBeat[i]] == null - || !_laneData[i][_laneLastBeat[i]].IsActive - ) - { - _laneLastBeat[i] = (_laneLastBeat[i] + 1) % CM.BeatsPerLoop; - continue; - } - //Note exists and has been missed - _laneData[i][_laneLastBeat[i]].NoteHit(); - HandleTiming((NoteArrow.ArrowType)i, 1); + if (!(_laneLastBeat[i] < Math.Floor(realBeat))) + continue; + if (!IsNoteActive((ArrowType)i, _laneLastBeat[i])) + { _laneLastBeat[i] = (_laneLastBeat[i] + 1) % CM.BeatsPerLoop; + continue; } + //Note exists and has been missed + _laneData[i][_laneLastBeat[i]].NoteHit(); + HandleTiming(1); + _laneLastBeat[i] = (_laneLastBeat[i] + 1) % CM.BeatsPerLoop; } } - private void CheckNoteTiming(NoteArrow.ArrowType type) + private void CheckNoteTiming(ArrowType type) { double realBeat = TimeKeeper.CurrentTime / (60 / (double)_curSong.Bpm) % CM.BeatsPerLoop; int curBeat = (int)Math.Round(realBeat); GD.Print("Cur beat " + curBeat + "Real: " + realBeat.ToString("#.###")); - if ( - _laneData[(int)type][curBeat % CM.BeatsPerLoop] == null - || !_laneData[(int)type][curBeat % CM.BeatsPerLoop].IsActive - ) + if (_laneData[(int)type][curBeat % CM.BeatsPerLoop] == null) { - _laneLastBeat[(int)type] = (curBeat) % CM.BeatsPerLoop; PlayerAddNote(type, curBeat); return; } + if (!_laneData[(int)type][curBeat % CM.BeatsPerLoop].IsActive) + return; double beatDif = Math.Abs(realBeat - curBeat); _laneData[(int)type][curBeat % CM.BeatsPerLoop].NoteHit(); _laneLastBeat[(int)type] = (curBeat) % CM.BeatsPerLoop; - HandleTiming(type, beatDif); + HandleTiming(beatDif); } - private void HandleTiming(NoteArrow.ArrowType type, double beatDif) + private void HandleTiming(double beatDif) { if (beatDif < _timingInterval * 1) { @@ -265,21 +249,16 @@ private void HandleTiming(NoteArrow.ArrowType type, double beatDif) } #endregion - private void PlayerAddNote(NoteArrow.ArrowType type, int beat) + private void PlayerAddNote(ArrowType type, int beat) { // can also add some sort of keybind here to also have pressed // in case the user just presses the note too early and spawns a note - GD.Print( - $"Player trying to place {type} typed note at beat: " - + beat - + " Verdict: " - + NotePlacementBar.CanPlaceNote() - ); + GD.Print($"Player trying to place {type} typed note at beat: " + beat); if (NotePlacementBar.CanPlaceNote()) { - Note exampleNote = new Note(type, beat % CM.BeatsPerLoop); - if (AddNoteToLane(exampleNote, false)) + if (AddNoteToLane(type, beat % CM.BeatsPerLoop, false)) NotePlacementBar.PlacedNote(); + GD.Print("Note Placed."); } } } diff --git a/scenes/BattleDirector/scripts/NotePlacementBar.cs b/scenes/BattleDirector/scripts/NotePlacementBar.cs index d86a3c9a..4313979f 100644 --- a/scenes/BattleDirector/scripts/NotePlacementBar.cs +++ b/scenes/BattleDirector/scripts/NotePlacementBar.cs @@ -4,8 +4,8 @@ public partial class NotePlacementBar : Node { const int MaxValue = 80; - int currentBarValue; - int currentCombo; + private int _currentBarValue; + private int _currentCombo; int comboMult; int notesToIncreaseCombo; @@ -19,36 +19,33 @@ public partial class NotePlacementBar : Node public override void _Ready() { notePlacementBar.MaxValue = MaxValue; - currentBarValue = 0; - currentCombo = 0; + _currentBarValue = 0; + _currentCombo = 0; comboMult = 1; notesToIncreaseCombo = 4; } public void ComboText(string text) { - var feedbackScene = ResourceLoader.Load( - "res://scenes/BattleDirector/TextParticle.tscn" - ); - TextParticle newText = feedbackScene.Instantiate(); + TextParticle newText = new TextParticle(); AddChild(newText); - newText.Text = text + $" {currentCombo}"; + newText.Text = text + $" {_currentCombo}"; } // Hitting a note increases combo, combo mult, and note placement bar public void HitNote() { - currentCombo++; + _currentCombo++; DetermineComboMult(); - currentBarValue += comboMult; - UpdateNotePlacementBar(currentBarValue); + _currentBarValue += comboMult; + UpdateNotePlacementBar(_currentBarValue); UpdateComboMultText(); } // Missing a note resets combo public void MissNote() { - currentCombo = 0; + _currentCombo = 0; DetermineComboMult(); UpdateComboMultText(); } @@ -56,26 +53,26 @@ public void MissNote() // Placing a note resets the note placement bar public void PlacedNote() { - currentBarValue = 0; - UpdateNotePlacementBar(currentBarValue); + _currentBarValue = 0; + UpdateNotePlacementBar(_currentBarValue); } public bool CanPlaceNote() { - return currentBarValue >= MaxValue; + return _currentBarValue >= MaxValue; } private void DetermineComboMult() { - comboMult = currentCombo / notesToIncreaseCombo + 1; + comboMult = _currentCombo / notesToIncreaseCombo + 1; } - public void UpdateNotePlacementBar(int newValue) + private void UpdateNotePlacementBar(int newValue) { notePlacementBar.Value = newValue; } - public void UpdateComboMultText() + private void UpdateComboMultText() { currentComboMultText.Text = $"x{comboMult.ToString()}"; } diff --git a/scenes/BattleDirector/scripts/TextParticle.cs b/scenes/BattleDirector/scripts/TextParticle.cs index 273d4967..905c93a2 100644 --- a/scenes/BattleDirector/scripts/TextParticle.cs +++ b/scenes/BattleDirector/scripts/TextParticle.cs @@ -17,7 +17,4 @@ public override void _Ready() tween.SetParallel(false); tween.TweenCallback(Callable.From(QueueFree)); } - - // Called every frame. 'delta' is the elapsed time since the previous frame. - public override void _Process(double delta) { } } diff --git a/scenes/ChartViewport/ChartManager.cs b/scenes/ChartViewport/ChartManager.cs index 4ecae9e4..5702a521 100644 --- a/scenes/ChartViewport/ChartManager.cs +++ b/scenes/ChartViewport/ChartManager.cs @@ -1,7 +1,7 @@ using System; using System.Linq; +using FunkEngine; using Godot; -using ArrowType = NoteArrow.ArrowType; /** * @class ChartManager @@ -98,10 +98,10 @@ private void TweenArrows(Vector2 scale) } } - public NoteArrow AddArrowToLane(Note note, int noteIdx) + public NoteArrow AddArrowToLane(ArrowType type, int beat, int noteIdx) { - var newNote = CreateNote(note.Type, note.Beat); - CreateNote(note.Type, note.Beat + BeatsPerLoop); //Create a dummy arrow for looping visuals + var newNote = CreateNote(type, beat); + CreateNote(type, beat + BeatsPerLoop); //Create a dummy arrow for looping visuals newNote.NoteIdx = noteIdx; return newNote; } @@ -110,7 +110,7 @@ private NoteArrow CreateNote(ArrowType arrow, int beat = 0) { var noteScene = ResourceLoader.Load("res://scenes/NoteManager/note.tscn"); NoteArrow newArrow = noteScene.Instantiate(); - newArrow.Init(IH.Arrows[(int)arrow]); + newArrow.Init(IH.Arrows[(int)arrow], beat); _arrowGroup.AddChild(newArrow); newArrow.Bounds = (float)((double)beat / BeatsPerLoop * (ChartLength / 2)); diff --git a/scenes/NoteManager/scripts/InputHandler.cs b/scenes/NoteManager/scripts/InputHandler.cs index 466c346a..b1961d4d 100644 --- a/scenes/NoteManager/scripts/InputHandler.cs +++ b/scenes/NoteManager/scripts/InputHandler.cs @@ -1,7 +1,7 @@ using System; using System.Collections.Generic; +using FunkEngine; using Godot; -using ArrowType = NoteArrow.ArrowType; /** * @class InputHandler @@ -15,14 +15,6 @@ public partial class InputHandler : Node2D [Signal] public delegate void NoteReleasedEventHandler(ArrowType arrowType); - public struct ArrowData - { - public Color Color; - public string Key; - public NoteChecker Node; - public ArrowType Type; - } - public ArrowData[] Arrows = new ArrowData[] { new ArrowData() diff --git a/scenes/NoteManager/scripts/NoteArrow.cs b/scenes/NoteManager/scripts/NoteArrow.cs index 934ed28b..d5f0b48b 100644 --- a/scenes/NoteManager/scripts/NoteArrow.cs +++ b/scenes/NoteManager/scripts/NoteArrow.cs @@ -1,3 +1,4 @@ +using FunkEngine; using Godot; /** @@ -6,22 +7,19 @@ */ public partial class NoteArrow : Sprite2D { //TextRect caused issues later :) - public enum ArrowType - { - Up = 0, - Down = 1, - Left = 2, - Right = 3, - } - public int NoteIdx; + public ArrowType Type; + public int Beat; public float Bounds; public bool IsActive; - public void Init(InputHandler.ArrowData parentArrowData) + public void Init(ArrowData parentArrowData, int beat) { ZIndex = 1; + Type = parentArrowData.Type; + Beat = beat; + SelfModulate = parentArrowData.Color; Position += Vector2.Down * (parentArrowData.Node.GlobalPosition.Y); RotationDegrees = parentArrowData.Node.RotationDegrees; From aba3e033827b1747d9c09237dc5639ca107c8ce0 Mon Sep 17 00:00:00 2001 From: Rmojarro1 <48000819+Rmojarro1@users.noreply.github.com> Date: Thu, 6 Feb 2025 16:05:24 -0800 Subject: [PATCH 03/28] Added main menu with transition to battle and exit Made a scene with two buttons; one will transition to our test battle scene, the other exits the game. The battle scene now has a button in the upper left that will return to the main menu. Makes use of a SceneChange script, which allows for a path to be set for the button in the inspector(doesn't need quotation marks), or exit to make the button quit the game. I noticed a infinite loop warning when exiting battle scene (the tweens don;t seem to stop if we exit), had to make minor change to ChartManager with an exitTree function to stop the tweens when we leave --- project.godot | 2 +- scenes/BattleDirector/test_battle_scene.tscn | 17 +++++++++- scenes/ChartViewport/ChartManager.cs | 11 ++++++ scenes/TestTransition/testTransition.tscn | 33 ++++++++++++++++++ scripts/SceneChange.cs | 35 ++++++++++++++++++++ 5 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 scenes/TestTransition/testTransition.tscn create mode 100644 scripts/SceneChange.cs diff --git a/project.godot b/project.godot index ba8f8e20..1d9a4983 100644 --- a/project.godot +++ b/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Funk Engine" -run/main_scene="res://scenes/BattleDirector/test_battle_scene.tscn" +run/main_scene="res://scenes/TestTransition/testTransition.tscn" config/features=PackedStringArray("4.3", "C#", "Forward Plus") config/icon="res://icon.svg" diff --git a/scenes/BattleDirector/test_battle_scene.tscn b/scenes/BattleDirector/test_battle_scene.tscn index 772d4487..8c6ffbae 100644 --- a/scenes/BattleDirector/test_battle_scene.tscn +++ b/scenes/BattleDirector/test_battle_scene.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://b0mrgr7h0ty1y"] +[gd_scene load_steps=10 format=3 uid="uid://b0mrgr7h0ty1y"] [ext_resource type="Script" path="res://scenes/BattleDirector/BattleDirector.cs" id="1_cwqqr"] [ext_resource type="PackedScene" uid="uid://dfevfib11kou1" path="res://scenes/ChartViewport/ChartViewport.tscn" id="2_cupb3"] @@ -8,6 +8,7 @@ [ext_resource type="Texture2D" uid="uid://veedngaorx3l" path="res://scenes/BattleDirector/assets/Enemy1.png" id="6_0k4pw"] [ext_resource type="PackedScene" uid="uid://duhiilcv4tat3" path="res://scenes/BattleDirector/NotePlacementBar.tscn" id="7_3ko4g"] [ext_resource type="AudioStream" uid="uid://cv6lqjj6lu36h" path="res://Audio/335571__magntron__gamemusic_120bpm.mp3" id="8_caqms"] +[ext_resource type="Script" path="res://scripts/SceneChange.cs" id="9_bxa6e"] [node name="ProtoBattleDirector" type="Node2D" node_paths=PackedStringArray("CM", "IH", "NotePlacementBar", "Audio")] script = ExtResource("1_cwqqr") @@ -59,3 +60,17 @@ offset_left = 16.0 offset_top = 164.0 offset_right = 16.0 offset_bottom = 164.0 + +[node name="Control" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="Button" type="Button" parent="Control"] +layout_mode = 0 +offset_right = 8.0 +offset_bottom = 8.0 +text = "Return to Title" +script = ExtResource("9_bxa6e") +ScenePath = "res://scenes/TestTransition/testTransition.tscn" diff --git a/scenes/ChartViewport/ChartManager.cs b/scenes/ChartViewport/ChartManager.cs index 4ecae9e4..e6f3840a 100644 --- a/scenes/ChartViewport/ChartManager.cs +++ b/scenes/ChartViewport/ChartManager.cs @@ -117,4 +117,15 @@ private NoteArrow CreateNote(ArrowType arrow, int beat = 0) newArrow.Position += Vector2.Right * newArrow.Bounds * 10; //temporary fix for notes spawning and instantly calling loop from originating at 0,0 return newArrow; } + + public override void _ExitTree() + { + GD.Print("[DEBUG] Stopping tweens before exiting the scene..."); + + foreach (var tween in GetTree().GetProcessedTweens()) + { + tween.Stop(); + GD.Print("[DEBUG] Stopped tween."); + } + } } diff --git a/scenes/TestTransition/testTransition.tscn b/scenes/TestTransition/testTransition.tscn new file mode 100644 index 00000000..6481b551 --- /dev/null +++ b/scenes/TestTransition/testTransition.tscn @@ -0,0 +1,33 @@ +[gd_scene load_steps=2 format=3 uid="uid://dbeplni2du158"] + +[ext_resource type="Script" path="res://scripts/SceneChange.cs" id="1_n6d5u"] + +[node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 0 +offset_right = 40.0 +offset_bottom = 40.0 + +[node name="Node2D" type="Node2D" parent="."] + +[node name="StartButton" type="Button" parent="."] +layout_mode = 0 +offset_left = 120.0 +offset_top = 56.0 +offset_right = 128.0 +offset_bottom = 64.0 +scale = Vector2(2.48, 2.48) +text = "start battle" +script = ExtResource("1_n6d5u") +ScenePath = "res://scenes/BattleDirector/test_battle_scene.tscn" + +[node name="ExitButton" type="Button" parent="."] +layout_mode = 0 +offset_left = 471.0 +offset_top = 95.0 +offset_right = 508.0 +offset_bottom = 126.0 +scale = Vector2(2.56, 2.56) +text = "exit" +script = ExtResource("1_n6d5u") +ScenePath = "exit" diff --git a/scripts/SceneChange.cs b/scripts/SceneChange.cs new file mode 100644 index 00000000..daaa9bd7 --- /dev/null +++ b/scripts/SceneChange.cs @@ -0,0 +1,35 @@ +using System; +using Godot; + +public partial class SceneChange : Button +{ + [Export] + public string ScenePath = ""; + + public override void _Ready() + { + Pressed += OnButtonPressed; + GD.Print($"[DEBUG] Scene Path: '{ScenePath}' (Length: {ScenePath.Length})"); + } + + private void OnButtonPressed() + { + ScenePath = ScenePath.Trim('\"'); + if (ScenePath.ToLower() == "exit") + { + GD.Print("Exiting game"); + GetTree().Quit(); + return; + } + + if (string.IsNullOrEmpty(ScenePath) || !ResourceLoader.Exists(ScenePath)) + { + GD.PrintErr($"❌ Scene not found: {ScenePath}"); + GD.Print($"[DEBUG] Trying to load: '{ScenePath}' (Length: {ScenePath.Length})"); + return; + } + + GD.Print($"✅ Loading scene: {ScenePath}"); + GetTree().ChangeSceneToFile(ScenePath); + } +} From 450197b6264e3d0565db8096ebebfbcb5d2531e8 Mon Sep 17 00:00:00 2001 From: LifeHckr Date: Thu, 6 Feb 2025 21:52:42 -0800 Subject: [PATCH 04/28] Removed placeholder arrow, fixed loop missing, added player puppet Replaced old arrow graphic with new custom one Player arrow is unique color Reverted CheckMiss(), upon looping, without input no notes would miss Player puppet with WIP player stats object. RelicTemplate class to placehold for inventory --- Classes/Note.cs | 2 ++ Classes/RelicTemplate.cs | 12 ++++++++ README.md | 2 -- scenes/BattleDirector/assets/Character1.png | Bin 2098 -> 1764 bytes .../BattleDirector/scripts/BattleDirector.cs | 29 ++++++++++++------ scenes/ChartViewport/ChartManager.cs | 22 +++++++++---- scenes/NoteManager/assets/outline_white.png | Bin 0 -> 607 bytes ...ow.png.import => outline_white.png.import} | 8 ++--- scenes/NoteManager/assets/right-arrow.png | Bin 14630 -> 0 bytes scenes/NoteManager/note.tscn | 5 ++- scenes/NoteManager/note_manager.tscn | 14 +++------ scenes/NoteManager/scripts/NoteArrow.cs | 2 +- scenes/Puppets/scripts/PlayerPuppet.cs | 12 ++++++++ scenes/Puppets/scripts/PlayerStats.cs | 10 ++++++ .../{Puppet_Template.cs => PuppetTemplate.cs} | 8 ++--- 15 files changed, 88 insertions(+), 38 deletions(-) create mode 100644 Classes/RelicTemplate.cs create mode 100644 scenes/NoteManager/assets/outline_white.png rename scenes/NoteManager/assets/{right-arrow.png.import => outline_white.png.import} (66%) delete mode 100644 scenes/NoteManager/assets/right-arrow.png create mode 100644 scenes/Puppets/scripts/PlayerPuppet.cs create mode 100644 scenes/Puppets/scripts/PlayerStats.cs rename scenes/Puppets/scripts/{Puppet_Template.cs => PuppetTemplate.cs} (86%) diff --git a/Classes/Note.cs b/Classes/Note.cs index e0a82e12..45007630 100644 --- a/Classes/Note.cs +++ b/Classes/Note.cs @@ -10,6 +10,8 @@ public partial class Note : Resource { private string _effect; + //public Puppet_Template Owner; + public Note(string effect = "") { _effect = effect; diff --git a/Classes/RelicTemplate.cs b/Classes/RelicTemplate.cs new file mode 100644 index 00000000..66c3b8a9 --- /dev/null +++ b/Classes/RelicTemplate.cs @@ -0,0 +1,12 @@ +using System; +using Godot; + +public partial class RelicTemplate : Resource +{ + public string[] EffectTags; + public string Name; + + //public Texture2D Texture + //public string Tooltip + public RelicTemplate(string Name = "", string[] EffectTags = null) { } +} diff --git a/README.md b/README.md index 727c86ea..65055df1 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,6 @@ Current team members include: #### Attributions: -Note icon: Next icons created by Pixel perfect - Flaticon - First Song: gameMusic by Magntron - freesound.org diff --git a/scenes/BattleDirector/assets/Character1.png b/scenes/BattleDirector/assets/Character1.png index 2175831dec5802513b4512dde3f20bf281f49ec6..f416d5d2a6a033de79c744b67209672636277710 100644 GIT binary patch delta 1736 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 Dx>C(G diff --git a/scenes/BattleDirector/scripts/BattleDirector.cs b/scenes/BattleDirector/scripts/BattleDirector.cs index 29d72e7f..c603a2cc 100644 --- a/scenes/BattleDirector/scripts/BattleDirector.cs +++ b/scenes/BattleDirector/scripts/BattleDirector.cs @@ -10,10 +10,11 @@ * @brief Higher priority director to manage battle effects. Can directly access managers, which should signal up to Director WIP */ public partial class BattleDirector : Node2D -{ +{ //TODO: Maybe move some Director functionality to a sub node. #region Declarations - private Puppet_Template Player; - private Puppet_Template Enemy; + //private Puppet_Template[] ActivePuppets; + private PuppetTemplate Player; + private PuppetTemplate Enemy; [Export] private ChartManager CM; @@ -78,14 +79,21 @@ private bool AddNoteToLane(ArrowType type, int beat, bool isActive = true) return false; } //Get noteArrow from CM - var arrow = CM.AddArrowToLane(type, beat, _notes.Length - 1); + NoteArrow arrow; + if (isActive) + { + arrow = CM.AddArrowToLane(type, beat, _notes.Length - 1); + } + else + { + arrow = CM.AddArrowToLane(type, beat, _notes.Length - 1, new Color(1, 0.43f, 0.26f)); + } arrow.IsActive = isActive; _laneData[(int)type][beat] = arrow; return true; } #endregion - //Creeate dummy notes private void AddExampleNotes() { GD.Print(CM.BeatsPerLoop); @@ -116,7 +124,7 @@ public override void _Ready() NumLoops = 5, }; - Player = new Puppet_Template(); + Player = new PlayerPuppet(); AddChild(Player); Player.Init( GD.Load("res://scenes/BattleDirector/assets/Character1.png"), @@ -125,7 +133,7 @@ public override void _Ready() Player.SetPosition(new Vector2(80, 0)); Player.Sprite.Position += Vector2.Down * 30; //TEMP - Enemy = new Puppet_Template(); + Enemy = new PuppetTemplate(); Enemy.SetPosition(new Vector2(400, 0)); AddChild(Enemy); Enemy.Init(GD.Load("res://scenes/BattleDirector/assets/Enemy1.png"), "Enemy"); @@ -184,9 +192,12 @@ private void CheckMiss() double realBeat = TimeKeeper.CurrentTime / (60 / (double)_curSong.Bpm) % CM.BeatsPerLoop; for (int i = 0; i < _laneData.Length; i++) { - if (!(_laneLastBeat[i] < Math.Floor(realBeat))) + if ( + !(_laneLastBeat[i] < Math.Floor(realBeat)) + && (_laneLastBeat[i] != CM.BeatsPerLoop - 1 || Math.Floor(realBeat) != 0) + ) continue; - if (!IsNoteActive((ArrowType)i, _laneLastBeat[i])) + if (_laneData[i][_laneLastBeat[i]] == null || !_laneData[i][_laneLastBeat[i]].IsActive) { _laneLastBeat[i] = (_laneLastBeat[i] + 1) % CM.BeatsPerLoop; continue; diff --git a/scenes/ChartViewport/ChartManager.cs b/scenes/ChartViewport/ChartManager.cs index 5702a521..a51ce69a 100644 --- a/scenes/ChartViewport/ChartManager.cs +++ b/scenes/ChartViewport/ChartManager.cs @@ -59,16 +59,16 @@ public void PrepChart(BattleDirector.SongData songData) tween .TweenMethod( Callable.From((Vector2 scale) => TweenArrows(scale)), - new Vector2(0.07f, 0.07f), - new Vector2(0.07f, 0.07f) * 1.25f, + Vector2.One * .8f, + Vector2.One, 60f / TimeKeeper.Bpm / 2 ) .SetEase(Tween.EaseType.Out) .SetTrans(Tween.TransitionType.Elastic); tween.TweenMethod( Callable.From((Vector2 scale) => TweenArrows(scale)), - new Vector2(0.07f, 0.07f) * 1.25f, - new Vector2(0.07f, 0.07f), + Vector2.One, + Vector2.One * .8f, 60f / TimeKeeper.Bpm / 2 ); tween.SetLoops().Play(); @@ -98,10 +98,20 @@ private void TweenArrows(Vector2 scale) } } - public NoteArrow AddArrowToLane(ArrowType type, int beat, int noteIdx) + public NoteArrow AddArrowToLane( + ArrowType type, + int beat, + int noteIdx, + Color colorOverride = default + ) { var newNote = CreateNote(type, beat); - CreateNote(type, beat + BeatsPerLoop); //Create a dummy arrow for looping visuals + var loopArrow = CreateNote(type, beat + BeatsPerLoop); //Create a dummy arrow for looping visuals + if (colorOverride != default) + { + newNote.Modulate = colorOverride; + loopArrow.Modulate = colorOverride; + } newNote.NoteIdx = noteIdx; return newNote; } diff --git a/scenes/NoteManager/assets/outline_white.png b/scenes/NoteManager/assets/outline_white.png new file mode 100644 index 0000000000000000000000000000000000000000..8dfe2e4ed1d52539ba88cc54e0d51878292a4eb8 GIT binary patch literal 607 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 Date: Fri, 7 Feb 2025 13:53:01 -0800 Subject: [PATCH 05/28] Create Effect Event system for notes and relics, Created Conductor class Created battle event interface and relic handling Moved lane and note handling into conductor BattleDirector is moving towards being more oriented towards handling battle events and handling --- Classes/Note.cs | 21 +- Classes/RelicTemplate.cs | 12 -- Classes/Relics/RelicDict.cs | 24 +++ Classes/Relics/RelicEffect.cs | 27 +++ Classes/Relics/RelicTemplate.cs | 17 ++ Globals/FunkEngineNameSpace.cs | 13 ++ .../BattleDirector/scripts/BattleDirector.cs | 181 +++++------------- scenes/BattleDirector/scripts/Conductor.cs | 149 ++++++++++++++ scenes/BattleDirector/test_battle_scene.tscn | 12 +- scenes/ChartViewport/ChartManager.cs | 2 +- scenes/NoteManager/scripts/NoteArrow.cs | 1 - scenes/Puppets/scripts/PlayerPuppet.cs | 2 +- scenes/Puppets/scripts/PlayerStats.cs | 3 +- 13 files changed, 305 insertions(+), 159 deletions(-) delete mode 100644 Classes/RelicTemplate.cs create mode 100644 Classes/Relics/RelicDict.cs create mode 100644 Classes/Relics/RelicEffect.cs create mode 100644 Classes/Relics/RelicTemplate.cs create mode 100644 scenes/BattleDirector/scripts/Conductor.cs diff --git a/Classes/Note.cs b/Classes/Note.cs index 45007630..9c08f75d 100644 --- a/Classes/Note.cs +++ b/Classes/Note.cs @@ -6,19 +6,26 @@ * @class Note * @brief Data structure class for holding data and methods for a battle time note. WIP */ -public partial class Note : Resource +public partial class Note : Resource, IBattleEvent { - private string _effect; + public PuppetTemplate Owner; + private int _baseVal; + private Action NoteEffect; - //public Puppet_Template Owner; + Note(PuppetTemplate owner, Action noteEffect, int baseVal) + { + Owner = owner; + NoteEffect = noteEffect; + _baseVal = baseVal; + } - public Note(string effect = "") + public string GetTrigger() { - _effect = effect; + return "OnHit"; } - public string GetEffect() + public void OnTrigger(BattleDirector BD) { - return _effect; + NoteEffect(BD, _baseVal); } } diff --git a/Classes/RelicTemplate.cs b/Classes/RelicTemplate.cs deleted file mode 100644 index 66c3b8a9..00000000 --- a/Classes/RelicTemplate.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using Godot; - -public partial class RelicTemplate : Resource -{ - public string[] EffectTags; - public string Name; - - //public Texture2D Texture - //public string Tooltip - public RelicTemplate(string Name = "", string[] EffectTags = null) { } -} diff --git a/Classes/Relics/RelicDict.cs b/Classes/Relics/RelicDict.cs new file mode 100644 index 00000000..ad46bb20 --- /dev/null +++ b/Classes/Relics/RelicDict.cs @@ -0,0 +1,24 @@ +using System; +using FunkEngine; +using Godot; + +public class RelicDict +{ + public static RelicTemplate[] RelicPool = new[] + { + new RelicTemplate( + "Good Vibes", + new RelicEffect[] + { + new RelicEffect( + "NotePlaced", + 5, + (director, val) => + { + director.Player.Heal(val); + } + ), + } + ), + }; +} diff --git a/Classes/Relics/RelicEffect.cs b/Classes/Relics/RelicEffect.cs new file mode 100644 index 00000000..0a60f944 --- /dev/null +++ b/Classes/Relics/RelicEffect.cs @@ -0,0 +1,27 @@ +using System; +using FunkEngine; +using Godot; + +public partial class RelicEffect : IBattleEvent +{ + private string Trigger { get; set; } + public int BaseValue; + private Action OnRelicEffect; + + public RelicEffect(string trigger, int val, Action onRelicEffect) + { + BaseValue = val; + Trigger = trigger; + OnRelicEffect = onRelicEffect; + } + + public void OnTrigger(BattleDirector battleDirector) + { + OnRelicEffect(battleDirector, BaseValue); + } + + public string GetTrigger() + { + return Trigger; + } +} diff --git a/Classes/Relics/RelicTemplate.cs b/Classes/Relics/RelicTemplate.cs new file mode 100644 index 00000000..644372a1 --- /dev/null +++ b/Classes/Relics/RelicTemplate.cs @@ -0,0 +1,17 @@ +using System; +using FunkEngine; +using Godot; + +public partial class RelicTemplate : Resource +{ + public RelicEffect[] Effects; + public string Name; + + //public Texture2D Texture + //public string Tooltip + public RelicTemplate(string Name = "", RelicEffect[] EffectTags = null) + { + Effects = EffectTags; + this.Name = Name; + } +} diff --git a/Globals/FunkEngineNameSpace.cs b/Globals/FunkEngineNameSpace.cs index 1b0eaa9c..ed2f3460 100644 --- a/Globals/FunkEngineNameSpace.cs +++ b/Globals/FunkEngineNameSpace.cs @@ -10,6 +10,13 @@ public enum ArrowType Right = 3, } +public struct SongData +{ + public int Bpm; + public double SongLength; + public int NumLoops; +} + public struct ArrowData { public Color Color; @@ -17,3 +24,9 @@ public struct ArrowData public NoteChecker Node; public ArrowType Type; } + +public interface IBattleEvent +{ + void OnTrigger(BattleDirector BD); + string GetTrigger(); +} diff --git a/scenes/BattleDirector/scripts/BattleDirector.cs b/scenes/BattleDirector/scripts/BattleDirector.cs index c603a2cc..2575bac0 100644 --- a/scenes/BattleDirector/scripts/BattleDirector.cs +++ b/scenes/BattleDirector/scripts/BattleDirector.cs @@ -12,9 +12,9 @@ public partial class BattleDirector : Node2D { //TODO: Maybe move some Director functionality to a sub node. #region Declarations - //private Puppet_Template[] ActivePuppets; - private PuppetTemplate Player; - private PuppetTemplate Enemy; + + public PlayerPuppet Player; + public PuppetTemplate Enemy; [Export] private ChartManager CM; @@ -25,6 +25,9 @@ public partial class BattleDirector : Node2D [Export] private NotePlacementBar NotePlacementBar; + [Export] + private Conductor CD; + [Export] private AudioStreamPlayer Audio; @@ -32,88 +35,24 @@ public partial class BattleDirector : Node2D private SongData _curSong; - public struct SongData - { - public int Bpm; - public double SongLength; - public int NumLoops; - } #endregion #region Note Handling - //Assume queue structure for notes in each lane. - //Can eventually make this its own structure - private NoteArrow[][] _laneData = Array.Empty(); - private int[] _laneLastBeat = new int[] - { //Temporary (hopefully) measure to bridge from note queue structure to ordered array - 0, - 0, - 0, - 0, - }; - private Note[] _notes = Array.Empty(); - - //Returns first note of lane without modifying lane data - private Note GetNoteAt(ArrowType dir, int beat) - { - return GetNote(_laneData[(int)dir][beat]); - } - - //Get note of a note arrow - private Note GetNote(NoteArrow arrow) - { - return _notes[arrow.NoteIdx]; - } - - private bool IsNoteActive(ArrowType type, int beat) - { - return _laneData[(int)type][beat] != null && _laneData[(int)type][beat].IsActive; - } - - private bool AddNoteToLane(ArrowType type, int beat, bool isActive = true) + private void PlayerAddNote(ArrowType type, int beat) { - beat %= CM.BeatsPerLoop; - //Don't add dupe notes //Beat at 0 is too messy. - if (beat == 0 || _laneData[(int)type][beat] != null) - { - return false; - } - //Get noteArrow from CM - NoteArrow arrow; - if (isActive) - { - arrow = CM.AddArrowToLane(type, beat, _notes.Length - 1); - } - else + GD.Print($"Player trying to place {type} typed note at beat: " + beat); + if (!NotePlacementBar.CanPlaceNote()) + return; + if (CD.AddNoteToLane(type, beat % CM.BeatsPerLoop, false)) { - arrow = CM.AddArrowToLane(type, beat, _notes.Length - 1, new Color(1, 0.43f, 0.26f)); + NotePlacementBar.PlacedNote(); + NotePlaced?.Invoke(this); + GD.Print("Note Placed."); } - arrow.IsActive = isActive; - _laneData[(int)type][beat] = arrow; - return true; } #endregion - private void AddExampleNotes() - { - GD.Print(CM.BeatsPerLoop); - for (int i = 1; i < 15; i++) - { - AddNoteToLane(ArrowType.Up, i * 4); - } - for (int i = 1; i < 15; i++) - { - AddNoteToLane(ArrowType.Left, 4 * i + 1); - } - for (int i = 0; i < 10; i++) - { - AddNoteToLane(ArrowType.Right, 3 * i + 32); - } - for (int i = 0; i < 3; i++) - { - AddNoteToLane(ArrowType.Down, 8 * i + 16); - } - } + #region Initialization public override void _Ready() { @@ -123,6 +62,7 @@ public override void _Ready() SongLength = Audio.Stream.GetLength(), NumLoops = 5, }; + TimeKeeper.Bpm = _curSong.Bpm; Player = new PlayerPuppet(); AddChild(Player); @@ -132,6 +72,7 @@ public override void _Ready() ); Player.SetPosition(new Vector2(80, 0)); Player.Sprite.Position += Vector2.Down * 30; //TEMP + EventizeRelics(); Enemy = new PuppetTemplate(); Enemy.SetPosition(new Vector2(400, 0)); @@ -147,14 +88,9 @@ public override void _Ready() private void Begin() { CM.PrepChart(_curSong); - _laneData = new NoteArrow[][] - { - new NoteArrow[CM.BeatsPerLoop], - new NoteArrow[CM.BeatsPerLoop], - new NoteArrow[CM.BeatsPerLoop], - new NoteArrow[CM.BeatsPerLoop], - }; - AddExampleNotes(); + CD.Prep(); + CD.AddExampleNotes(); + CD.TimedInput += OnTimedInput; //TEMP var enemTween = CreateTween(); @@ -174,61 +110,27 @@ private void Begin() public override void _Process(double delta) { TimeKeeper.CurrentTime = Audio.GetPlaybackPosition(); - CheckMiss(); + CD.CheckMiss(); } + #endregion #region Input&Timing private void OnNotePressed(ArrowType type) { - CheckNoteTiming(type); + CD.CheckNoteTiming(type); } private void OnNoteReleased(ArrowType arrowType) { } - //Check all lanes for misses from missed inputs - private void CheckMiss() - { - //On current beat, if prev beat is active and not inputted - double realBeat = TimeKeeper.CurrentTime / (60 / (double)_curSong.Bpm) % CM.BeatsPerLoop; - for (int i = 0; i < _laneData.Length; i++) - { - if ( - !(_laneLastBeat[i] < Math.Floor(realBeat)) - && (_laneLastBeat[i] != CM.BeatsPerLoop - 1 || Math.Floor(realBeat) != 0) - ) - continue; - if (_laneData[i][_laneLastBeat[i]] == null || !_laneData[i][_laneLastBeat[i]].IsActive) - { - _laneLastBeat[i] = (_laneLastBeat[i] + 1) % CM.BeatsPerLoop; - continue; - } - //Note exists and has been missed - _laneData[i][_laneLastBeat[i]].NoteHit(); - HandleTiming(1); - _laneLastBeat[i] = (_laneLastBeat[i] + 1) % CM.BeatsPerLoop; - } - } - - private void CheckNoteTiming(ArrowType type) + private void OnTimedInput(ArrowType arrowType, int beat, double beatDif, int flag) { - double realBeat = TimeKeeper.CurrentTime / (60 / (double)_curSong.Bpm) % CM.BeatsPerLoop; - int curBeat = (int)Math.Round(realBeat); - GD.Print("Cur beat " + curBeat + "Real: " + realBeat.ToString("#.###")); - if (_laneData[(int)type][curBeat % CM.BeatsPerLoop] == null) + GD.Print(arrowType + " " + beat + " difference: " + beatDif); + if (flag == -1) { - PlayerAddNote(type, curBeat); + PlayerAddNote(arrowType, beat); return; } - if (!_laneData[(int)type][curBeat % CM.BeatsPerLoop].IsActive) - return; - double beatDif = Math.Abs(realBeat - curBeat); - _laneData[(int)type][curBeat % CM.BeatsPerLoop].NoteHit(); - _laneLastBeat[(int)type] = (curBeat) % CM.BeatsPerLoop; - HandleTiming(beatDif); - } - - private void HandleTiming(double beatDif) - { + //TODO: Evaluate Timing as a function if (beatDif < _timingInterval * 1) { GD.Print("Perfect"); @@ -258,18 +160,29 @@ private void HandleTiming(double beatDif) NotePlacementBar.ComboText("Miss"); } } + #endregion - private void PlayerAddNote(ArrowType type, int beat) + #region BattleEffect Handling + + public delegate void NotePlacedHandler(BattleDirector BD); + private event NotePlacedHandler NotePlaced; + + private void EventizeRelics() { - // can also add some sort of keybind here to also have pressed - // in case the user just presses the note too early and spawns a note - GD.Print($"Player trying to place {type} typed note at beat: " + beat); - if (NotePlacementBar.CanPlaceNote()) + GD.Print("Hooking up relics"); + foreach (RelicTemplate relic in Player.Stats.CurRelics) { - if (AddNoteToLane(type, beat % CM.BeatsPerLoop, false)) - NotePlacementBar.PlacedNote(); - GD.Print("Note Placed."); + foreach (RelicEffect effect in relic.Effects) + { + switch (effect.GetTrigger()) //TODO: Look into a way to get eventhandler from string + { + case "NotePlaced": + NotePlaced += effect.OnTrigger; + break; + } + } } } + #endregion } diff --git a/scenes/BattleDirector/scripts/Conductor.cs b/scenes/BattleDirector/scripts/Conductor.cs new file mode 100644 index 00000000..3915da98 --- /dev/null +++ b/scenes/BattleDirector/scripts/Conductor.cs @@ -0,0 +1,149 @@ +using System; +using FunkEngine; +using Godot; + +public partial class Conductor : Node +{ + [Export] + private ChartManager CM; + + public delegate void TimedInputHandler(ArrowType type, int beat, double beatDif, int flag = 0); + public event TimedInputHandler TimedInput; + + //Assume queue structure for notes in each lane. + //Can eventually make this its own structure + private NoteArrow[][] _laneData = Array.Empty(); + + private int[] _laneLastBeat = new int[] + { + //Temporary (hopefully) measure to bridge from note queue structure to ordered array + 0, + 0, + 0, + 0, + }; + + private Note[] _notes = Array.Empty(); + + //Returns first note of lane without modifying lane data + private Note GetNoteAt(ArrowType dir, int beat) + { + return GetNote(_laneData[(int)dir][beat]); + } + + //Get note of a note arrow + private Note GetNote(NoteArrow arrow) + { + return _notes[arrow.NoteIdx]; + } + + private bool IsNoteActive(ArrowType type, int beat) + { + return _laneData[(int)type][beat] != null && _laneData[(int)type][beat].IsActive; + } + + public bool AddNoteToLane(ArrowType type, int beat, bool isActive = true) + { + beat %= CM.BeatsPerLoop; + //Don't add dupe notes //Beat at 0 is too messy. + if (beat == 0 || _laneData[(int)type][beat] != null) + { + return false; + } + + //Get noteArrow from CM + NoteArrow arrow; + if (isActive) + { + arrow = CM.AddArrowToLane(type, beat, _notes.Length - 1); + } + else + { + arrow = CM.AddArrowToLane(type, beat, _notes.Length - 1, new Color(1, 0.43f, 0.26f)); + } + + arrow.IsActive = isActive; + _laneData[(int)type][beat] = arrow; + return true; + } + + public void Prep() //TODO: Streamline battle initialization + { + _laneData = new NoteArrow[][] + { + new NoteArrow[CM.BeatsPerLoop], + new NoteArrow[CM.BeatsPerLoop], + new NoteArrow[CM.BeatsPerLoop], + new NoteArrow[CM.BeatsPerLoop], + }; + } + + public void AddExampleNotes() + { + GD.Print(CM.BeatsPerLoop); + for (int i = 1; i < 15; i++) + { + AddNoteToLane(ArrowType.Up, i * 4); + } + + for (int i = 1; i < 15; i++) + { + AddNoteToLane(ArrowType.Left, 4 * i + 1); + } + + for (int i = 0; i < 10; i++) + { + AddNoteToLane(ArrowType.Right, 3 * i + 32); + } + + for (int i = 0; i < 3; i++) + { + AddNoteToLane(ArrowType.Down, 8 * i + 16); + } + } + + //Check all lanes for misses from missed inputs + public void CheckMiss() + { + //On current beat, if prev beat is active and not inputted + double realBeat = TimeKeeper.CurrentTime / (60 / (double)TimeKeeper.Bpm) % CM.BeatsPerLoop; + for (int i = 0; i < _laneData.Length; i++) + { + if ( + !(_laneLastBeat[i] < Math.Floor(realBeat)) + && (_laneLastBeat[i] != CM.BeatsPerLoop - 1 || Math.Floor(realBeat) != 0) + ) + continue; + if (_laneData[i][_laneLastBeat[i]] == null || !_laneData[i][_laneLastBeat[i]].IsActive) + { + _laneLastBeat[i] = (_laneLastBeat[i] + 1) % CM.BeatsPerLoop; + continue; + } + + //Note exists and has been missed + _laneData[i][_laneLastBeat[i]].NoteHit(); + TimedInput?.Invoke((ArrowType)i, _laneLastBeat[i], 1); + //HandleTiming(1); + _laneLastBeat[i] = (_laneLastBeat[i] + 1) % CM.BeatsPerLoop; + } + } + + public void CheckNoteTiming(ArrowType type) + { + double realBeat = TimeKeeper.CurrentTime / (60 / (double)TimeKeeper.Bpm) % CM.BeatsPerLoop; + int curBeat = (int)Math.Round(realBeat); + GD.Print("Cur beat " + curBeat + "Real: " + realBeat.ToString("#.###")); + if (_laneData[(int)type][curBeat % CM.BeatsPerLoop] == null) + { + TimedInput?.Invoke(type, curBeat, Math.Abs(realBeat - curBeat), -1); + return; + } + + if (!_laneData[(int)type][curBeat % CM.BeatsPerLoop].IsActive) + return; + double beatDif = Math.Abs(realBeat - curBeat); + _laneData[(int)type][curBeat % CM.BeatsPerLoop].NoteHit(); + _laneLastBeat[(int)type] = (curBeat) % CM.BeatsPerLoop; + TimedInput?.Invoke(type, curBeat, beatDif); + } +} diff --git a/scenes/BattleDirector/test_battle_scene.tscn b/scenes/BattleDirector/test_battle_scene.tscn index a15a2189..14047bb2 100644 --- a/scenes/BattleDirector/test_battle_scene.tscn +++ b/scenes/BattleDirector/test_battle_scene.tscn @@ -1,18 +1,26 @@ -[gd_scene load_steps=6 format=3 uid="uid://b0mrgr7h0ty1y"] +[gd_scene load_steps=7 format=3 uid="uid://b0mrgr7h0ty1y"] [ext_resource type="Script" path="res://scenes/BattleDirector/scripts/BattleDirector.cs" id="1_cwqqr"] [ext_resource type="PackedScene" uid="uid://dfevfib11kou1" path="res://scenes/ChartViewport/ChartViewport.tscn" id="2_cupb3"] +[ext_resource type="Script" path="res://scenes/BattleDirector/scripts/Conductor.cs" id="2_pcp76"] [ext_resource type="Texture2D" uid="uid://ci0g72j8q4ec2" path="res://scenes/BattleDirector/assets/CoolBG.jpg" id="4_13o87"] [ext_resource type="PackedScene" uid="uid://duhiilcv4tat3" path="res://scenes/BattleDirector/NotePlacementBar.tscn" id="7_3ko4g"] [ext_resource type="AudioStream" uid="uid://cv6lqjj6lu36h" path="res://Audio/335571__magntron__gamemusic_120bpm.mp3" id="8_caqms"] -[node name="ProtoBattleDirector" type="Node2D" node_paths=PackedStringArray("CM", "IH", "NotePlacementBar", "Audio")] +[node name="ProtoBattleDirector" type="Node2D" node_paths=PackedStringArray("CM", "IH", "NotePlacementBar", "CD", "Audio")] script = ExtResource("1_cwqqr") CM = NodePath("SubViewport") IH = NodePath("SubViewport/SubViewport/noteManager") NotePlacementBar = NodePath("NotePlacementBar") +CD = NodePath("Conductor") Audio = NodePath("AudioStreamPlayer") +[node name="Conductor" type="Node" parent="." node_paths=PackedStringArray("CM", "IH", "NotePlacementBar")] +script = ExtResource("2_pcp76") +CM = NodePath("../SubViewport") +IH = NodePath("../SubViewport/SubViewport/noteManager") +NotePlacementBar = NodePath("../NotePlacementBar") + [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] stream = ExtResource("8_caqms") diff --git a/scenes/ChartViewport/ChartManager.cs b/scenes/ChartViewport/ChartManager.cs index a51ce69a..c6fd814f 100644 --- a/scenes/ChartViewport/ChartManager.cs +++ b/scenes/ChartViewport/ChartManager.cs @@ -39,7 +39,7 @@ public void OnNoteReleased(ArrowType type) EmitSignal(nameof(NoteReleased), (int)type); } - public void PrepChart(BattleDirector.SongData songData) + public void PrepChart(SongData songData) { _loopLen = songData.SongLength / songData.NumLoops; TimeKeeper.LoopLength = (float)_loopLen; diff --git a/scenes/NoteManager/scripts/NoteArrow.cs b/scenes/NoteManager/scripts/NoteArrow.cs index 35130f6f..71105b6b 100644 --- a/scenes/NoteManager/scripts/NoteArrow.cs +++ b/scenes/NoteManager/scripts/NoteArrow.cs @@ -20,7 +20,6 @@ public void Init(ArrowData parentArrowData, int beat) Type = parentArrowData.Type; Beat = beat; - //SelfModulate = parentArrowData.Color; Position += Vector2.Down * (parentArrowData.Node.GlobalPosition.Y); RotationDegrees = parentArrowData.Node.RotationDegrees; } diff --git a/scenes/Puppets/scripts/PlayerPuppet.cs b/scenes/Puppets/scripts/PlayerPuppet.cs index e8fce960..f4b57513 100644 --- a/scenes/Puppets/scripts/PlayerPuppet.cs +++ b/scenes/Puppets/scripts/PlayerPuppet.cs @@ -3,7 +3,7 @@ public partial class PlayerPuppet : PuppetTemplate { - public PlayerStats Stats; + public PlayerStats Stats = new PlayerStats(); public override void _Ready() { diff --git a/scenes/Puppets/scripts/PlayerStats.cs b/scenes/Puppets/scripts/PlayerStats.cs index c4a79f32..5a16943d 100644 --- a/scenes/Puppets/scripts/PlayerStats.cs +++ b/scenes/Puppets/scripts/PlayerStats.cs @@ -5,6 +5,7 @@ public partial class PlayerStats : Resource { public int MaxHealth = 300; public Note[] CurNotes = new Note[5]; - public RelicTemplate[] CurRelics = new RelicTemplate[5]; + + public RelicTemplate[] CurRelics = new[] { RelicDict.RelicPool[0] }; public int Attack = 1; } From b3c0a27e6cace5fd2914dbda73e2951e8a1e45ba Mon Sep 17 00:00:00 2001 From: LifeHckr Date: Fri, 7 Feb 2025 15:25:34 -0800 Subject: [PATCH 06/28] BattleEffectTrigger enum and WIP Note effects Note handling is interesting. --- Classes/Note.cs | 21 ++++++-- Classes/Relics/RelicDict.cs | 5 +- Classes/Relics/RelicEffect.cs | 10 ++-- Globals/FunkEngineNameSpace.cs | 9 +++- .../BattleDirector/scripts/BattleDirector.cs | 50 +++++++++++-------- scenes/BattleDirector/scripts/Conductor.cs | 28 +++++++---- scenes/BattleDirector/test_battle_scene.tscn | 15 ++++-- scenes/Puppets/scripts/PlayerPuppet.cs | 3 ++ scenes/Puppets/scripts/PlayerStats.cs | 2 +- 9 files changed, 96 insertions(+), 47 deletions(-) diff --git a/Classes/Note.cs b/Classes/Note.cs index 9c08f75d..2f4b607f 100644 --- a/Classes/Note.cs +++ b/Classes/Note.cs @@ -12,16 +12,29 @@ public partial class Note : Resource, IBattleEvent private int _baseVal; private Action NoteEffect; - Note(PuppetTemplate owner, Action noteEffect, int baseVal) + //public string Tooltip; + + public Note( + PuppetTemplate owner, + int baseVal = 1, + Action noteEffect = null + ) { Owner = owner; - NoteEffect = noteEffect; + NoteEffect = + noteEffect + ?? ( + (BD, val) => + { + BD.GetTarget(this).TakeDamage(val); + } + ); _baseVal = baseVal; } - public string GetTrigger() + public BattleEffectTrigger GetTrigger() { - return "OnHit"; + return BattleEffectTrigger.SelfNoteHit; } public void OnTrigger(BattleDirector BD) diff --git a/Classes/Relics/RelicDict.cs b/Classes/Relics/RelicDict.cs index ad46bb20..5a0caaab 100644 --- a/Classes/Relics/RelicDict.cs +++ b/Classes/Relics/RelicDict.cs @@ -2,6 +2,9 @@ using FunkEngine; using Godot; +/** + * + */ public class RelicDict { public static RelicTemplate[] RelicPool = new[] @@ -11,7 +14,7 @@ public class RelicDict new RelicEffect[] { new RelicEffect( - "NotePlaced", + BattleEffectTrigger.NotePlaced, 5, (director, val) => { diff --git a/Classes/Relics/RelicEffect.cs b/Classes/Relics/RelicEffect.cs index 0a60f944..93ade4f0 100644 --- a/Classes/Relics/RelicEffect.cs +++ b/Classes/Relics/RelicEffect.cs @@ -4,11 +4,15 @@ public partial class RelicEffect : IBattleEvent { - private string Trigger { get; set; } + private BattleEffectTrigger Trigger { get; set; } public int BaseValue; private Action OnRelicEffect; - public RelicEffect(string trigger, int val, Action onRelicEffect) + public RelicEffect( + BattleEffectTrigger trigger, + int val, + Action onRelicEffect + ) { BaseValue = val; Trigger = trigger; @@ -20,7 +24,7 @@ public void OnTrigger(BattleDirector battleDirector) OnRelicEffect(battleDirector, BaseValue); } - public string GetTrigger() + public BattleEffectTrigger GetTrigger() { return Trigger; } diff --git a/Globals/FunkEngineNameSpace.cs b/Globals/FunkEngineNameSpace.cs index ed2f3460..955b7964 100644 --- a/Globals/FunkEngineNameSpace.cs +++ b/Globals/FunkEngineNameSpace.cs @@ -10,6 +10,13 @@ public enum ArrowType Right = 3, } +public enum BattleEffectTrigger +{ + NotePlaced, + NoteHit, + SelfNoteHit, +} + public struct SongData { public int Bpm; @@ -28,5 +35,5 @@ public struct ArrowData public interface IBattleEvent { void OnTrigger(BattleDirector BD); - string GetTrigger(); + BattleEffectTrigger GetTrigger(); } diff --git a/scenes/BattleDirector/scripts/BattleDirector.cs b/scenes/BattleDirector/scripts/BattleDirector.cs index 2575bac0..dcbe63d4 100644 --- a/scenes/BattleDirector/scripts/BattleDirector.cs +++ b/scenes/BattleDirector/scripts/BattleDirector.cs @@ -19,9 +19,6 @@ public partial class BattleDirector : Node2D [Export] private ChartManager CM; - [Export] - private InputHandler IH; - [Export] private NotePlacementBar NotePlacementBar; @@ -50,6 +47,16 @@ private void PlayerAddNote(ArrowType type, int beat) GD.Print("Note Placed."); } } + + public PuppetTemplate GetTarget(Note note) + { + if (note.Owner == Player) + { + return Enemy; + } + + return Player; + } #endregion #region Initialization @@ -66,13 +73,14 @@ public override void _Ready() Player = new PlayerPuppet(); AddChild(Player); - Player.Init( - GD.Load("res://scenes/BattleDirector/assets/Character1.png"), - "Player" - ); - Player.SetPosition(new Vector2(80, 0)); - Player.Sprite.Position += Vector2.Down * 30; //TEMP EventizeRelics(); + foreach (var note in Player.Stats.CurNotes) + { + note.Owner = Player; + CD.Notes = CD.Notes.Append(note).ToArray(); + } + Note enemNote = new Note(Enemy, 2); + CD.Notes = CD.Notes.Append(enemNote).ToArray(); Enemy = new PuppetTemplate(); Enemy.SetPosition(new Vector2(400, 0)); @@ -89,10 +97,9 @@ private void Begin() { CM.PrepChart(_curSong); CD.Prep(); - CD.AddExampleNotes(); CD.TimedInput += OnTimedInput; - //TEMP + //TEMP TODO: Make enemies, can put this in an enemy subclass var enemTween = CreateTween(); enemTween.TweenProperty(Enemy.Sprite, "position", Vector2.Down * 5, 1f).AsRelative(); enemTween.TweenProperty(Enemy.Sprite, "position", Vector2.Up * 5, 1f).AsRelative(); @@ -122,10 +129,10 @@ private void OnNotePressed(ArrowType type) private void OnNoteReleased(ArrowType arrowType) { } - private void OnTimedInput(ArrowType arrowType, int beat, double beatDif, int flag) + private void OnTimedInput(Note note, ArrowType arrowType, int beat, double beatDif) { GD.Print(arrowType + " " + beat + " difference: " + beatDif); - if (flag == -1) + if (note == null) { PlayerAddNote(arrowType, beat); return; @@ -134,28 +141,28 @@ private void OnTimedInput(ArrowType arrowType, int beat, double beatDif, int fla if (beatDif < _timingInterval * 1) { GD.Print("Perfect"); - Enemy.TakeDamage(3); + note.OnTrigger(this); NotePlacementBar.HitNote(); NotePlacementBar.ComboText("Perfect!"); } else if (beatDif < _timingInterval * 2) { GD.Print("Good"); - Enemy.TakeDamage(1); + note.OnTrigger(this); NotePlacementBar.HitNote(); NotePlacementBar.ComboText("Good"); } else if (beatDif < _timingInterval * 3) { GD.Print("Ok"); - Player.TakeDamage(1); + note.OnTrigger(this); NotePlacementBar.HitNote(); NotePlacementBar.ComboText("Okay"); } else { GD.Print("Miss"); - Player.TakeDamage(2); + note.OnTrigger(this); NotePlacementBar.MissNote(); NotePlacementBar.ComboText("Miss"); } @@ -165,19 +172,20 @@ private void OnTimedInput(ArrowType arrowType, int beat, double beatDif, int fla #region BattleEffect Handling - public delegate void NotePlacedHandler(BattleDirector BD); + private delegate void NotePlacedHandler(BattleDirector BD); private event NotePlacedHandler NotePlaced; private void EventizeRelics() { GD.Print("Hooking up relics"); - foreach (RelicTemplate relic in Player.Stats.CurRelics) + foreach (var relic in Player.Stats.CurRelics) { - foreach (RelicEffect effect in relic.Effects) + GetNode

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 B-w6N! delta 215816 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

T(12;Wtd;7d;c6!c>Ns$KUS=Om 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