Kristian Knarvik a869cb1049 Kind of finished
It is possible to win and lose the game.
The boss is quite hard to beat, but it should be possible if RNGsus is with you.
Girls have an increasing chance of having a weapon based on map lvl.
Player has been nerfed.
Shields have been nerfed.
Girls' hp has been nerfed.
2018-03-21 00:10:42 +01:00

124 lines
2.8 KiB
Java

package inf101.v18.rogue101.items;
import inf101.v18.rogue101.game.IGame;
import inf101.v18.rogue101.objects.IItem;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;
public class Chest implements IContainer, IStatic {
private final List<IItem> container;
private final int MAX_SIZE = 10;
public Chest() {
this.container = new ArrayList<>();
}
/**
* Randomly fills chest with random items based on dungeon level.
*
* @param lvl The current dungeon level
*/
public void fill (int lvl) {
Random random = new Random();
int itemChance = 5;
List<IItem> items = new ArrayList<>();
items.add(new Staff());
items.add(new Sword());
items.add(new Bow());
items.add(new Binoculars());
items.add(new Shield());
for (int i = 0; i < MAX_SIZE; i++) {
int num = random.nextInt(100);
boolean added = false;
for (int j = 0; j < items.size(); j++) {
if (num < (itemChance * (j + 1)) + ((j + 1) * lvl)) {
addItem(items.get(j));
items.remove(j); //We don't want duplicates
added = true;
break;
}
}
if (!added && num > 70) {
addItem(new HealthPotion());
}
}
}
@Override
public IItem get(int i) {
return container.get(i);
}
@Override
public List<IItem> getContent() {
return Collections.unmodifiableList(container);
}
@Override
public boolean hasSpace() {
return container.size() < MAX_SIZE;
}
@Override
public IItem getFirst(Class<?> clazz) {
for (IItem item : container) {
if (clazz.isInstance(item)) {
return item;
}
}
return null;
}
@Override
public int getCurrentHealth() {
return 0;
}
@Override
public int getMaxHealth() {
return 0;
}
@Override
public String getName() {
return "Chest";
}
@Override
public int getSize() {
return 10000;
}
public String getPrintSymbol() {
return "\u001b[94m" + "\uD83D\uDDC3" + "\u001b[0m";
}
@Override
public String getSymbol() {
return "C";
}
@Override
public int handleDamage(IGame game, IItem source, int amount) {
return 0;
}
@Override
public boolean addItem(IItem item) {
if (container.size() < MAX_SIZE) {
container.add(item);
return true;
} else {
return false;
}
}
@Override
public void remove(int i) {
container.remove(i);
}
}