simplify Player and Enemy classes

This commit is contained in:
2026-07-08 17:20:19 +03:30
parent ef6c2d3dd0
commit ddc2b8df73
3 changed files with 34 additions and 30 deletions
@@ -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();
}
@@ -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<FightMoves> GetAvailableMoves() {
if (GetState() == EntityState.FROZEN) return new ArrayList<>(){};
ArrayList<FightMoves> 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;
}
}
@@ -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);
}