-
Notifications
You must be signed in to change notification settings - Fork 0
Milestone 1 Finished! #165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Changed NoteHit in namespace to EnemyNoteHit, since that was what I implied it to be, and it wasn't being used anyway. Added two relics: Chips: deals damage when you hit enemy notes Paper Cut: deals daamge each loop
New note type: shield, gives the player one charge of block - Block now appears above the health bar when any puppet has charge(s). - Block fully negates one source of damage and removes a charge. New relic: Chips, deals one point of damage whenever the player hits any note (should be balanced later)
Singleton instance with new eventargs classes to better pass information where accessible for battle events
Could still use some tweaking and juice
Refactored split functions Left selection array functions as distinct because those will need to be slightly different anyways Added button group to Reward Select Descriptions change on focus change without setting _selection
-added relic "chips": deal damage when any note is hit -added relic "paper cut": deal damage each loop -added note "shield": gain 1 charge of block -added block mechanic: currently the shield note type gives 1 charge of block (stacking), which fully negates 1 instance of damage
Added handling for multiple enemies in a fight These changes can be made for a fight at the Config level Enemies now will finish their damage animation before becoming invisible and signaling for death.
Handle Multiple Enemies
still need to redo GetRandomRelics() in scribe to account for rarities, might wait until more items implemented.
Added 4 new relics: -Energy Drink: decreases max combo bar on pickup - Bandage: heals player after each combat - Medkit: heals player after each loop - Vinyl record: all loop effects trigger twice (excluding vinyl record)
General Theme for typical buttons, and other major control nodes later Display button for display buttons, for now load them as packed scenes Settled on assets we'll use for now. Updated all UI scenes Co-Authored-By: Evelyn Fu (cwispibean) <91583791+efu6ucsc@users.noreply.github.com>
They now use the new selection cursor, and don't have the default Godot styling Also they are correctly centered on their position now.
Font prefers 16 mult sizes Title size -> override to 32 Mid size buttons -> override to 24 Adjusted margins, or added margin containers to some UI scenes to better adjust size changes from font size differences
Add Fibberish to README For reference, CC0 1.0 Universal, but attributing is nice.
Scenes pause when controller is disconnected, or window is un focused.
This should mainly just consumer controller input Also fix controller button attempting to grab focus when no controller is plugged in, and controller setting was last set.
This would be a good addition, just want to better incorporate it in eventually. Ideally with a proposed status effect system. Co-Authored-By: Connor Lowe <74088480+cornerloan@users.noreply.github.com>
Added relics and block note+mechanic
Chips could cause error if triggered after all enemies die. Its also really strong currently, increase its rarity Make HP bars smaller to fit enemies Add Energy Drink sprite
* Added rerolls Added reroll functionality to rewardSelectionUI Added applicable player stat Added player stat for additional rewards * Implement Relic rewards by rarity Rework GetRandomRelics to get relics based on rarities and odds by rarity Added RelicRarityPools Added RarityOdds stat to player New behavior explained in in-code documentation * Added rarity outlines for relics
* user can remap controls using custom keys issues being worked on still: - UI is not attempting to look clean or good yet - only one implementation, need to separate keyboard and controller into different tabs - need to ensure no duplicate keys for mapped inputs - remapping a key to the "accept" button causes the remapping popup to immediately reopen * controller remapping added, anti-dupes maybe works? I think the anti-duplicates works, but can use another set of eyes on it during our meeting on thursday. Believed issue: I think that InputMap isn't properly updating when being ran through the editor. WASDE are always invalid notes to change to. * no more duplicate controls -still not pretty looking -still can move around UI while inputting the new key selection * remap popup disables UI movement * everything works - needs an appearance revamp - should maybe allow user to remap inventory and pause key, since we disallow people to rebind to those keys * updated to include inventory, merged milestone1 * appearance revamp - ui cannot be maneuvered left and right in the tabs * Updated translations - still need to fix UI movement controls * we hate spaghetti - still can't figure out the UI maneuverability issue * Add translations Also adjusted control spacing to accommodate Chinese * Refactored control settings Fix neighbors in controls remapping Made ui_cancel end the input screen Simplified dictionaries and awkward reused strings Added documentation Standardized node names * Beautify controls screen Should def make custom tabs sooner than later. --------- Co-authored-by: LifeHckr <jarodthereal@gmail.com>
* Status Effects Implemented Refactored damage taking into DamageInstances Added StatusEffect class Added Block Status as an example * Refactored targetting to include Player targetting * Add Mulligan status effect Allows the player to ignore the combo penalty of a missed note
* added 2 note types - added debug button to refill energy, the number 9 - added echo note, deals increased damage with each loop - added explosive note, deals damage to all enemies * added poison note & status * added translations * Fix issue with note target type not getting cloned --------- Co-authored-by: LifeHckr <jarodthereal@gmail.com>
* Added MapConfig Struct * Reworked map systems to use configs * Added handling for new areas Important scenes' backgrounds change based on area. Added a transitional scene between areas MapConfigs set for each area Ability to generate new map for new area. Map in Cartographer to better show nearby map rooms. * Cleanup for merge * Standardized background changing Created AreaBasedBackground class
* Start migration away from midi * Remove midi library and other midi bits * Remove midi references in docs also change some arrays to collections format. Maybe that'll fix stuff? * Remove bad UID from song maps
She says not to ever change this
Better tie in NPB values to playerstats Added max combo multi NoteToComboIncrease made a stat Closes #109
* fixed menu losing focus with multiple inputs * fixed same issue for inventory screen * Simplify focus fix logic Co-Authored-By: Connor Lowe <74088480+cornerloan@users.noreply.github.com> --------- Co-authored-by: LifeHckr <jarodthereal@gmail.com>
Cherry picked from main
|
Important Review skippedMore than 25% of the files skipped due to max files limit. The review is being skipped to prevent a low-quality review. 69 files out of 180 files are above the max files limit of 100. Please upgrade to Pro plan to get higher limits. You can disable this status message by setting the ✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR finalizes Milestone 1 by updating note management and resource loading to use song map files instead of MIDI files. Key changes include:
- Updating the Note class to add a TargetType property and corresponding constructor parameter.
- Modifying SongTemplate to replace MIDI-specific fields with song map and adjusted enemy scene path representations.
- Introducing new resource classes (NoteInfo and NoteChart) and reworking MidiMaestro to load these resources.
Reviewed Changes
Copilot reviewed 301 out of 316 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| Classes/Notes/Note.cs | Added a TargetType property and updated the constructor, clone method, and added a new setter method. |
| Classes/MidiMaestro/SongTemplate.cs | Replaced MIDI field(s) with song map related fields and modified the type of EnemyScenePath. |
| Classes/MidiMaestro/NoteInfo.cs | Introduced a new resource class for storing note beat and length information. |
| Classes/MidiMaestro/NoteChart.cs | Created a resource for managing note lanes with methods to add, remove, and reset note data. |
| Classes/MidiMaestro/MidiMaestro.cs | Revised file loading to switch from a MIDI file to a song map resource, updating note retrieval accordingly. |
Files not reviewed (15)
- Audio/songMaps/Song1.tres: Language not supported
- Audio/songMaps/Song2.tres: Language not supported
- Audio/songMaps/Song3.tres: Language not supported
- Classes/MidiMaestro/NoteChart.cs.uid: Language not supported
- Classes/MidiMaestro/NoteInfo.cs.uid: Language not supported
- Classes/Notes/Assets/Note_PlayerBlock.png.import: Language not supported
- Classes/Notes/Assets/Note_PlayerEcho.png.import: Language not supported
- Classes/Notes/Assets/Note_PlayerExplosive.png.import: Language not supported
- Classes/Notes/Assets/Note_PlayerPoison.png.import: Language not supported
- Classes/Relics/Assets/Relic_Bandage.png.import: Language not supported
- Classes/Relics/Assets/Relic_Chips.png.import: Language not supported
- Classes/Relics/Assets/Relic_EnergyDrink.png.import: Language not supported
- Classes/Relics/Assets/Relic_Medkit.png.import: Language not supported
- Classes/Relics/Assets/Relic_PaperCut.png.import: Language not supported
- Classes/Relics/Assets/Relic_VinylRecord.png.import: Language not supported
| public string Name { get; set; } | ||
| private int _baseVal; | ||
| public float CostModifier { get; private set; } | ||
| public Targetting TargetType { get; private set; } |
Copilot
AI
Apr 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Consider verifying whether 'Targetting' is intentionally spelled with a double 't' or if 'Targeting' is preferred.
| public Targetting TargetType { get; private set; } | |
| public Targeting TargetType { get; private set; } |
| public void RemoveNote(ArrowType type, float beat) | ||
| { | ||
| if (beat == 0) | ||
| return; //All my homies hate beat 0 |
Copilot
AI
Apr 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Consider revising the comment language to maintain a professional tone.
| return; //All my homies hate beat 0 | |
| return; // Beat 0 is reserved and cannot be modified. |
| { | ||
| if (beat == 0) | ||
| return; //All my homies hate beat 0 | ||
| if (GetLane(type).Any(note => Math.Abs(note.Beat - beat) < Precision)) //Fuck it, traverse the whole array. |
Copilot
AI
Apr 27, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[nitpick] Consider revising the comment to remove informal language for clarity and professionalism.
| if (GetLane(type).Any(note => Math.Abs(note.Beat - beat) < Precision)) //Fuck it, traverse the whole array. | |
| if (GetLane(type).Any(note => Math.Abs(note.Beat - beat) < Precision)) // Check if any note in the lane is close to the specified beat within the defined precision. |
LifeHckr
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ready to groove
No description provided.