mirror of
https://github.com/collinsmith/riiablo.git
synced 2025-07-04 15:27:30 +07:00
Added player skill levels to SpellsPanel
Added player skill levels to SpellsPanel Increased visibility of D2S.SkillData Added Skills class to Player to retrieve skill levels (without modifiers)
This commit is contained in:
@ -49,7 +49,7 @@ public class Fonts {
|
||||
|
||||
data = fontformal10.getData();
|
||||
data.lineHeight = data.xHeight = data.capHeight = 14;
|
||||
data.ascent = 14;
|
||||
data.ascent = 17;
|
||||
data.down = -14;
|
||||
|
||||
data = fontformal11.getData();
|
||||
|
@ -601,15 +601,15 @@ public class D2S {
|
||||
}
|
||||
}
|
||||
|
||||
static class SkillData {
|
||||
public static class SkillData {
|
||||
static final byte[] SECTION_HEADER = {0x69, 0x66};
|
||||
|
||||
static final int NUM_TREES = 3;
|
||||
static final int NUM_SKILLS = 10;
|
||||
static final int SIZE = SECTION_HEADER.length + (NUM_TREES * NUM_SKILLS);
|
||||
|
||||
byte header[];
|
||||
byte data[];
|
||||
public byte header[];
|
||||
public byte data[];
|
||||
|
||||
static SkillData obtain(ByteBuffer buffer) {
|
||||
return new SkillData().read(buffer);
|
||||
|
@ -26,7 +26,7 @@ public class SkillDesc extends Excel<SkillDesc.Entry> {
|
||||
public String str_alt;
|
||||
@Column(format = "str mana")
|
||||
public String str_mana;
|
||||
@Column public String descdam;
|
||||
@Column public int descdam;
|
||||
@Column(format = "ddam calc1")
|
||||
public String ddam_calc1;
|
||||
@Column(format = "ddam calc2")
|
||||
@ -40,91 +40,91 @@ public class SkillDesc extends Excel<SkillDesc.Entry> {
|
||||
@Column public String p3dmelem;
|
||||
@Column public String p3dmmin;
|
||||
@Column public String p3dmmax;
|
||||
@Column public String descatt;
|
||||
@Column public int descatt;
|
||||
@Column public String descmissile1;
|
||||
@Column public String descmissile2;
|
||||
@Column public String descmissile3;
|
||||
@Column public String descline1;
|
||||
@Column public int descline1;
|
||||
@Column public String desctexta1;
|
||||
@Column public String desctextb1;
|
||||
@Column public String desccalca1;
|
||||
@Column public String desccalcb1;
|
||||
@Column public String descline2;
|
||||
@Column public int descline2;
|
||||
@Column public String desctexta2;
|
||||
@Column public String desctextb2;
|
||||
@Column public String desccalca2;
|
||||
@Column public String desccalcb2;
|
||||
@Column public String descline3;
|
||||
@Column public int descline3;
|
||||
@Column public String desctexta3;
|
||||
@Column public String desctextb3;
|
||||
@Column public String desccalca3;
|
||||
@Column public String desccalcb3;
|
||||
@Column public String descline4;
|
||||
@Column public int descline4;
|
||||
@Column public String desctexta4;
|
||||
@Column public String desctextb4;
|
||||
@Column public String desccalca4;
|
||||
@Column public String desccalcb4;
|
||||
@Column public String descline5;
|
||||
@Column public int descline5;
|
||||
@Column public String desctexta5;
|
||||
@Column public String desctextb5;
|
||||
@Column public String desccalca5;
|
||||
@Column public String desccalcb5;
|
||||
@Column public String descline6;
|
||||
@Column public int descline6;
|
||||
@Column public String desctexta6;
|
||||
@Column public String desctextb6;
|
||||
@Column public String desccalca6;
|
||||
@Column public String desccalcb6;
|
||||
@Column public String dsc2line1;
|
||||
@Column public int dsc2line1;
|
||||
@Column public String dsc2texta1;
|
||||
@Column public String dsc2textb1;
|
||||
@Column public String dsc2calca1;
|
||||
@Column public String dsc2calcb1;
|
||||
@Column public String dsc2line2;
|
||||
@Column public int dsc2line2;
|
||||
@Column public String dsc2texta2;
|
||||
@Column public String dsc2textb2;
|
||||
@Column public String dsc2calca2;
|
||||
@Column public String dsc2calcb2;
|
||||
@Column public String dsc2line3;
|
||||
@Column public int dsc2line3;
|
||||
@Column public String dsc2texta3;
|
||||
@Column public String dsc2textb3;
|
||||
@Column public String dsc2calca3;
|
||||
@Column public String dsc2calcb3;
|
||||
@Column public String dsc2line4;
|
||||
@Column public int dsc2line4;
|
||||
@Column public String dsc2texta4;
|
||||
@Column public String dsc2textb4;
|
||||
@Column public String dsc2calca4;
|
||||
@Column public String dsc2calcb4;
|
||||
@Column public String dsc3line1;
|
||||
@Column public int dsc3line1;
|
||||
@Column public String dsc3texta1;
|
||||
@Column public String dsc3textb1;
|
||||
@Column public String dsc3calca1;
|
||||
@Column public String dsc3calcb1;
|
||||
@Column public String dsc3line2;
|
||||
@Column public int dsc3line2;
|
||||
@Column public String dsc3texta2;
|
||||
@Column public String dsc3textb2;
|
||||
@Column public String dsc3calca2;
|
||||
@Column public String dsc3calcb2;
|
||||
@Column public String dsc3line3;
|
||||
@Column public int dsc3line3;
|
||||
@Column public String dsc3texta3;
|
||||
@Column public String dsc3textb3;
|
||||
@Column public String dsc3calca3;
|
||||
@Column public String dsc3calcb3;
|
||||
@Column public String dsc3line4;
|
||||
@Column public int dsc3line4;
|
||||
@Column public String dsc3texta4;
|
||||
@Column public String dsc3textb4;
|
||||
@Column public String dsc3calca4;
|
||||
@Column public String dsc3calcb4;
|
||||
@Column public String dsc3line5;
|
||||
@Column public int dsc3line5;
|
||||
@Column public String dsc3texta5;
|
||||
@Column public String dsc3textb5;
|
||||
@Column public String dsc3calca5;
|
||||
@Column public String dsc3calcb5;
|
||||
@Column public String dsc3line6;
|
||||
@Column public int dsc3line6;
|
||||
@Column public String dsc3texta6;
|
||||
@Column public String dsc3textb6;
|
||||
@Column public String dsc3calca6;
|
||||
@Column public String dsc3calcb6;
|
||||
@Column public String dsc3line7;
|
||||
@Column public int dsc3line7;
|
||||
@Column public String dsc3texta7;
|
||||
@Column public String dsc3textb7;
|
||||
@Column public String dsc3calca7;
|
||||
|
@ -20,5 +20,11 @@ public class Skills extends Excel<Skills.Entry> {
|
||||
@Column public String monanim;
|
||||
@Column public int seqnum;
|
||||
@Column public int seqinput;
|
||||
@Column public int reqlevel;
|
||||
@Column public int startmana;
|
||||
@Column public int minmana;
|
||||
@Column public int manashift;
|
||||
@Column public int mana;
|
||||
@Column public int lvlmana;
|
||||
}
|
||||
}
|
||||
|
@ -86,6 +86,7 @@ public class Player extends Entity {
|
||||
boolean alternate;
|
||||
boolean ignoreUpdate;
|
||||
public Stats stats;
|
||||
public Skills skills;
|
||||
public final CharacterClass charClass;
|
||||
|
||||
Array<Item> inventory = new Array<>();
|
||||
@ -96,11 +97,13 @@ public class Player extends Entity {
|
||||
public Player(String name, CharacterClass characterClass) {
|
||||
this(name, characterClass.id);
|
||||
stats = new StatsImpl(name, characterClass.id);
|
||||
skills = new SkillsImpl();
|
||||
}
|
||||
|
||||
public Player(D2S d2s) {
|
||||
this(d2s.name, d2s.charClass);
|
||||
stats = new D2SStats(d2s);
|
||||
skills = new D2SSkills(d2s);
|
||||
loadEquipped(d2s.items.equipped);
|
||||
loadInventory(d2s.items.inventory);
|
||||
}
|
||||
@ -541,4 +544,30 @@ public class Player extends Entity {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public interface Skills {
|
||||
int getLevel(int skill);
|
||||
}
|
||||
|
||||
public class SkillsImpl implements Skills {
|
||||
SkillsImpl() {}
|
||||
|
||||
@Override
|
||||
public int getLevel(int skill) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public class D2SSkills implements Skills {
|
||||
public final D2S.SkillData skills;
|
||||
D2SSkills(D2S d2s) {
|
||||
this.skills = d2s.skills;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLevel(int skill) {
|
||||
skill -= charClass.firstSpell;
|
||||
return skills.data[skill];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -2,6 +2,7 @@ package com.riiablo.panel;
|
||||
|
||||
import com.badlogic.gdx.assets.AssetDescriptor;
|
||||
import com.badlogic.gdx.graphics.g2d.Batch;
|
||||
import com.badlogic.gdx.graphics.g2d.BitmapFont;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.scenes.scene2d.InputEvent;
|
||||
import com.badlogic.gdx.scenes.scene2d.Touchable;
|
||||
@ -138,13 +139,14 @@ public class SpellsPanel extends WidgetGroup implements Disposable {
|
||||
float[] X = { 0, 15, 84, 153 };
|
||||
float[] Y = { 0, 370, 302, 234, 166, 98, 30 };
|
||||
for (int i = charClass.firstSpell; i < charClass.lastSpell; i++) {
|
||||
Skills.Entry skill = Riiablo.files.skills.get(i);
|
||||
final Skills.Entry skill = Riiablo.files.skills.get(i);
|
||||
final SkillDesc.Entry desc = Riiablo.files.skilldesc.get(skill.skilldesc);
|
||||
final Table details = new Table() {{
|
||||
final float SPACING = 2;
|
||||
final BitmapFont font = Riiablo.fonts.font16;
|
||||
setBackground(PaletteIndexedColorDrawable.MODAL_FONT16);
|
||||
add(new Label(Riiablo.string.lookup(desc.str_name), Riiablo.fonts.font16, Riiablo.colors.green)).center().space(SPACING).row();
|
||||
add(new Label(Riiablo.fonts.font16) {{
|
||||
add(new Label(Riiablo.string.lookup(desc.str_name), font, Riiablo.colors.green)).center().space(SPACING).row();
|
||||
add(new Label(font) {{
|
||||
// TODO: It might possible to optimize this more -- goal is to reverse lines since they are backwards for some reason
|
||||
String text = Riiablo.string.lookup(desc.str_long);
|
||||
String[] lines = StringUtils.split(text, '\n');
|
||||
@ -153,11 +155,17 @@ public class SpellsPanel extends WidgetGroup implements Disposable {
|
||||
setText(text);
|
||||
setAlignment(Align.center);
|
||||
}}).center().space(SPACING).row();
|
||||
add(new Label(Riiablo.string.lookup("skilldesc3") + skill.reqlevel, font)).center().space(SPACING).row();
|
||||
add().height(font.getLineHeight()).center().space(SPACING).row();
|
||||
add().height(font.getLineHeight()).center().space(SPACING).row();
|
||||
add(new Label(Riiablo.string.lookup("StrSkill2") + 0, font)).center().space(SPACING).row();
|
||||
pack();
|
||||
}};
|
||||
Button button = new Button(new Button.ButtonStyle(
|
||||
new TextureRegionDrawable(Skillicon.getTexture(desc.IconCel)),
|
||||
new TextureRegionDrawable(Skillicon.getTexture(desc.IconCel + 1)))) {
|
||||
new TextureRegionDrawable(Skillicon.getTexture(desc.IconCel + 1))) {{
|
||||
disabled = up;
|
||||
}}) {
|
||||
@Override
|
||||
public void draw(PaletteIndexedBatch batch, float parentAlpha) {
|
||||
super.draw(batch, parentAlpha);
|
||||
@ -169,11 +177,15 @@ public class SpellsPanel extends WidgetGroup implements Disposable {
|
||||
button.setPosition(X[desc.SkillColumn], Y[desc.SkillRow]);
|
||||
//button.setSize(48, 48);
|
||||
|
||||
Label skillLevel = new Label("0", Riiablo.fonts.font16);
|
||||
// TODO: can be lazily init if default is 0
|
||||
int sLvl = gameScreen.player.skills.getLevel(i);
|
||||
Label skillLevel = new Label(sLvl > 0 ? Integer.toString(sLvl) : "", sLvl > 9 ? Riiablo.fonts.fontformal10 : Riiablo.fonts.font16);
|
||||
skillLevel.setAlignment(Align.center);
|
||||
skillLevel.setSize(16, 14);
|
||||
skillLevel.setPosition(X[desc.SkillColumn] + 44, Y[desc.SkillRow] - 12);
|
||||
//skillLevel.setSize(16, 14);
|
||||
//skillLevel.setPosition(X[desc.SkillColumn] + 44, Y[desc.SkillRow] - 12);
|
||||
skillLevel.setPosition(X[desc.SkillColumn] + 52, Y[desc.SkillRow] - 5, Align.center);
|
||||
button.setUserObject(skillLevel);
|
||||
button.setDisabled(sLvl <= 0);
|
||||
|
||||
Tab tab = tabs[desc.SkillPage];
|
||||
tab.addActor(button);
|
||||
|
Reference in New Issue
Block a user