You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
2.0 KiB
118 lines
2.0 KiB
11 years ago
|
package mightypork.rogue.world;
|
||
|
|
||
|
|
||
|
import java.io.IOException;
|
||
|
|
||
11 years ago
|
import mightypork.gamecore.util.ion.IonBundle;
|
||
|
import mightypork.gamecore.util.ion.IonObjBundled;
|
||
11 years ago
|
import mightypork.rogue.world.item.Item;
|
||
11 years ago
|
|
||
|
|
||
11 years ago
|
/**
|
||
|
* Player information stored in world.
|
||
|
*
|
||
|
* @author MightyPork
|
||
|
*/
|
||
11 years ago
|
public class PlayerData implements IonObjBundled {
|
||
11 years ago
|
|
||
11 years ago
|
/** Player inventory size */
|
||
|
private static final int INV_SIZE = 8;
|
||
|
|
||
|
/** Attack str with bare hands */
|
||
|
public static final int BARE_ATTACK = 1;
|
||
|
|
||
|
|
||
11 years ago
|
private int eid = -1; // marks not initialized
|
||
|
private int level;
|
||
|
|
||
11 years ago
|
private Inventory inventory = new Inventory(INV_SIZE);
|
||
|
|
||
11 years ago
|
private int selectedWeapon = -1;
|
||
11 years ago
|
|
||
11 years ago
|
|
||
|
@Override
|
||
|
public void load(IonBundle bundle) throws IOException
|
||
|
{
|
||
11 years ago
|
eid = bundle.get("eid", eid);
|
||
|
level = bundle.get("floor", level);
|
||
|
selectedWeapon = bundle.get("weapon", selectedWeapon);
|
||
11 years ago
|
|
||
|
inventory = bundle.get("inv", inventory);
|
||
11 years ago
|
}
|
||
|
|
||
|
|
||
|
@Override
|
||
|
public void save(IonBundle bundle) throws IOException
|
||
|
{
|
||
11 years ago
|
bundle.put("eid", eid);
|
||
|
bundle.put("floor", level);
|
||
11 years ago
|
bundle.put("weapon", selectedWeapon);
|
||
11 years ago
|
bundle.put("inv", inventory);
|
||
11 years ago
|
}
|
||
|
|
||
|
|
||
|
public void setEID(int eid)
|
||
|
{
|
||
|
if (isInitialized()) throw new RuntimeException("Cannot change player EID.");
|
||
|
this.eid = eid;
|
||
|
}
|
||
|
|
||
|
|
||
11 years ago
|
public void setLevelNumber(int level)
|
||
11 years ago
|
{
|
||
|
this.level = level;
|
||
|
}
|
||
|
|
||
|
|
||
|
public int getEID()
|
||
|
{
|
||
|
return eid;
|
||
|
}
|
||
|
|
||
|
|
||
11 years ago
|
public int getLevelNumber()
|
||
11 years ago
|
{
|
||
|
return level;
|
||
|
}
|
||
|
|
||
|
|
||
|
public boolean isInitialized()
|
||
|
{
|
||
|
return eid != -1;
|
||
|
}
|
||
|
|
||
11 years ago
|
|
||
|
public Inventory getInventory()
|
||
|
{
|
||
|
return inventory;
|
||
|
}
|
||
|
|
||
|
|
||
11 years ago
|
public int getSelectedWeaponIndex()
|
||
|
{
|
||
|
return selectedWeapon;
|
||
|
}
|
||
|
|
||
|
|
||
11 years ago
|
public boolean hasWeaponSelected()
|
||
|
{
|
||
|
return !(selectedWeapon < 0 || selectedWeapon >= getInventory().getSize());
|
||
|
}
|
||
|
|
||
|
|
||
11 years ago
|
public Item getSelectedWeapon()
|
||
11 years ago
|
{
|
||
11 years ago
|
if (!hasWeaponSelected()) return null;
|
||
11 years ago
|
return inventory.getItem(selectedWeapon);
|
||
|
}
|
||
|
|
||
11 years ago
|
|
||
|
public void selectWeapon(int selectedWeapon)
|
||
|
{
|
||
|
this.selectedWeapon = selectedWeapon;
|
||
11 years ago
|
|
||
|
if (!hasWeaponSelected()) selectedWeapon = -1; // normalize
|
||
11 years ago
|
}
|
||
|
|
||
11 years ago
|
}
|