Switched to correct gem mode by using gemapplytype column (See #24)

This commit is contained in:
Collin Smith
2019-03-28 03:27:13 -07:00
parent 20b84c80b9
commit 754f4be60d
2 changed files with 7 additions and 19 deletions

View File

@ -39,4 +39,5 @@ public class ItemEntry extends Excel.Entry {
@Column public int mindam; @Column public int mindam;
@Column public int maxdam; @Column public int maxdam;
@Column public int speed; @Column public int speed;
@Column public int gemapplytype;
} }

View File

@ -79,9 +79,8 @@ public class Item extends Actor implements Disposable {
private static final int WEAPON_PROPS = 0; private static final int WEAPON_PROPS = 0;
private static final int ARMOR_PROPS = 1; private static final int ARMOR_PROPS = 1;
private static final int HELM_PROPS = 2; private static final int SHIELD_PROPS = 2;
private static final int SHIELD_PROPS = 3; private static final int NUM_GEM_PROPS = 3;
private static final int NUM_GEM_PROPS = 4;
private static final PropertyList[] EMPTY_STAT_ARRAY = new PropertyList[NUM_PROPS]; private static final PropertyList[] EMPTY_STAT_ARRAY = new PropertyList[NUM_PROPS];
@ -222,7 +221,6 @@ public class Item extends Actor implements Disposable {
stats = new PropertyList[NUM_GEM_PROPS]; stats = new PropertyList[NUM_GEM_PROPS];
stats[WEAPON_PROPS] = new PropertyList().add(gem.weaponModCode, gem.weaponModParam, gem.weaponModMin, gem.weaponModMax); stats[WEAPON_PROPS] = new PropertyList().add(gem.weaponModCode, gem.weaponModParam, gem.weaponModMin, gem.weaponModMax);
stats[ARMOR_PROPS ] = new PropertyList().add(gem.helmModCode, gem.helmModParam, gem.helmModMin, gem.helmModMax); stats[ARMOR_PROPS ] = new PropertyList().add(gem.helmModCode, gem.helmModParam, gem.helmModMin, gem.helmModMax);
stats[HELM_PROPS ] = stats[ARMOR_PROPS];
stats[SHIELD_PROPS] = new PropertyList().add(gem.shieldModCode, gem.shieldModParam, gem.shieldModMin, gem.shieldModMax); stats[SHIELD_PROPS] = new PropertyList().add(gem.shieldModCode, gem.shieldModParam, gem.shieldModMin, gem.shieldModMax);
} else { } else {
stats = EMPTY_STAT_ARRAY; stats = EMPTY_STAT_ARRAY;
@ -862,8 +860,9 @@ public class Item extends Actor implements Disposable {
assert stats.length == NUM_GEM_PROPS; assert stats.length == NUM_GEM_PROPS;
add().height(font.getLineHeight()).space(SPACING).row(); add().height(font.getLineHeight()).space(SPACING).row();
add(new Label(Riiablo.string.lookup("GemXp3") + " " + stats[WEAPON_PROPS].copy().reduce().get().format(), font, Riiablo.colors.white)).center().space(SPACING).row(); add(new Label(Riiablo.string.lookup("GemXp3") + " " + stats[WEAPON_PROPS].copy().reduce().get().format(), font, Riiablo.colors.white)).center().space(SPACING).row();
add(new Label(Riiablo.string.lookup("GemXp4") + " " + stats[ARMOR_PROPS ].copy().reduce().get().format(), font, Riiablo.colors.white)).center().space(SPACING).row(); String tmp = stats[ARMOR_PROPS].copy().reduce().get().format();
add(new Label(Riiablo.string.lookup("GemXp1") + " " + stats[HELM_PROPS ].copy().reduce().get().format(), font, Riiablo.colors.white)).center().space(SPACING).row(); add(new Label(Riiablo.string.lookup("GemXp4") + " " + tmp, font, Riiablo.colors.white)).center().space(SPACING).row();
add(new Label(Riiablo.string.lookup("GemXp1") + " " + tmp, font, Riiablo.colors.white)).center().space(SPACING).row();
add(new Label(Riiablo.string.lookup("GemXp2") + " " + stats[SHIELD_PROPS].copy().reduce().get().format(), font, Riiablo.colors.white)).center().space(SPACING).row(); add(new Label(Riiablo.string.lookup("GemXp2") + " " + stats[SHIELD_PROPS].copy().reduce().get().format(), font, Riiablo.colors.white)).center().space(SPACING).row();
add().height(font.getLineHeight()).space(SPACING).row(); add().height(font.getLineHeight()).space(SPACING).row();
} }
@ -931,19 +930,7 @@ public class Item extends Actor implements Disposable {
PropertyList magicPropsAggregate = magicProps.copy(); PropertyList magicPropsAggregate = magicProps.copy();
for (Item socket : socketed) { for (Item socket : socketed) {
if (socket.type.is("gem") | socket.type.is("rune")) { if (socket.type.is("gem") | socket.type.is("rune")) {
int socketType; magicPropsAggregate.addAll(socket.stats[base.gemapplytype]);
if (Item.this.type.is("weap")) {
socketType = WEAPON_PROPS;
} else if (Item.this.type.is("shld")) {
socketType = SHIELD_PROPS;
} else if (Item.this.type.is("helm")) {
socketType = HELM_PROPS;
} else {
assert Item.this.type.is("armo");
socketType = ARMOR_PROPS;
}
magicPropsAggregate.addAll(socket.stats[socketType]);
} else { } else {
magicPropsAggregate.addAll(socket.stats[MAGIC_PROPS]); magicPropsAggregate.addAll(socket.stats[MAGIC_PROPS]);
} }