From 7f41ccf7b50f8f4dca09126cd6b9073f6820e88f Mon Sep 17 00:00:00 2001 From: Ramtin Jafari Date: Tue, 7 Jul 2026 17:53:28 +0330 Subject: [PATCH] add item classes --- .../constants/gameConstant/ItemClass.java | 12 +++++++++ .../constants/gameConstant/ItemClassExt.java | 25 +++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 Java-Knight/src/main/java/org/project/constants/gameConstant/ItemClass.java create mode 100644 Java-Knight/src/main/java/org/project/constants/gameConstant/ItemClassExt.java diff --git a/Java-Knight/src/main/java/org/project/constants/gameConstant/ItemClass.java b/Java-Knight/src/main/java/org/project/constants/gameConstant/ItemClass.java new file mode 100644 index 0000000..e6544fd --- /dev/null +++ b/Java-Knight/src/main/java/org/project/constants/gameConstant/ItemClass.java @@ -0,0 +1,12 @@ +package org.project.constants.gameConstant; + +public enum ItemClass { + KEY, + SELLABLE, + UNNECESSARY, + ACCESSORY, + SHIELD, + WEAPON, + COSTUME, +} + diff --git a/Java-Knight/src/main/java/org/project/constants/gameConstant/ItemClassExt.java b/Java-Knight/src/main/java/org/project/constants/gameConstant/ItemClassExt.java new file mode 100644 index 0000000..080fdbd --- /dev/null +++ b/Java-Knight/src/main/java/org/project/constants/gameConstant/ItemClassExt.java @@ -0,0 +1,25 @@ +package org.project.constants.gameConstant; + +import org.project.item.Accessory.Accessory; +import org.project.item.Accessory.Costume; +import org.project.item.Accessory.Shield; +import org.project.item.Accessory.Weapon; +import org.project.item.KeyItem; +import org.project.item.SellableItem; + +public final class ItemClassExt { + private ItemClassExt() {} + + public static boolean Matches(ItemClass itemClass, Object subject) { + return switch (itemClass) { + case KEY -> subject instanceof KeyItem; + case SELLABLE -> subject instanceof SellableItem; + case UNNECESSARY -> subject.getClass() == SellableItem.class; + case ACCESSORY -> subject instanceof Accessory; + case WEAPON -> subject instanceof Weapon; + case COSTUME -> subject instanceof Costume; + case SHIELD -> subject instanceof Shield; + case null, default -> false; + }; + } +}