From ddc2b8df73fd08644c75a1a19a8c89d6b2967cd5 Mon Sep 17 00:00:00 2001 From: Ramtin Jafari Date: Wed, 8 Jul 2026 17:20:19 +0330 Subject: [PATCH] simplify Player and Enemy classes --- .../java/org/project/Interface/IDamager.java | 2 +- .../main/java/org/project/entity/Entity.java | 35 ++++++++++++++++--- .../org/project/entity/players/Player.java | 27 ++------------ 3 files changed, 34 insertions(+), 30 deletions(-) diff --git a/Java-Knight/src/main/java/org/project/Interface/IDamager.java b/Java-Knight/src/main/java/org/project/Interface/IDamager.java index 963c050..e3fba57 100644 --- a/Java-Knight/src/main/java/org/project/Interface/IDamager.java +++ b/Java-Knight/src/main/java/org/project/Interface/IDamager.java @@ -4,6 +4,6 @@ import org.project.constants.gameConstant.AttackPowerUp; public interface IDamager { public void Damage(IDamageable target, int amount, AttackPowerUp[] powerUps); - public IDamageUtil[] GetUtils(); + public IDamageUtil[] GetDamageUtils(); public int GetDamage(); } diff --git a/Java-Knight/src/main/java/org/project/entity/Entity.java b/Java-Knight/src/main/java/org/project/entity/Entity.java index 18f4c6d..99c613d 100644 --- a/Java-Knight/src/main/java/org/project/entity/Entity.java +++ b/Java-Knight/src/main/java/org/project/entity/Entity.java @@ -56,7 +56,7 @@ public abstract class Entity implements IDamageable, IHealable, IDefendable, IFi protected Entity() {} - public int getStamina() { return Stamina; } + public int GetStamina() { return Stamina; } public void ResetStamina() { Stamina = MaxStamina; } @@ -78,7 +78,28 @@ public abstract class Entity implements IDamageable, IHealable, IDefendable, IFi public EntityState GetState() { return State; } @Override - public int GetDamage() { return BaseDamage; } + public int GetDamage() { + int damage = BaseDamage; + IDamageUtil[] utils = GetDamageUtils(); + + for (IDamageUtil util : utils) { + if (util != null) { + damage += util.GetDamage(); + } + } + + return damage; + } + + @Override + public IDamageUtil[] GetDamageUtils() { + return new IDamageUtil[] {Weapon}; + } + + @Override + public void Damage(IDamageable target, int amount, AttackPowerUp[] powerUps) { + target.TakeDamage(amount, powerUps); + } public long GetMoney() { return Money; } @@ -200,9 +221,15 @@ public abstract class Entity implements IDamageable, IHealable, IDefendable, IFi } @Override public abstract void SpecialAbility(Entity entity); + @Override + public abstract String GetSpecialAbilityDescription(Entity entity); + @Override + public abstract String GetSpecialAbilityResultDescription(Entity entity); @Override - public FightMoves[] getAvailableMoves() { + public ArrayList GetAvailableMoves() { + if (GetState() == EntityState.FROZEN) return new ArrayList<>(){}; + ArrayList result = new ArrayList<>(); result.add(FightMoves.DEFEND); result.add(FightMoves.LIGHT_ATTACK); @@ -219,6 +246,6 @@ public abstract class Entity implements IDamageable, IHealable, IDefendable, IFi result.add(FightMoves.HEAVY_ATTACK); } - return result.toArray(new FightMoves[0]); + return result; } } diff --git a/Java-Knight/src/main/java/org/project/entity/players/Player.java b/Java-Knight/src/main/java/org/project/entity/players/Player.java index 6672523..7181448 100644 --- a/Java-Knight/src/main/java/org/project/entity/players/Player.java +++ b/Java-Knight/src/main/java/org/project/entity/players/Player.java @@ -1,6 +1,5 @@ package org.project.entity.players; -import org.project.Interface.IDamageUtil; import org.project.Interface.IDamageable; import org.project.constants.gameConstant.AttackPowerUp; import org.project.constants.gameConstant.EntityState; @@ -58,30 +57,6 @@ public abstract class Player extends Entity { ModifyMoney(gift, true); } - @Override - public int GetDamage() { - int damage = BaseDamage; - IDamageUtil[] utils = GetUtils(); - - for (IDamageUtil util : utils) { - if (util != null) { - damage += util.GetDamage(); - } - } - - return damage; - } - - @Override - public IDamageUtil[] GetUtils() { - return new IDamageUtil[] {Weapon}; - } - - @Override - public void Damage(IDamageable target, int amount, AttackPowerUp[] powerUps) { - target.TakeDamage(amount, powerUps); - } - @Override public void LightAttack(IDamageable target) { int damage = GetDamage(); @@ -107,7 +82,9 @@ public abstract class Player extends Entity { @Override public abstract void SpecialAbility(Entity entity); + @Override public abstract String GetSpecialAbilityDescription(Entity entity); + @Override public abstract String GetSpecialAbilityResultDescription(Entity entity); }