package com.weem.epicinventor.placeable;
import com.weem.epicinventor.*;
import com.weem.epicinventor.actor.*;
import com.weem.epicinventor.utility.Rand;
public class Chest extends PlayerContainer {
private static final long serialVersionUID = 10000L;
private boolean hasBeenOpened = false;
public Chest(PlaceableManager pm, Registry rg, String sm, String am, int x, int y, Placeable.State cs) {
super(pm, rg, sm, am, x, y, cs, 8);
type = "Chest";
totalBuildTime = 1;
totalHitPoints = 625;
powerRequired = 0;
powerGenerated = 0;
hitPoints = totalHitPoints;
//figure out drops for chest
String[] drops = new String[42];
drops[0] = "2 ThornTrap 1 1";
drops[1] = "2 ScareCrow 1 1";
drops[2] = "2 SmallFarm 1 1";
drops[3] = "2 LargeFarm 1 1";
drops[4] = "2 RobotCopperBlade 1 1";
drops[5] = "2 RobotSilverBlade 1 1";
drops[6] = "15 Wood 1 10";
drops[7] = "10 WoodBlock 1 2";
drops[8] = "15 Stone 1 10";
drops[9] = "10 StoneBlock 1 2";
drops[10] = "10 Copper 1 5";
drops[11] = "5 CopperSpear 1 1";
drops[12] = "5 CopperBlade 1 1";
drops[13] = "10 Iron 1 4";
drops[14] = "5 IronSpear 1 1";
drops[15] = "5 IronBlade 1 1";
drops[16] = "5 Silver 1 3";
drops[17] = "5 SilverSpear 1 1";
drops[18] = "5 SilverBlade 1 1";
drops[19] = "5 Gold 1 2";
drops[20] = "5 GoldSpear 1 1";
drops[21] = "5 GoldBlade 1 1";
drops[22] = "2 Platinum 1 2";
drops[23] = "5 GunPowder 1 2";
drops[24] = "10 Bow 1 1";
drops[25] = "10 Crossbow 1 1";
drops[26] = "10 Cloth 1 5";
drops[27] = "10 Leather 1 5";
drops[28] = "10 Dye 1 1";
drops[29] = "2 Sapphire 1 3";
drops[30] = "2 Ruby 1 2";
drops[31] = "1 Emerald 1 1";
drops[32] = "1 Diamond 1 1";
drops[33] = "10 Tusk 1 5";
drops[34] = "10 Web 1 5";
drops[35] = "10 Pebble 1 5";
drops[36] = "10 Flower 1 5";
drops[37] = "10 Fur 1 5";
drops[38] = "10 Thorn 1 5";
drops[39] = "10 Web 1 5";
drops[40] = "10 WheatSeed 1 5";
drops[41] = "10 PumpkinSeed 1 5";
int i = 0;
int added = 0;
do {
i++;
String drop = drops[Rand.getRange(0, drops.length - 1)];
String[] parts = drop.split(" ");
int percentage = Integer.parseInt(parts[0]);
if (Rand.getRange(1, 100) <= percentage) {
added++;
inventory.addToInventory(0, parts[1], Integer.parseInt(parts[2]), Integer.parseInt(parts[3]));
}
} while (i < 1000 && added < 8);
}
@Override
public void toggled() {
if (!hasBeenOpened) {
//first time openeing - set item levels to player level +3
Player p = registry.getPlayerManager().getCurrentPlayer();
for (int i = 0; i < inventorySize; i++) {
int qty = inventory.getQtyFromSlot(i);
if (qty > 0) {
int level = 1;
int levelCheck = Rand.getRange(1, 100);
if (p != null) {
level = p.getLevel();
if (levelCheck > 90) {
level += 3;
} else if (levelCheck > 75) {
level += 2;
} else if (levelCheck > 50) {
level += 1;
}
}
if (level < 1) {
level = 1;
}
if (level > 20) {
level = 20;
}
inventory.setLevelFromSlot(i, level);
}
}
hasBeenOpened = true;
}
}
@Override
public void setTransient(Registry rg) {
totalHitPoints = 500;
super.setTransient(rg);
}
@Override
public void updateLong() {
super.updateLong();
if (inventory.getUsedSlots() == 0) {
isDirty = true;
}
}
}