From 2e7176731190f9c6eabe672f9d0d7c8ccac503bf Mon Sep 17 00:00:00 2001 From: Ramtin Jafari Date: Sat, 11 Jul 2026 15:26:37 +0330 Subject: [PATCH] add player roles --- .../constants/gameConstant/PlayerRoles.java | 7 +++++ .../gameConstant/PlayerRolesExt.java | 26 +++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 Java-Knight/src/main/java/org/project/constants/gameConstant/PlayerRoles.java create mode 100644 Java-Knight/src/main/java/org/project/constants/gameConstant/PlayerRolesExt.java diff --git a/Java-Knight/src/main/java/org/project/constants/gameConstant/PlayerRoles.java b/Java-Knight/src/main/java/org/project/constants/gameConstant/PlayerRoles.java new file mode 100644 index 0000000..e77977d --- /dev/null +++ b/Java-Knight/src/main/java/org/project/constants/gameConstant/PlayerRoles.java @@ -0,0 +1,7 @@ +package org.project.constants.gameConstant; + +public enum PlayerRoles { + KNIGHT, + WIZARD, + ASSASSIN +} diff --git a/Java-Knight/src/main/java/org/project/constants/gameConstant/PlayerRolesExt.java b/Java-Knight/src/main/java/org/project/constants/gameConstant/PlayerRolesExt.java new file mode 100644 index 0000000..695ef72 --- /dev/null +++ b/Java-Knight/src/main/java/org/project/constants/gameConstant/PlayerRolesExt.java @@ -0,0 +1,26 @@ +package org.project.constants.gameConstant; + +import org.project.entity.players.Assassin; +import org.project.entity.players.Knight; +import org.project.entity.players.Player; +import org.project.entity.players.Wizard; + +public final class PlayerRolesExt { + private PlayerRolesExt() {} + + public static Player CreatePlayer(PlayerRoles role, String name, int level) { + return switch (role) { + case KNIGHT -> new Knight(name, level); + case ASSASSIN -> new Assassin(name, level); + case WIZARD -> new Wizard(name, level); + }; + } + + public static Player CreatePlayer(PlayerRoles role, String name) { + return switch (role) { + case KNIGHT -> new Knight(name); + case ASSASSIN -> new Assassin(name); + case WIZARD -> new Wizard(name); + }; + } +}