2018-03-14 00:00:52 +01:00
|
|
|
package inf101.v18.rogue101.items;
|
|
|
|
|
|
|
|
import inf101.v18.rogue101.game.IGame;
|
|
|
|
import inf101.v18.rogue101.objects.IItem;
|
|
|
|
|
2018-03-14 14:00:48 +01:00
|
|
|
import java.util.ArrayList;
|
2018-03-19 19:11:09 +01:00
|
|
|
import java.util.Collections;
|
2018-03-14 00:00:52 +01:00
|
|
|
import java.util.List;
|
|
|
|
|
2018-03-15 00:16:26 +01:00
|
|
|
public class Chest implements IContainer, IStatic {
|
2018-03-20 01:10:30 +01:00
|
|
|
private final List<IItem> container;
|
|
|
|
private final int MAX_SIZE = 10;
|
2018-03-15 00:16:26 +01:00
|
|
|
|
|
|
|
public Chest() {
|
|
|
|
this.container = new ArrayList<>();
|
|
|
|
}
|
|
|
|
|
2018-03-19 19:11:09 +01:00
|
|
|
public Chest(int lvl) {
|
|
|
|
this.container = new ArrayList<>();
|
|
|
|
fill(lvl);
|
|
|
|
}
|
|
|
|
|
2018-03-15 00:16:26 +01:00
|
|
|
public Chest(List<IItem> items) {
|
|
|
|
this.container = items;
|
|
|
|
}
|
2018-03-14 14:00:48 +01:00
|
|
|
|
2018-03-19 19:11:09 +01:00
|
|
|
/**
|
|
|
|
* Randomly fills chest with random items based on dungeon level.
|
|
|
|
*
|
|
|
|
* @param lvl The current dungeon level
|
|
|
|
*/
|
|
|
|
private void fill (int lvl) {
|
|
|
|
//TODO: Implement
|
|
|
|
}
|
|
|
|
|
2018-03-14 00:00:52 +01:00
|
|
|
@Override
|
|
|
|
public IItem get(int i) {
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2018-03-19 19:11:09 +01:00
|
|
|
public List<IItem> getContent() {
|
|
|
|
return Collections.unmodifiableList(container);
|
2018-03-14 00:00:52 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean isFull() {
|
2018-03-19 19:11:09 +01:00
|
|
|
return container.size() >= MAX_SIZE;
|
2018-03-14 00:00:52 +01:00
|
|
|
}
|
|
|
|
|
2018-03-20 01:10:30 +01:00
|
|
|
@Override
|
|
|
|
public IItem getFirst(Class<?> clazz) {
|
|
|
|
for (IItem item : container) {
|
|
|
|
if (clazz.isInstance(item)) {
|
|
|
|
return item;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2018-03-14 00:00:52 +01:00
|
|
|
@Override
|
|
|
|
public int getCurrentHealth() {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getMaxHealth() {
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getName() {
|
2018-03-14 14:00:48 +01:00
|
|
|
return "Chest";
|
2018-03-14 00:00:52 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int getSize() {
|
2018-03-14 14:00:48 +01:00
|
|
|
return 10000;
|
2018-03-14 00:00:52 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
public String getPrintSymbol() {
|
2018-03-19 19:11:09 +01:00
|
|
|
return "\u001b[94m" + "\uD83D\uDDC3" + "\u001b[0m";
|
2018-03-14 00:00:52 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String getSymbol() {
|
|
|
|
return "C";
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int handleDamage(IGame game, IItem source, int amount) {
|
|
|
|
return 0;
|
|
|
|
}
|
2018-03-19 19:11:09 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean addItem(IItem item) {
|
|
|
|
if (container.size() < MAX_SIZE) {
|
|
|
|
container.add(item);
|
|
|
|
return true;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
2018-03-20 01:10:30 +01:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void remove(int i) {
|
|
|
|
container.remove(i);
|
|
|
|
}
|
2018-03-14 00:00:52 +01:00
|
|
|
}
|