MCPcopy Index your code
hub / github.com/Noisyboy-9/clash-royale

github.com/Noisyboy-9/clash-royale @1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 1.0 ↗ · + Follow
703 symbols 1,956 edges 126 files 530 documented · 75%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Clash Royale

Game screen shot

In spring 2020, in Amirkabir University of Technology, for advanced programming class, the students were tasked to create a simpler version of Clash Royal Game using javafx, and java-core.

Developers

This project was developed by Sina Shariati and Alireza Nejadipour.

Game Elements

The game had some factors such as:

  • Towers
  • Cards
  • 3D client
  • online game

Towers

The game had two kind of towers:

  • King Tower (for documentation click here)
  • Queen Tower (for documentation click here)

Cards

Clash Royale has three kind of cards: Troops, Buildings, Spells

troops

The list of Troops:

  • Barbarians (for documentation click here)
  • Archers (for documentation click here)
  • Baby Dragon (for documentation click here)
  • Wizard (for documentation click here)
  • Mini Peka (for documentation click here)
  • Giant (for documentation click here)
  • Valkyrie (for documentation click here)

spells

The list of spells:

  • Rage (for documentation click here)
  • Fire Ball (for documentation click here)
  • Arrows (for documentation click here)

buildings

The list of buildings:

  • Cannon (for documentation click here)
  • Inferno Tower(for documentation click here)

3D client

In this project we tried to use 3D elements to make the UI better, and also make the game much more similar to the main game. some screenshots of the main game area:

in game screen shot 1 in game screen shot 2 in game screen shot 3 in game screen shot 4

Online Game

In this project we tried to implement online mode using a command caster server that receives commands from clients and broadcasts it between all clients.

UML design

The design that we did for the game can be found in here.

Extension points exported contracts — how you extend this code

AttackAble (Interface)
The interface Attack able. [6 implementers]
core/src/main/java/cards/utils/AttackAble.java
CustomEventHandler (Interface)
The interface Custom event handler. [3 implementers]
client/src/main/java/controllers/modes/CustomEventHandler.java
CanKnowItsExactCommandTypeTrait (Interface)
The interface Can know its exact command type trait. [1 implementers]
core/src/main/java/commands/traits/CanKnowItsExactCommandTypeTrait.java
Controller (Interface)
The interface Controller.
client/src/main/java/controllers/Controller.java
CanKnowItsExactCardTypeTraitTraitTraitTrait (Interface)
The interface Can know its exact card type trait trait trait trait. [1 implementers]
core/src/main/java/cards/traits/CanKnowItsExactCardTypeTraitTraitTraitTrait.java
CanKnowItsExactTowerTypeTrait (Interface)
The interface Can know its exact tower type trait. [1 implementers]
core/src/main/java/towers/traits/CanKnowItsExactTowerTypeTrait.java
CanKnowItsExactAuthenticationCommandTypeTrait (Interface)
The interface Can know its exact authentication command type trait.
core/src/main/java/commands/traits/CanKnowItsExactAuthenticationCommandTypeTrait.java

Core symbols most depended-on inside this repo

getPosition
called by 51
core/src/main/java/cards/utils/AttackAble.java
equals
called by 27
core/src/main/java/user/User.java
toString
called by 22
core/src/main/java/user/UserLevelEnum.java
getLevel
called by 21
core/src/main/java/user/User.java
showScene
called by 19
client/src/main/java/controllers/menus/SceneController.java
getTarget
called by 15
core/src/main/java/towers/Tower.java
transferPosition
called by 14
client/src/main/java/controllers/modes/BaseController.java
getUsername
called by 11
core/src/main/java/user/User.java

Shape

Method 579
Class 106
Interface 13
Enum 5

Languages

Java100%

Modules by API surface

client/src/main/java/controllers/modes/BaseController.java34 symbols
client/src/main/java/models/GameModel.java27 symbols
core/src/main/java/towers/Tower.java25 symbols
client/src/main/java/models/BotModeModel.java25 symbols
core/src/main/java/cards/buildings/Building.java21 symbols
core/src/main/java/cards/troops/Troop.java20 symbols
client/src/main/java/controllers/menus/SceneController.java20 symbols
client/src/main/java/controllers/modes/onlineControllers/OnlineController.java19 symbols
client/src/main/java/controllers/modes/runnables/HandleTroopsRunnable.java18 symbols
client/src/main/java/controllers/modes/botControllers/BotController.java16 symbols
core/src/main/java/commands/traits/CanKnowItsExactGameStateCommandTrait.java14 symbols
client/src/main/java/models/OnlineModeModel.java14 symbols

For agents

$ claude mcp add clash-royale \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact