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 interface IDamager {
public void Damage(IDamageable target, int amount, AttackPowerUp[] powerUps); public void Damage(IDamageable target, int amount, AttackPowerUp[] powerUps);
public IDamageUtil[] GetUtils(); public IDamageUtil[] GetDamageUtils();
public int GetDamage(); public int GetDamage();
} }
@@ -56,7 +56,7 @@ public abstract class Entity implements IDamageable, IHealable, IDefendable, IFi
protected Entity() {} protected Entity() {}
public int getStamina() { return Stamina; } public int GetStamina() { return Stamina; }
public void ResetStamina() { Stamina = MaxStamina; } public void ResetStamina() { Stamina = MaxStamina; }
@@ -78,7 +78,28 @@ public abstract class Entity implements IDamageable, IHealable, IDefendable, IFi
public EntityState GetState() { return State; } public EntityState GetState() { return State; }
@Override @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; } public long GetMoney() { return Money; }
@@ -200,9 +221,15 @@ public abstract class Entity implements IDamageable, IHealable, IDefendable, IFi
} }
@Override @Override
public abstract void SpecialAbility(Entity entity); public abstract void SpecialAbility(Entity entity);
@Override
public abstract String GetSpecialAbilityDescription(Entity entity);
@Override
public abstract String GetSpecialAbilityResultDescription(Entity entity);
@Override @Override
public FightMoves[] getAvailableMoves() { public ArrayList<FightMoves> GetAvailableMoves() {
if (GetState() == EntityState.FROZEN) return new ArrayList<>(){};
ArrayList<FightMoves> result = new ArrayList<>(); ArrayList<FightMoves> result = new ArrayList<>();
result.add(FightMoves.DEFEND); result.add(FightMoves.DEFEND);
result.add(FightMoves.LIGHT_ATTACK); result.add(FightMoves.LIGHT_ATTACK);
@@ -219,6 +246,6 @@ public abstract class Entity implements IDamageable, IHealable, IDefendable, IFi
result.add(FightMoves.HEAVY_ATTACK); result.add(FightMoves.HEAVY_ATTACK);
} }
return result.toArray(new FightMoves[0]); return result;
} }
} }
@@ -1,6 +1,5 @@
package org.project.entity.players; package org.project.entity.players;
import org.project.Interface.IDamageUtil;
import org.project.Interface.IDamageable; import org.project.Interface.IDamageable;
import org.project.constants.gameConstant.AttackPowerUp; import org.project.constants.gameConstant.AttackPowerUp;
import org.project.constants.gameConstant.EntityState; import org.project.constants.gameConstant.EntityState;
@@ -58,30 +57,6 @@ public abstract class Player extends Entity {
ModifyMoney(gift, true); 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 @Override
public void LightAttack(IDamageable target) { public void LightAttack(IDamageable target) {
int damage = GetDamage(); int damage = GetDamage();
@@ -107,7 +82,9 @@ public abstract class Player extends Entity {
@Override @Override
public abstract void SpecialAbility(Entity entity); public abstract void SpecialAbility(Entity entity);
@Override
public abstract String GetSpecialAbilityDescription(Entity entity); public abstract String GetSpecialAbilityDescription(Entity entity);
@Override
public abstract String GetSpecialAbilityResultDescription(Entity entity); public abstract String GetSpecialAbilityResultDescription(Entity entity);
} }