Skip to content
Snippets Groups Projects
Commit e6697d91 authored by keyno10's avatar keyno10
Browse files

Penalties interface started

parent f6f48680
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@ import java.util.Collections;
public class Health {
private final ArrayList<Integer> healthBoxes = new ArrayList<>();
private SimpleIntegerProperty numberOfHealth = new SimpleIntegerProperty(0);
private final SimpleIntegerProperty numberOfHealth = new SimpleIntegerProperty(0);
private final ArrayList<HealthChangeListener> healthChangeListeners = new ArrayList<>();
private int bashing = 0;
......@@ -173,4 +173,11 @@ public class Health {
listener.update();
}
}
/**
* Get current penalty
*/
public int getDamagePenalty() {
return healthBoxes.get(bashing);
}
}
package Character;
import Listeners.PenaltyChangeListener;
import javafx.util.Pair;
import java.util.ArrayList;
import java.util.HashMap;
public class Penalties {
private final HashMap<String, Integer> penaltyList = new HashMap<>();
private final Health health;
private final ArrayList<Pair<String,Integer>> penaltyListPairs = new ArrayList<>();
private final ArrayList<PenaltyChangeListener> penaltyListeners = new ArrayList<>();
public Penalties() {
//Initialise Health
health = CharacterInterface.getHealth();
}
/**
* Return list of all penalties
*/
public ArrayList getPenalties() {
public ArrayList<Pair<String, Integer>> getPenalties() {
//Create new array list for return
ArrayList<Pair<String, Integer>> returnList = penaltyListPairs;
......@@ -25,10 +26,6 @@ public class Penalties {
return returnList;
}
/**
* Get wound penalty
*/
/**
* Add new penalty
*/
......@@ -39,5 +36,25 @@ public class Penalties {
/**
* Remove specific penalty
*/
public void removePenalty(String reason) {
penaltyListPairs.removeIf(penalty -> penalty.getKey().equals(reason));
alertPenaltyListeners();
}
/**
* Update penalty listeners
*/
private void alertPenaltyListeners() {
for(PenaltyChangeListener listener : penaltyListeners) {
listener.update();
}
}
/**
* Add new listener
*/
public void addNewListener(PenaltyChangeListener listener) {
penaltyListeners.add(listener);
}
}
......@@ -34,13 +34,8 @@ public class Soak {
*/
public void removeBonus(String reason) {
//Loop through and remove first bonus with given reason
for(Pair<String, Integer[]> bonus: bonuses) {
if(bonus.getKey().equals(reason)) {
bonuses.remove(bonus);
bonuses.removeIf(bonus -> bonus.getKey().equals(reason));
alertListeners();
return;
}
}
}
/**
......
package Listeners;
public interface PenaltyChangeListener {
void update();
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment