package org.reunionemu.jreunion.game.items.equipment;
import org.reunionemu.jcommon.ParsedItem;
import org.reunionemu.jreunion.game.Item;
import org.reunionemu.jreunion.game.PlayerItem;
import org.reunionemu.jreunion.server.Reference;
/**
* @author Aidamina
* @license http://reunion.googlecode.com/svn/trunk/license.txt
*/
public class Armor extends PlayerItem {
private int race; // -1 - Common; 0 - Bulkan; 1 - Kailipton; 2 - Aidia;
// 3 - Human
private int position; // 0 - head; 1 - body; 2 - legs; 3 - Shoulder Mount;
// 4 - Feet; 5 - Shield;
private float def;
private float boltMagicDef; // value in %
private float coldMagicDef; // value in %
private float volcanicMagicDef; // value in %
private float stunMagicDef; // value in %
private float magicDef; // value in %
private float manaUsed; // value in %
public Armor(int id) {
super(id);
loadFromReference(id);
}
public float getBoltMagicDef() {
return boltMagicDef;
}
public float getColdMagicDef() {
return coldMagicDef;
}
public float getDef(Item<?> item) {
int gradeLevel = item.getGradeLevel();
if(gradeLevel == 0)
return def;
if(getLevel() < 181){
return def * ((gradeLevel==1?0.12f:0)+(gradeLevel==2?0.26f:0)+
(gradeLevel==3?0.44f:0)+(gradeLevel==4?0.68f:0)+
(gradeLevel==5?1f:0)+1);
} else {
return def * ((gradeLevel * 0.1f)+1);
}
}
public float getMagicDef(Item<?> item) {
int gradeLevel = item.getGradeLevel();
if(gradeLevel == 0)
return magicDef;
if(getLevel() < 181){
return (int)(magicDef * ((gradeLevel==1?0.12f:0)+(int)(gradeLevel==2?0.26f:0)+
(gradeLevel==3?0.44f:0)+(gradeLevel==4?0.68f:0)+
(gradeLevel==5?1f:0)+1));
} else {
return (int)(magicDef * ((gradeLevel * 0.1f)+1));
}
}
public float getManaUsed() {
return manaUsed;
}
public int getPosition() {
return position;
}
public int getRace() {
return race;
}
public float getStunMagicDef() {
return stunMagicDef;
}
public float getVolcanicMagicDef() {
return volcanicMagicDef;
}
@Override
public void loadFromReference(int id) {
super.loadFromReference(id);
ParsedItem item = Reference.getInstance().getItemReference()
.getItemById(id);
if (item == null) {
// cant find Item in the reference continue to load defaults:
setDef(0);
setReqStr(0);
setReqInt(0);
setReqDex(0);
setLevel(0);
setRace(-1);
setPosition(-1);
setBoltMagicDef(0);
setVolcanicMagicDef(0);
setColdMagicDef(0);
setStunMagicDef(0);
setMagicDef(0);
setManaUsed(0);
} else {
if (item.checkMembers(new String[] { "Def" })) {
// use member from file
setDef(Integer.parseInt(item.getMemberValue("Def")));
//setUnmodifiedDef(Integer.parseInt(item.getMemberValue("Def")));
} else {
// use default
setDef(0);
}
if (item.checkMembers(new String[] { "ReqStr" })) {
// use member from file
setReqStr(Integer.parseInt(item.getMemberValue("ReqStr")));
} else {
// use default
setReqStr(0);
}
if (item.checkMembers(new String[] { "ReqInt" })) {
// use member from file
setReqInt(Integer.parseInt(item.getMemberValue("ReqInt")));
} else {
// use default
setReqInt(0);
}
if (item.checkMembers(new String[] { "ReqDex" })) {
// use member from file
setReqDex(Integer.parseInt(item.getMemberValue("ReqDex")));
} else {
// use default
setReqDex(0);
}
if (item.checkMembers(new String[] { "Level" })) {
// use member from file
setLevel(Integer.parseInt(item.getMemberValue("Level")));
} else {
// use default
setLevel(0);
}
if (item.checkMembers(new String[] { "Race" })) {
// use member from file
setRace(Integer.parseInt(item.getMemberValue("Race")));
} else {
// use default
setRace(-1);
}
if (item.checkMembers(new String[] { "Position" })) {
// use member from file
setPosition(Integer.parseInt(item.getMemberValue("Position")));
} else {
// use default
setPosition(-1);
}
if (item.checkMembers(new String[] { "BoltMagicDef" })) {
// use member from file
setBoltMagicDef(Float.parseFloat(item
.getMemberValue("BoltMagicDef")));
} else {
// use default
setBoltMagicDef(0);
}
if (item.checkMembers(new String[] { "VolcanicMagicDef" })) {
// use member from file
setVolcanicMagicDef(Float.parseFloat(item
.getMemberValue("VolcanicMagicDef")));
} else {
// use default
setVolcanicMagicDef(0);
}
if (item.checkMembers(new String[] { "ColdMagicDef" })) {
// use member from file
setColdMagicDef(Float.parseFloat(item
.getMemberValue("ColdMagicDef")));
} else {
// use default
setColdMagicDef(0);
}
if (item.checkMembers(new String[] { "StunMagicDef" })) {
// use member from file
setStunMagicDef(Float.parseFloat(item
.getMemberValue("StunMagicDef")));
} else {
// use default
setStunMagicDef(0);
}
if (item.checkMembers(new String[] { "MagicDef" })) {
// use member from file
setMagicDef(Float.parseFloat(item.getMemberValue("MagicDef")));
} else {
// use default
setMagicDef(0);
}
if (item.checkMembers(new String[] { "ManaUsed" })) {
// use member from file
setManaUsed(Float.parseFloat(item.getMemberValue("ManaUsed")));
} else {
// use default
setManaUsed(0);
}
}
}
public void setBoltMagicDef(float boltMagicDef) {
this.boltMagicDef = boltMagicDef;
}
public void setColdMagicDef(float coldMagicDef) {
this.coldMagicDef = coldMagicDef;
}
public void setDef(float def) {
this.def = def;
}
public void setMagicDef(float magicDef) {
this.magicDef = magicDef;
}
public void setManaUsed(float manaUsed) {
this.manaUsed = manaUsed;
}
public void setPosition(int position) {
this.position = position;
}
public void setRace(int race) {
this.race = race;
}
public void setStunMagicDef(float stunMagicDef) {
this.stunMagicDef = stunMagicDef;
}
public void setVolcanicMagicDef(float volcanicMagicDef) {
this.volcanicMagicDef = volcanicMagicDef;
}
}