/*******************************************************************************
* Copyright (c) 2013 Philip Collin.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* Philip Collin - initial API and implementation
******************************************************************************/
package com.lyeeedar.Roguelike3D.Game.Item;
import java.util.HashMap;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.scenes.scene2d.ui.Label;
import com.badlogic.gdx.scenes.scene2d.ui.Skin;
import com.badlogic.gdx.scenes.scene2d.ui.Table;
import com.badlogic.gdx.scenes.scene2d.ui.Label.LabelStyle;
import com.lyeeedar.Roguelike3D.Game.GameData;
import com.lyeeedar.Roguelike3D.Game.GameData.Damage_Type;
import com.lyeeedar.Roguelike3D.Game.GameData.Element;
public abstract class Equipment_ARMOUR extends Equippable {
/**
*
*/
private static final long serialVersionUID = -7412331863128890744L;
public int STRENGTH;
public HashMap<Element, Integer> ELE_DEF;
public HashMap<Damage_Type, Integer> DAM_DEF;
public Equipment_ARMOUR(float WEIGHT, Item_Type type, int strength, HashMap<Element, Integer> ELE_DEF, HashMap<Damage_Type, Integer> DAM_DEF) {
super(WEIGHT, type);
this.ELE_DEF = ELE_DEF;
this.DAM_DEF = DAM_DEF;
this.STRENGTH = strength;
}
@Override
public Table getDescriptionWidget(Skin skin)
{
Table table = new Table();
table.add(new Label("Name: "+name, skin));
table.row();
table.add(new Label("Description: "+description, skin));
table.row();
table.add(new Label("Rarity: ", skin));
table.add(GameData.getRarityLabel(rarity, skin));
table.row();
table.add(new Label("Weight: "+WEIGHT, skin));
table.row();
if (STRENGTH != 0) {
table.add(new Label("Strength Bonus: "+STRENGTH, skin));
table.row();
}
String dam = "Damage Defenses: \n";
for (Damage_Type dt : Damage_Type.values())
{
dam += " "+dt+": "+DAM_DEF.get(dt)+"\n";
}
table.add(new Label(dam, skin));
table.row();
String element = "Elemental Defenses: \n";
for (Element e : Element.values())
{
element += " "+e+": "+ELE_DEF.get(e)+"\n";
}
table.add(new Label(element, skin));
return table;
}
@Override
public Table getComparisonWidget(Equippable equip, Skin skin)
{
Equipment_ARMOUR other = (Equipment_ARMOUR) equip;
Table table = new Table();
table.add(new Label("Name: "+other.name, skin));
table.row();
table.add(new Label("Description: "+other.description, skin));
table.row();
table.add(new Label("Rarity: ", skin));
table.add(GameData.getRarityLabel(other.rarity, skin));
table.row();
table.add(new Label("Weight: ", skin));
table.add(getComparison(WEIGHT, other.WEIGHT, skin, true));
table.row();
if (STRENGTH != 0) {
table.add(new Label("Strength Bonus: ", skin));
table.add(getComparison(STRENGTH, other.STRENGTH, skin, false));
table.row();
}
Table dam = new Table();
dam.add(new Label("Damage Defenses: ", skin));
dam.row();
for (Damage_Type dt : Damage_Type.values())
{
dam.add(new Label(" "+dt+": ", skin));
dam.add(getComparison(DAM_DEF.get(dt), other.DAM_DEF.get(dt), skin, false));
dam.row();
}
table.add(dam);
table.row();
Table element = new Table();
element.add(new Label("Elemental Defenses: ", skin));
element.row();
for (Element ele : Element.values())
{
element.add(new Label(" "+ele+": ", skin));
element.add(getComparison(ELE_DEF.get(ele), other.ELE_DEF.get(ele), skin, false));
element.row();
}
table.add(element);
return table;
}
}