Skip to content
This repository was archived by the owner on Dec 24, 2025. It is now read-only.

Add Strong and Shield Brick#24

Merged
thnhmai06 merged 17 commits intodevfrom
feature/strong-shield-brick
Nov 10, 2025
Merged

Add Strong and Shield Brick#24
thnhmai06 merged 17 commits intodevfrom
feature/strong-shield-brick

Conversation

@ManhTanTran
Copy link
Collaborator

1. Core Additions

  • feat(brick): add new StrongShieldBrick entity that can withstand multiple collisions before breaking
  • feat(component): introduce ShieldHealthComponent to manage shield durability and HP logic

2. System & Collision Updates

  • fix(physics): improve collision handling to prevent double triggers and tunneling
  • refactor(system): separate ball–brick collision logic into PhysicSystem
  • fix(ball): resolve issue where ball passes through walls on corner collisions

3. UI & Visual Improvements

  • feat(ui): add BackgroundColorManager and UISystem with neon animation
  • style(background): update color palette to modern dark neon tones
  • feat(effect): enable smooth background transitions between levels

Copilot AI review requested due to automatic review settings November 4, 2025 17:18
Copy link
Contributor

Copilot AI left a 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 adds new game assets, system files, and introduces an undo mechanism with two new interfaces (CanExecute and CanUndo). It also removes a gitignore exception.

Key changes:

  • Adds multiple PNG texture assets for bricks (normal, strong, shield types)
  • Adds WAV audio files for game sound effects
  • Creates CanExecute and CanUndo interfaces for command pattern implementation
  • Adds FXGL system data files
  • Removes .idea/misc.xml exception from gitignore

Reviewed Changes

Copilot reviewed 38 out of 97 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
Various PNG files New brick texture assets for different brick types and hit states
Various WAV files New sound effect assets for game events
system/fxgl.bundle FXGL serialization system data
system/Readme.txt Documentation for system directory
settings.properties Vietnamese comments explaining application vs project settings
CanExecute.java Interface for executable behaviors
CanUndo.java Interface extending CanExecute to support undo operations
.gitignore Removes exception for .idea/misc.xml
Files not reviewed (1)
  • .idea/misc.xml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

/**
*
*
* <h1>%{@link CanUndo}</h1>
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Invalid Javadoc syntax: '%{@link CanUndo}' should be '{@link CanUndo}' without the '%' character.

Copilot uses AI. Check for mistakes.
/**
*
*
* <h1>%{@link CanExecute}</h1>
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Invalid Javadoc syntax: '%{@link CanExecute}' should be '{@link CanExecute}' without the '%' character.

Copilot uses AI. Check for mistakes.
* @see com.almasb.fxgl.app.scene.SceneFactory
*/
public class SceneFactory extends com.almasb.fxgl.app.scene.SceneFactory {
public final class SceneFactory extends com.almasb.fxgl.app.scene.SceneFactory {
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SceneFactory has the same name as its supertype com.almasb.fxgl.app.scene.SceneFactory.

Copilot uses AI. Check for mistakes.
/**
* Tạo entity Shield Brick chỉ được phá từ trên xuống
*
* @param pos Vị trí
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@param tag "pos" does not match any actual parameter of method "newShieldBrick()".

Suggested change
* @param pos Vị trí
* @param data Dữ liệu spawn, chứa vị trí

Copilot uses AI. Check for mistakes.
@thnhmai06 thnhmai06 changed the base branch from main to dev November 4, 2025 17:36
ManhTanTran and others added 11 commits November 5, 2025 01:27
# Conflicts:
#	.github/workflows/build.yml
#	.github/workflows/buildRelease.yml
#	.github/workflows/spotless.yml
#	.gitignore
#	.idea/misc.xml
#	build.gradle
#	docs/dev/guide.md
#	settings.gradle
#	src/main/java/com/github/codestorm/bounceverse/Bounceverse.java
#	src/main/java/com/github/codestorm/bounceverse/components/behaviors/Attack.java
#	src/main/java/com/github/codestorm/bounceverse/components/behaviors/Behavior.java
#	src/main/java/com/github/codestorm/bounceverse/components/behaviors/CooldownBehavior.java
#	src/main/java/com/github/codestorm/bounceverse/components/behaviors/Explosion.java
#	src/main/java/com/github/codestorm/bounceverse/components/behaviors/HealthDeath.java
#	src/main/java/com/github/codestorm/bounceverse/components/behaviors/ScaleChange.java
#	src/main/java/com/github/codestorm/bounceverse/components/behaviors/UndoableBehavior.java
#	src/main/java/com/github/codestorm/bounceverse/components/behaviors/paddle/PaddleShooting.java
#	src/main/java/com/github/codestorm/bounceverse/components/properties/Attributes.java
#	src/main/java/com/github/codestorm/bounceverse/components/properties/Shield.java
#	src/main/java/com/github/codestorm/bounceverse/core/LaunchOptions.java
#	src/main/java/com/github/codestorm/bounceverse/core/SettingsManager.java
#	src/main/java/com/github/codestorm/bounceverse/core/systems/GameSystem.java
#	src/main/java/com/github/codestorm/bounceverse/core/systems/InputSystem.java
#	src/main/java/com/github/codestorm/bounceverse/core/systems/PhysicSystem.java
#	src/main/java/com/github/codestorm/bounceverse/factory/SceneFactory.java
#	src/main/java/com/github/codestorm/bounceverse/factory/entities/BallFactory.java
#	src/main/java/com/github/codestorm/bounceverse/factory/entities/BrickFactory.java
#	src/main/java/com/github/codestorm/bounceverse/factory/entities/BulletFactory.java
#	src/main/java/com/github/codestorm/bounceverse/factory/entities/PaddleFactory.java
#	src/main/java/com/github/codestorm/bounceverse/factory/entities/WallFactory.java
#	src/main/resources/settings.properties
- add Attachment behavior for ball–paddle link
- improve PhysicSystem with shield-aware collision
- limit paddle movement within walls
- refine BallFactory spawn behavior
- adjust WallFactory wall sides & collision box
- update game initialization and system wiring
@thnhmai06 thnhmai06 force-pushed the feature/strong-shield-brick branch from c8b7432 to e977330 Compare November 4, 2025 18:35
@thnhmai06 thnhmai06 requested a review from Copilot November 4, 2025 18:37
@thnhmai06 thnhmai06 marked this pull request as draft November 4, 2025 18:39
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 42 out of 100 changed files in this pull request and generated 5 comments.

Files not reviewed (1)
  • .idea/misc.xml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 1 to 2
# ?ây ch? là khai báo c?a application, ch? không ph?i project.
# N?u mu?n khai báo project, hãy truy c?p /gradle.properties
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment text appears to have character encoding issues. The Vietnamese text is corrupted with replacement characters (�). This should be properly encoded in UTF-8. The intended text likely should be: '# Đây chỉ là khai báo của application, chứ không phải project.' and '# Nếu muốn khai báo project, hãy truy cập /gradle.properties'

Copilot uses AI. Check for mistakes.
/**
*
*
* <h1>%{@link CanUndo}</h1>
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Javadoc tag has an incorrect prefix character. Should be {@link CanUndo} instead of %{@link CanUndo}. The '%' character is not a valid Javadoc tag prefix.

Copilot uses AI. Check for mistakes.
/**
*
*
* <h1>%{@link CanExecute}</h1>
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Javadoc tag has an incorrect prefix character. Should be {@link CanExecute} instead of %{@link CanExecute}. The '%' character is not a valid Javadoc tag prefix.

Copilot uses AI. Check for mistakes.
/**
*
*
* <h1>!{@link BounceverseException}</h1>
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Javadoc tag has an incorrect prefix character. Should be {@link BounceverseException} instead of !{@link BounceverseException}. The '!' character is not a valid Javadoc tag prefix.

Copilot uses AI. Check for mistakes.
/**
* Tạo entity Shield Brick chỉ được phá từ trên xuống
*
* @param pos Vị trí
Copy link

Copilot AI Nov 4, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@param tag "pos" does not match any actual parameter of method "newShieldBrick()".

Copilot uses AI. Check for mistakes.
@thnhmai06 thnhmai06 changed the title Feature: Strong Shield Brick & Gameplay Enhancements Add Strong and Shield Brick, improving gameplay experience Nov 4, 2025
@thnhmai06
Copy link
Member

Require adding javadoc and resolve conflicts @ManhTanTran

@thnhmai06 thnhmai06 changed the title Add Strong and Shield Brick, improving gameplay experience Add Strong and Shield Brick Nov 10, 2025
@thnhmai06 thnhmai06 marked this pull request as ready for review November 10, 2025 16:57
Copy link
Member

@thnhmai06 thnhmai06 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tbh please dont vibe code again

@thnhmai06 thnhmai06 requested a review from Copilot November 10, 2025 16:58
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

Copilot reviewed 28 out of 61 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

*/
public static String getSettingsFilename() {
final var username = System.getProperty("user.name");
final var username = System.getProperty("user.color");
Copy link

Copilot AI Nov 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changed System.getProperty(\"user.name\") to System.getProperty(\"user.color\"). The property "user.color" does not exist in Java system properties. This should be "user.name" to retrieve the username.

Suggested change
final var username = System.getProperty("user.color");
final var username = System.getProperty("user.name");

Copilot uses AI. Check for mistakes.
* @see com.almasb.fxgl.entity.component.Component
*/
public abstract class Component extends com.almasb.fxgl.entity.component.Component {
public abstract sealed class Component extends com.almasb.fxgl.entity.component.Component
Copy link

Copilot AI Nov 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Component has the same name as its supertype com.almasb.fxgl.entity.component.Component.

Copilot uses AI. Check for mistakes.
@thnhmai06 thnhmai06 merged commit a3eebb0 into dev Nov 10, 2025
5 checks passed
@thnhmai06 thnhmai06 deleted the feature/strong-shield-brick branch November 10, 2025 17:05
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants