94 lines
1.8 KiB
Java
94 lines
1.8 KiB
Java
package game.cards;
|
|
|
|
public abstract class Card{
|
|
|
|
private int attack;
|
|
private int health;
|
|
private boolean hasAttacked=true;
|
|
|
|
public Card() {
|
|
attack = getDefaultAttack();
|
|
health = getDefaultHealth();
|
|
}
|
|
/**
|
|
* retourne un entier coresspondant a l'attaque de la carte
|
|
* @return
|
|
*/
|
|
public final int getAttack() {
|
|
return attack;
|
|
}
|
|
|
|
/**
|
|
* retourne la santé de la carte
|
|
* @return
|
|
*/
|
|
public final int getHealth() {
|
|
return health;
|
|
}
|
|
|
|
/**
|
|
* l'attack par defaut des cartes
|
|
* @return
|
|
*/
|
|
public abstract int getDefaultAttack();
|
|
|
|
/**
|
|
* les point de vie par default de la carte
|
|
* @return
|
|
*/
|
|
public abstract int getDefaultHealth();
|
|
|
|
/**
|
|
* evenement déclanché au placement de la carte
|
|
*/
|
|
public void onCardPlaced(){};
|
|
/**
|
|
* évenement déclenché a la mort de la carte
|
|
*/
|
|
public void onCardDestroyed(){};
|
|
/**
|
|
* évenement déclenché au debut de tour
|
|
*/
|
|
public void onTurnStart(){};
|
|
|
|
@Override
|
|
public String toString() {
|
|
return ""+CardRegistery.get(this.getClass());
|
|
}
|
|
|
|
/**
|
|
* retourne le cout de la carte
|
|
* @return
|
|
*/
|
|
public abstract int getCost();
|
|
|
|
/**
|
|
* diminue les point de vie de la carte
|
|
* @param amountOfHpToLose nombre de hp a perdre
|
|
* @return renvoie true sur si la carte est a 0hp
|
|
*/
|
|
public boolean takeDamage(int amountOfHpToLose)
|
|
{
|
|
if(health <= amountOfHpToLose)
|
|
{
|
|
health = 0;
|
|
}else {
|
|
health -= amountOfHpToLose;
|
|
}
|
|
return health == 0;
|
|
}
|
|
|
|
public boolean hasAlreadyAttacked() {
|
|
return hasAttacked;
|
|
}
|
|
|
|
public void hasAttacked() {
|
|
hasAttacked = true;
|
|
}
|
|
|
|
public void resetAttack() {
|
|
hasAttacked=false;
|
|
}
|
|
}
|
|
|